<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/i2c, branch v2.6.27.54</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/i2c?h=v2.6.27.54</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/i2c?h=v2.6.27.54'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2010-05-26T21:27:09Z</updated>
<entry>
<title>i2c-tiny-usb: Fix on big-endian systems</title>
<updated>2010-05-26T21:27:09Z</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2010-02-05T16:48:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0ce0dd4ec9890eefb7b656c74bc5256c60626a85'/>
<id>urn:sha1:0ce0dd4ec9890eefb7b656c74bc5256c60626a85</id>
<content type='text'>
commit 1c010ff8912cbc08d80e865aab9c32b6b00c527d upstream.

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>i2c-i801: Don't use the block buffer for I2C block writes</title>
<updated>2010-05-26T21:27:08Z</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2010-03-13T19:56:53Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ae3936ed1af0224a2d38d6b6b1ee62fb8f4c3a5c'/>
<id>urn:sha1:ae3936ed1af0224a2d38d6b6b1ee62fb8f4c3a5c</id>
<content type='text'>
commit c074c39d62306efa5ba7c69c1a1531bc7333d252 upstream.

Experience has shown that the block buffer can only be used for SMBus
(not I2C) block transactions, even though the datasheet doesn't
mention this limitation.

Reported-by: Felix Rubinstein &lt;felixru@gmail.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Cc: Oleg Ryjkov &lt;oryjkov@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>i2c: Fix probing of FSC hardware monitoring chips</title>
<updated>2010-05-26T21:27:08Z</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2010-05-04T09:09:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ba1531fcc11249827750298495c27e34f869b629'/>
<id>urn:sha1:ba1531fcc11249827750298495c27e34f869b629</id>
<content type='text'>
commit b1d4b390ea4bb480e65974ce522a04022608a8df upstream.

Some FSC hardware monitoring chips (Syleus at least) doesn't like
quick writes we typically use to probe for I2C chips. Use a regular
byte read instead for the address they live at (0x73). These are the
only known chips living at this address on PC systems.

For clarity, this fix should not be needed for kernels 2.6.30 and
later, as we started instantiating the hwmon devices explicitly based
on DMI data. Still, this fix is valuable in the following two cases:
* Support for recent FSC chips on older kernels. The DMI-based device
  instantiation is more difficult to backport than the device support
  itself.
* Case where the DMI-based device instantiation fails, whatever the
  reason. We fall back to probing in that case, so it should work.

This fixes kernel bug #15634:
https://bugzilla.kernel.org/show_bug.cgi?id=15634

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Acked-by: Hans de Goede &lt;hdegoede@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</content>
</entry>
<entry>
<title>i2c: Do not use device name after device_unregister</title>
<updated>2010-04-01T22:52:21Z</updated>
<author>
<name>Thadeu Lima de Souza Cascardo</name>
<email>cascardo@holoscopio.com</email>
</author>
<published>2010-01-17T18:05:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=582ab0e1e4004672a389a10e2d1ed27edaff119e'/>
<id>urn:sha1:582ab0e1e4004672a389a10e2d1ed27edaff119e</id>
<content type='text'>
In Linus' tree:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c556752109794a5ff199b80a1673336b4df8433a

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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>i2c/tsl2550: Fix lux value in extended mode</title>
<updated>2010-01-06T23:17:12Z</updated>
<author>
<name>Michele Jr De Candia</name>
<email>michele.decandia@valueteam.com</email>
</author>
<published>2009-11-26T08:22:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=18ba31ab3db7b92c9ecb01229d983fd37173ab8f'/>
<id>urn:sha1:18ba31ab3db7b92c9ecb01229d983fd37173ab8f</id>
<content type='text'>
commit 5f5bfb09d81c9a1d26238ae6668e584c14ae3daf upstream.

According to the TAOS Application Note 'Controlling a Backlight with
the TSL2550 Ambient Light Sensor' (page 14), the actual lux value in
extended mode should be obtained multiplying the calculated lux value
by 5.

Signed-off-by: Michele Jr De Candia &lt;michele.decandia@valueteam.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>i2c/tsl2550: Fix lux value in dark environment</title>
<updated>2009-08-16T21:26:23Z</updated>
<author>
<name>Michele Jr De Candia</name>
<email>michele.decandia@valueteam.com</email>
</author>
<published>2009-07-28T14:33:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dd2d70a7ba542030c152cdc224d3d303e9b6e21a'/>
<id>urn:sha1:dd2d70a7ba542030c152cdc224d3d303e9b6e21a</id>
<content type='text'>
commit 96f699ad09c8b3c55cd229506a9add0047838e3e upstream.

