<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/i2c, branch v2.6.33</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>i2c-tiny-usb: Fix on big-endian systems</title>
<updated>2010-02-05T16:48:13+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2010-02-05T16:48:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1c010ff8912cbc08d80e865aab9c32b6b00c527d'/>
<id>1c010ff8912cbc08d80e865aab9c32b6b00c527d</id>
<content type='text'>
The functionality bit vector is always returned as a little-endian
32-bit number by the device, so it must be byte-swapped to the host
endianness.

On the other hand, the delay value is handled by the USB stack, so no
byte swapping is needed on our side.

This fixes bug #15105:
http://bugzilla.kernel.org/show_bug.cgi?id=15105

Reported-by: Jens Richter &lt;jens@richter-stutensee.de&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Jens Richter &lt;jens@richter-stutensee.de&gt;
Cc: Till Harbaum &lt;till@harbaum.org&gt;
Cc: stable@kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The functionality bit vector is always returned as a little-endian
32-bit number by the device, so it must be byte-swapped to the host
endianness.

On the other hand, the delay value is handled by the USB stack, so no
byte swapping is needed on our side.

This fixes bug #15105:
http://bugzilla.kernel.org/show_bug.cgi?id=15105

Reported-by: Jens Richter &lt;jens@richter-stutensee.de&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Tested-by: Jens Richter &lt;jens@richter-stutensee.de&gt;
Cc: Till Harbaum &lt;till@harbaum.org&gt;
Cc: stable@kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: imx: call ioremap only after request_mem_region</title>
<updated>2010-01-24T15:25:57+00:00</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2010-01-08T16:23:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4927fbf11dc1057cd9c94dd40358e5f98c999311'/>
<id>4927fbf11dc1057cd9c94dd40358e5f98c999311</id>
<content type='text'>
accordingly adapt order of release_mem_region and release_mem_region on
remove.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Cc: Ben Dooks &lt;ben-linux@fluff.org&gt;
Cc: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Cc: Richard Zhao &lt;linuxzsc@gmail.com&gt;
Cc: Darius Augulis &lt;augulis.darius@gmail.com&gt;
Cc: Sascha Hauer &lt;s.hauer@pengutronix.de&gt;
Cc: linux-i2c@vger.kernel.org
Acked-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
accordingly adapt order of release_mem_region and release_mem_region on
remove.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Cc: Ben Dooks &lt;ben-linux@fluff.org&gt;
Cc: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Cc: Richard Zhao &lt;linuxzsc@gmail.com&gt;
Cc: Darius Augulis &lt;augulis.darius@gmail.com&gt;
Cc: Sascha Hauer &lt;s.hauer@pengutronix.de&gt;
Cc: linux-i2c@vger.kernel.org
Acked-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: mxc: let time to generate stop bit</title>
<updated>2010-01-24T15:25:56+00:00</updated>
<author>
<name>Valentin Longchamp</name>
<email>valentin.longchamp@epfl.ch</email>
</author>
<published>2010-01-21T17:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a1ee06b72968d80ab9362ec61143c4f090cc2d1b'/>
<id>a1ee06b72968d80ab9362ec61143c4f090cc2d1b</id>
<content type='text'>
After generating the stop bit by changing MSTA from 1 to 0,
the i2c_imx-&gt;stopped was immediatly set to 1. The second test
on i2c_imx-&gt;stopped then is correct and the controller never
waits if the bus is busy. This patch corrects this.

On mx31moboard, stop bit was not generated on single write transfers.
This was kept unnoticed as other transfers are made afterwards that
help the write recipient to resynchronize.

Thanks to Philippe and Michael for the debugging.

Signed-off-by: Valentin Longchamp &lt;valentin.longchamp@epfl.ch&gt;
Signed-off by: Philippe Rétornaz &lt;philippe.retornaz@epfl.ch&gt;
Reported-by: Michael Bonani &lt;michael.bonani@epfl.ch&gt;
Acked-by; Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After generating the stop bit by changing MSTA from 1 to 0,
the i2c_imx-&gt;stopped was immediatly set to 1. The second test
on i2c_imx-&gt;stopped then is correct and the controller never
waits if the bus is busy. This patch corrects this.

On mx31moboard, stop bit was not generated on single write transfers.
This was kept unnoticed as other transfers are made afterwards that
help the write recipient to resynchronize.

Thanks to Philippe and Michael for the debugging.

Signed-off-by: Valentin Longchamp &lt;valentin.longchamp@epfl.ch&gt;
Signed-off by: Philippe Rétornaz &lt;philippe.retornaz@epfl.ch&gt;
Reported-by: Michael Bonani &lt;michael.bonani@epfl.ch&gt;
Acked-by; Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Do not use device name after device_unregister</title>
<updated>2010-01-16T19:43:13+00:00</updated>
<author>
<name>Thadeu Lima de Souza Cascardo</name>
<email>cascardo@holoscopio.com</email>
</author>
<published>2010-01-16T19:43:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c556752109794a5ff199b80a1673336b4df8433a'/>
<id>c556752109794a5ff199b80a1673336b4df8433a</id>
<content type='text'>
dev_dbg outputs dev_name, which is released with device_unregister. This bug
resulted in output like this:

