<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include/linux/i2c.h, branch v2.6.33.1</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>i2c: Get rid of I2C_CLIENT_MODULE_PARM</title>
<updated>2009-12-14T20:17:29+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-12-14T20:17:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7f508118b1c1f9856a1c899a2bd4867a962b0225'/>
<id>7f508118b1c1f9856a1c899a2bd4867a962b0225</id>
<content type='text'>
There is no user left of I2C_CLIENT_MODULE_PARM, so we can finally
get rid of this ugly macro.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is no user left of I2C_CLIENT_MODULE_PARM, so we can finally
get rid of this ugly macro.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Drop I2C_CLIENT_INSMOD_2 to 8</title>
<updated>2009-12-14T20:17:27+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-12-14T20:17:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e5e9f44c246fbafe723e579e9fe887677beb40e4'/>
<id>e5e9f44c246fbafe723e579e9fe887677beb40e4</id>
<content type='text'>
These macros simply declare an enum, so drivers might as well declare
it themselves. This puts an end to the arbitrary limit of 8 chip types
per i2c driver.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These macros simply declare an enum, so drivers might as well declare
it themselves. This puts an end to the arbitrary limit of 8 chip types
per i2c driver.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Drop I2C_CLIENT_INSMOD_1</title>
<updated>2009-12-14T20:17:26+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-12-14T20:17:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1f86df49ddfd0067cce941187d57b2fd2f749a9e'/>
<id>1f86df49ddfd0067cce941187d57b2fd2f749a9e</id>
<content type='text'>
This macro simply declares an enum, so drivers might as well declare
it themselves.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This macro simply declares an enum, so drivers might as well declare
it themselves.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Get rid of struct i2c_client_address_data</title>
<updated>2009-12-14T20:17:25+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-12-14T20:17:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c3813d6af177fab19e322f3114b1f64fbcf08d71'/>
<id>c3813d6af177fab19e322f3114b1f64fbcf08d71</id>
<content type='text'>
Struct i2c_client_address_data only contains one field at this point,
which makes its usefulness questionable. Get rid of it and pass simple
address lists around instead.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Struct i2c_client_address_data only contains one field at this point,
which makes its usefulness questionable. Get rid of it and pass simple
address lists around instead.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Drop the kind parameter from detect callbacks</title>
<updated>2009-12-14T20:17:23+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-12-14T20:17:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=310ec79210d754afe51e2e4a983e846b60179abd'/>
<id>310ec79210d754afe51e2e4a983e846b60179abd</id>
<content type='text'>
The "kind" parameter always has value -1, and nobody is using it any
longer, so we can remove it.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The "kind" parameter always has value -1, and nobody is using it any
longer, so we can remove it.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Drop probe, ignore and force module parameters</title>
<updated>2009-12-06T16:06:24+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-12-06T16:06:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c7b25a9e96dc89954ae8d8f473f56fae62030f84'/>
<id>c7b25a9e96dc89954ae8d8f473f56fae62030f84</id>
<content type='text'>
The legacy probe and force module parameters are obsolete now, the
same can be achieved using the new_device sysfs interface, which is
both more flexible and cheaper (it is implemented by i2c-core rather
than replicated in every driver module.)

The legacy ignore module parameters can be dropped as well. Ignoring
can be done by instantiating a "dummy" device at the problematic
address.

This is the first step of a huge cleanup to i2c-core's i2c_detect
function, i2c.h's I2C_CLIENT_INSMOD* macros, and all drivers that made
use of them.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The legacy probe and force module parameters are obsolete now, the
same can be achieved using the new_device sysfs interface, which is
both more flexible and cheaper (it is implemented by i2c-core rather
than replicated in every driver module.)

The legacy ignore module parameters can be dropped as well. Ignoring
can be done by instantiating a "dummy" device at the problematic
address.

This is the first step of a huge cleanup to i2c-core's i2c_detect
function, i2c.h's I2C_CLIENT_INSMOD* macros, and all drivers that made
use of them.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Prevent priority inversion on top of bus lock</title>
<updated>2009-12-06T16:06:22+00:00</updated>
<author>
<name>Mika Kuoppala</name>
<email>mika.kuoppala@nokia.com</email>
</author>
<published>2009-12-06T16:06:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=194684e596af4bdaebb424166d94a8aa528edfda'/>
<id>194684e596af4bdaebb424166d94a8aa528edfda</id>
<content type='text'>
Low priority thread holding the i2c bus mutex could block higher
priority threads to access the bus resulting in unacceptable
latencies. Change the mutex type to rt_mutex preventing priority
inversion.