I've tested TSL2550 driver and I've found a bug: when light is off,
returned value from tsl2550_calculate_lux function is -1 when it should
be 0 (sensor correctly read that light was off).

I think the bug is that a zero c0 value (approximated value of ch0) is
misinterpreted as an error.

Signed-off-by: Michele Jr De Candia &lt;michele.decandia@valueteam.com&gt;
Acked-by: Rodolfo Giometti &lt;giometti@linux.it&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>i2c-algo-pca: Let PCA9564 recover from unacked data byte (state 0x30)</title>
<updated>2009-05-20T05:20:08Z</updated>
<author>
<name>Enrik Berkhan</name>
<email>Enrik.Berkhan@ge.com</email>
</author>
<published>2009-05-07T12:58:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5e997eb367501a7c079fb5cb153ec59faf35d6d8'/>
<id>urn:sha1:5e997eb367501a7c079fb5cb153ec59faf35d6d8</id>
<content type='text'>
commit 2196d1cf4afab93fb64c2e5b417096e49b661612 upstream

Currently, the i2c-algo-pca driver does nothing if the chip enters state
0x30 (Data byte in I2CDAT has been transmitted; NOT ACK has been
received).  Thus, the i2c bus connected to the controller gets stuck
afterwards.

I have seen this kind of error on a custom board in certain load
situations most probably caused by interference or noise.

A possible reaction is to let the controller generate a STOP condition.
This is documented in the PCA9564 data sheet (2006-09-01) and the same
is done for other NACK states as well.

Further, state 0x38 isn't handled completely, either. Try to do another
START in this case like the data sheet says. As this couldn't be tested,
I've added a comment to try to reset the chip if the START doesn't help
as suggested by Wolfram Sang.

Signed-off-by: Enrik Berkhan &lt;Enrik.Berkhan@ge.com&gt;
Reviewed-by: Wolfram Sang &lt;w.sang@pengutronix.de&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>i2c-algo-bit: Fix timeout test</title>
<updated>2009-05-20T05:20:08Z</updated>
<author>
<name>Dave Airlie</name>
<email>airlied@redhat.com</email>
</author>
<published>2009-05-07T12:57:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3db025f88475dd6eaa4b4881d21f7ab89c8b1ecd'/>
<id>urn:sha1:3db025f88475dd6eaa4b4881d21f7ab89c8b1ecd</id>
<content type='text'>
commit 0cdba07bb23cdd3e0d64357ec3d983e6b75e541f upstream

When fetching DDC using i2c algo bit, we were often seeing timeouts
before getting valid EDID on a retry. The VESA spec states 2ms is the
DDC timeout, so when this translates into 1 jiffie and we are close
to the end of the time period, it could return with a timeout less than
2ms.

Change this code to use time_after instead of time_after_eq.

Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>ARM: Add i2c_board_info for RiscPC PCF8583</title>
<updated>2009-03-17T00:53:03Z</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2009-02-25T20:36:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8894aca848523fa914c248f24f50cf702884ee37'/>
<id>urn:sha1:8894aca848523fa914c248f24f50cf702884ee37</id>
<content type='text'>
commit 531660ef5604c75de6fdead9da1304051af17c09 upstream

Add the necessary i2c_board_info structure to fix the lack of PCF8583
RTC on RiscPC.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Cc: Alessandro Zummo &lt;a.zummo@towertech.it&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>i2c: Timeouts reach -1</title>
<updated>2009-03-17T00:53:03Z</updated>
<author>
<name>Roel Kluin</name>
<email>roel.kluin@gmail.com</email>
</author>
<published>2009-02-25T20:26:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=faccffd54fa78cc094740ccc902e0a1189c61c27'/>
<id>urn:sha1:faccffd54fa78cc094740ccc902e0a1189c61c27</id>
<content type='text'>
commit a746b578d8406b2db0e9f0d040061bc1f78433cf upstream

With a postfix decrement these timeouts reach -1 rather than 0, but
after the loop it is tested whether they have become 0.

As pointed out by Jean Delvare, the condition we are waiting for should
also be tested before the timeout. With the current order, you could
exit with a timeout error while the job is actually done.

Signed-off-by: Roel Kluin &lt;roel.kluin@gmail.com&gt;
Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;


</content>
</entry>
</feed>