i2c Xy2�0: adapter [SMBus I801 adapter at 1880] unregistered

The right output would be:
i2c i2c-0: adapter [SMBus I801 adapter at 1880] unregistered

Signed-off-by: Thadeu Lima de Souza Cascardo &lt;cascardo@holoscopio.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>
dev_dbg outputs dev_name, which is released with device_unregister. This bug
resulted in output like this:

i2c Xy2�0: adapter [SMBus I801 adapter at 1880] unregistered

The right output would be:
i2c i2c-0: adapter [SMBus I801 adapter at 1880] unregistered

Signed-off-by: Thadeu Lima de Souza Cascardo &lt;cascardo@holoscopio.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c/pca: Don't use *_interruptible</title>
<updated>2010-01-16T19:43:13+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>w.sang@pengutronix.de</email>
</author>
<published>2010-01-16T19:43:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=22f8b2695eda496026623020811cae34590ee3d7'/>
<id>22f8b2695eda496026623020811cae34590ee3d7</id>
<content type='text'>
Unexpected signals can disturb the bus-handling and lock it up. Don't use
interruptible in 'wait_event_*' and 'wake_*' as in commits
dc1972d02747d2170fb1d78d114801f5ecb27506 (for cpm),
1ab082d7cbd0f34e39a5396cc6340c00bc5d66ef (for mpc),
b7af349b175af45f9d87b3bf3f0a221e1831ed39 (for omap).

Signed-off-by: Wolfram Sang &lt;w.sang@pengutronix.de&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>
Unexpected signals can disturb the bus-handling and lock it up. Don't use
interruptible in 'wait_event_*' and 'wake_*' as in commits
dc1972d02747d2170fb1d78d114801f5ecb27506 (for cpm),
1ab082d7cbd0f34e39a5396cc6340c00bc5d66ef (for mpc),
b7af349b175af45f9d87b3bf3f0a221e1831ed39 (for omap).

Signed-off-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c-ali1563: Remove sparse warnings</title>
<updated>2010-01-16T19:43:13+00:00</updated>
<author>
<name>Márton Németh</name>
<email>nm127@freemail.hu</email>
</author>
<published>2010-01-16T19:43:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7d53e79f9ec2842269754efbe34f53aa480d99e3'/>
<id>7d53e79f9ec2842269754efbe34f53aa480d99e3</id>
<content type='text'>
Remove the following sparse warnings (see "make C=1"):
 * drivers/i2c/busses/i2c-ali1563.c:91:3: warning: do-while statement
   is not a compound statement
 * drivers/i2c/busses/i2c-ali1563.c:161:3: warning: do-while statement
   is not a compound statement

Signed-off-by: Márton Németh &lt;nm127@freemail.hu&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>
Remove the following sparse warnings (see "make C=1"):
 * drivers/i2c/busses/i2c-ali1563.c:91:3: warning: do-while statement
   is not a compound statement
 * drivers/i2c/busses/i2c-ali1563.c:161:3: warning: do-while statement
   is not a compound statement

Signed-off-by: Márton Németh &lt;nm127@freemail.hu&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c: Test off by one in {piix4,vt596}_transaction()</title>
<updated>2010-01-16T19:43:12+00:00</updated>
<author>
<name>Roel Kluin</name>
<email>roel.kluin@gmail.com</email>
</author>
<published>2010-01-16T19:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b6a3195070fe1c12d0bb1099ffe997d8abf9f602'/>
<id>b6a3195070fe1c12d0bb1099ffe997d8abf9f602</id>
<content type='text'>
With `while (timeout++ &lt; MAX_TIMEOUT)' timeout reaches MAX_TIMEOUT + 1
after the loop. This is probably unlikely to produce a problem.

Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.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>
With `while (timeout++ &lt; MAX_TIMEOUT)' timeout reaches MAX_TIMEOUT + 1
after the loop. This is probably unlikely to produce a problem.

Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c-core: Storage class should be before const qualifier</title>
<updated>2010-01-16T19:43:12+00:00</updated>
<author>
<name>Tobias Klauser</name>
<email>tklauser@distanz.ch</email>
</author>
<published>2010-01-16T19:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0b2c3688445ff02d3f1bfffc6983417b28f8c3da'/>
<id>0b2c3688445ff02d3f1bfffc6983417b28f8c3da</id>
<content type='text'>
The C99 specification states in section 6.11.5:

The placement of a storage-class specifier other than at the beginning
of the declaration specifiers in a declaration is an obsolescent
feature.