Tested-by: Peter Ujfalusi &lt;peter.ujfalusi@nokia.com&gt;
Signed-off-by: Mika Kuoppala &lt;mika.kuoppala@nokia.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Low priority thread holding the i2c bus mutex could block higher
priority threads to access the bus resulting in unacceptable
latencies. Change the mutex type to rt_mutex preventing priority
inversion.

Tested-by: Peter Ujfalusi &lt;peter.ujfalusi@nokia.com&gt;
Signed-off-by: Mika Kuoppala &lt;mika.kuoppala@nokia.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Add an interface to lock/unlock an I2C bus segment</title>
<updated>2009-11-07T12:10:46+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-11-07T12:10:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=afa08974fe80c198b8650f73ed8ab59135ca10d0'/>
<id>afa08974fe80c198b8650f73ed8ab59135ca10d0</id>
<content type='text'>
Some drivers need to be able to prevent access to an I2C bus segment
for a specific period of time. Add an interface for them to do so
without twiddling with i2c-core internals.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Acked-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some drivers need to be able to prevent access to an I2C bus segment
for a specific period of time. Add an interface for them to do so
without twiddling with i2c-core internals.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Acked-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Drop unused i2c_driver.id field</title>
<updated>2009-09-18T20:45:43+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2009-09-18T20:45:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6a891a3111fe701517bb31c2204304724c7299c8'/>
<id>6a891a3111fe701517bb31c2204304724c7299c8</id>
<content type='text'>
Nobody is using i2c_driver.id any longer, so we can drop that field.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Nobody is using i2c_driver.id any longer, so we can drop that field.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: New macro to initialize i2c address lists on the fly</title>
<updated>2009-06-19T14:58:21+00:00</updated>
<author>
<name>Hans Verkuil</name>
<email>hverkuil@xs4all.nl</email>
</author>
<published>2009-06-19T14:58:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c70366732f67dbdb32f7fe9c6aa59299b76feca6'/>
<id>c70366732f67dbdb32f7fe9c6aa59299b76feca6</id>
<content type='text'>
For video4linux we sometimes need to probe for a single i2c address.
Normally you would do it like this:

static const unsigned short addrs[] = {
	addr, I2C_CLIENT_END
};

client = i2c_new_probed_device(adapter, &amp;info, addrs);

This is a bit awkward and I came up with this macro:

#define V4L2_I2C_ADDRS(addr, addrs...) \
	((const unsigned short []){ addr, ## addrs, I2C_CLIENT_END })

This can construct a list of one or more i2c addresses on the fly. But
this is something that really belongs in i2c.h, renamed to I2C_ADDRS.

With this macro we can just do:

client = i2c_new_probed_device(adapter, &amp;info, I2C_ADDRS(addr));

Note that this can also be used to initialize an array:

static const unsigned short addrs[] = I2C_ADDRS(0x2a, 0x2c);

Whether you want to is another matter, but it works. This functionality is 
also available in the oldest supported gcc (3.2).

Signed-off-by: Hans Verkuil &lt;hverkuil@xs4all.nl&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For video4linux we sometimes need to probe for a single i2c address.
Normally you would do it like this:

static const unsigned short addrs[] = {
	addr, I2C_CLIENT_END
};

client = i2c_new_probed_device(adapter, &amp;info, addrs);

This is a bit awkward and I came up with this macro:

#define V4L2_I2C_ADDRS(addr, addrs...) \
	((const unsigned short []){ addr, ## addrs, I2C_CLIENT_END })

This can construct a list of one or more i2c addresses on the fly. But
this is something that really belongs in i2c.h, renamed to I2C_ADDRS.

With this macro we can just do:

client = i2c_new_probed_device(adapter, &amp;info, I2C_ADDRS(addr));

Note that this can also be used to initialize an array:

static const unsigned short addrs[] = I2C_ADDRS(0x2a, 0x2c);

Whether you want to is another matter, but it works. This functionality is 
also available in the oldest supported gcc (3.2).

Signed-off-by: Hans Verkuil &lt;hverkuil@xs4all.nl&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