Signed-off-by: Tobias Klauser &lt;tklauser@distanz.ch&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>
The C99 specification states in section 6.11.5:

The placement of a storage-class specifier other than at the beginning
of the declaration specifiers in a declaration is an obsolescent
feature.

Signed-off-by: Tobias Klauser &lt;tklauser@distanz.ch&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c-omap: OMAP3: Fix I2C lockup during timeout/error cases</title>
<updated>2009-12-24T01:30:54+00:00</updated>
<author>
<name>Manjunatha GK</name>
<email>manjugk@ti.com</email>
</author>
<published>2009-12-11T05:39:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=57eb81b14e35a14df64ac3597bc90c26ce04a9b4'/>
<id>57eb81b14e35a14df64ac3597bc90c26ce04a9b4</id>
<content type='text'>
Current OMAP3 I2C driver code does not follow the correct sequence for soft
reset. Due to this, lock up issues are reported during timeout/error cases.

This patch fixes above issue by disabling I2C controller as per OMAP3430 TRM
for soft reset. As per TRM, I2C controller needs to be disabled as a first
step during soft reset.

Here is correct soft reset sequence:
a. Ensure that the module is disabled
(clear the I2Ci.I2C_CON[15] I2C_EN bit to 0).
b. Set the I2Ci.I2C_SYSC[1] SRST bit to 1.
c. Enable the module by setting I2Ci.I2C_CON[15] I2C_EN bit to 1.
d. Check the I2Ci.I2C_SYSS[0] RDONE bit until it is set to 1 to
indicate the software reset is complete.

Tested on Zoom2, Zoom3, 3430SDP and 3630SDP

Signed-off-by: Manjunatha GK &lt;manjugk@ti.com&gt;
Signed-off-by: George, Harith&lt;harith@ti.com&gt;
Acked-by: Varadarajan, Charu Latha&lt;charu@ti.com&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Current OMAP3 I2C driver code does not follow the correct sequence for soft
reset. Due to this, lock up issues are reported during timeout/error cases.

This patch fixes above issue by disabling I2C controller as per OMAP3430 TRM
for soft reset. As per TRM, I2C controller needs to be disabled as a first
step during soft reset.

Here is correct soft reset sequence:
a. Ensure that the module is disabled
(clear the I2Ci.I2C_CON[15] I2C_EN bit to 0).
b. Set the I2Ci.I2C_SYSC[1] SRST bit to 1.
c. Enable the module by setting I2Ci.I2C_CON[15] I2C_EN bit to 1.
d. Check the I2Ci.I2C_SYSS[0] RDONE bit until it is set to 1 to
indicate the software reset is complete.

Tested on Zoom2, Zoom3, 3430SDP and 3630SDP

Signed-off-by: Manjunatha GK &lt;manjugk@ti.com&gt;
Signed-off-by: George, Harith&lt;harith@ti.com&gt;
Acked-by: Varadarajan, Charu Latha&lt;charu@ti.com&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>i2c-omap: Don't write IE state in unidle if 0</title>
<updated>2009-12-24T01:26:06+00:00</updated>
<author>
<name>Cory Maccarrone</name>
<email>darkstar6262@gmail.com</email>
</author>
<published>2009-12-23T01:06:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=07ac31f6f4cd558e53f6705dbe3033a7f0237eb8'/>
<id>07ac31f6f4cd558e53f6705dbe3033a7f0237eb8</id>
<content type='text'>
Commit ef871432... (i2c-omap: OMAP3: PM: (re)init for every transfer
to support off-mode) introduced a change which make the dev-&gt;iestate
contents be written to the OMAP_I2C_IE_REG every time omap_i2c_unidle
is called.  Previously, the state was only written if it wasn't equal
to zero.

In omap_i2c_probe, omap_i2c_unidle() is called prior to omap_i2c_init(),
in which case dev-&gt;iestate has not yet been initialized and will be set
to zero.  Having this value written to the registers causes deadlock
while booting.

As such, this change restores the original functionality.

Signed-off-by: Cory Maccarrone &lt;darkstar6262@gmail.com&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit ef871432... (i2c-omap: OMAP3: PM: (re)init for every transfer
to support off-mode) introduced a change which make the dev-&gt;iestate
contents be written to the OMAP_I2C_IE_REG every time omap_i2c_unidle
is called.  Previously, the state was only written if it wasn't equal
to zero.

In omap_i2c_probe, omap_i2c_unidle() is called prior to omap_i2c_init(),
in which case dev-&gt;iestate has not yet been initialized and will be set
to zero.  Having this value written to the registers causes deadlock
while booting.

As such, this change restores the original functionality.

Signed-off-by: Cory Maccarrone &lt;darkstar6262@gmail.com&gt;
Signed-off-by: Ben Dooks &lt;ben-linux@fluff.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
