<feed xmlns='http://www.w3.org/2005/Atom'>
<title>talos-obmc-linux/drivers/i2c, branch v3.10-rc5</title>
<subtitle>Talos™ II Linux sources for OpenBMC</subtitle>
<id>https://git.raptorcs.com/git/talos-obmc-linux/atom?h=v3.10-rc5</id>
<link rel='self' href='https://git.raptorcs.com/git/talos-obmc-linux/atom?h=v3.10-rc5'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/'/>
<updated>2013-05-21T18:11:45+00:00</updated>
<entry>
<title>Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux</title>
<updated>2013-05-21T18:11:45+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-05-21T18:11:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=e748a38596932af8632448f35e8b2bba714ae03d'/>
<id>urn:sha1:e748a38596932af8632448f35e8b2bba714ae03d</id>
<content type='text'>
Pull i2c bugfixes from Wolfram Sang:
 "These should have been in rc2 but I missed it due to working on devm
  longer than expected.

  There is one ID addition, since we are touching the driver anyhow.
  And the feature bit documentation is one outcome of a debug session
  and will make it easier for users to work around problems.  The rest
  is typical driver bugfixes."

* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  i2c: suppress lockdep warning on delete_device
  i2c: mv64xxx: work around signals causing I2C transactions to be aborted
  i2c: i801: Document feature bits in modinfo
  i2c: designware: add Intel BayTrail ACPI ID
  i2c: designware: always clear interrupts before enabling them
  i2c: designware: fix RX FIFO overrun
</content>
</entry>
<entry>
<title>drivers/i2c/busses: don't check resource with devm_ioremap_resource</title>
<updated>2013-05-18T09:55:32+00:00</updated>
<author>
<name>Wolfram Sang</name>
<email>wsa@the-dreams.de</email>
</author>
<published>2013-05-12T13:19:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=00d083f928a37199e0fac984845bfd8b3587238e'/>
<id>urn:sha1:00d083f928a37199e0fac984845bfd8b3587238e</id>
<content type='text'>
devm_ioremap_resource does sanity checks on the given resource. No need to
duplicate this in the driver.

Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Acked-by: Stephen Warren &lt;swarren@nvidia.com&gt;
Acked-by: Barry Song &lt;Baohua.Song@csr.com&gt;
</content>
</entry>
<entry>
<title>i2c: suppress lockdep warning on delete_device</title>
<updated>2013-05-17T20:49:45+00:00</updated>
<author>
<name>Alexander Sverdlin</name>
<email>alexander.sverdlin@nsn.com</email>
</author>
<published>2013-05-17T12:56:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=e9b526fe704812364bca07edd15eadeba163ebfb'/>
<id>urn:sha1:e9b526fe704812364bca07edd15eadeba163ebfb</id>
<content type='text'>
i2c: suppress lockdep warning on delete_device

Since commit 846f99749ab68bbc7f75c74fec305de675b1a1bf the following lockdep
warning is thrown in case i2c device is removed (via delete_device sysfs
attribute) which contains subdevices (e.g. i2c multiplexer):

=============================================
[ INFO: possible recursive locking detected ]
3.8.7-0-sampleversion-fct #8 Tainted: G           O
---------------------------------------------
bash/3743 is trying to acquire lock:
  (s_active#110){++++.+}, at: [&lt;ffffffff802b3048&gt;] sysfs_hash_and_remove+0x58/0xc8

but task is already holding lock:
  (s_active#110){++++.+}, at: [&lt;ffffffff802b3cb8&gt;] sysfs_write_file+0xc8/0x208

other info that might help us debug this:
  Possible unsafe locking scenario:

        CPU0
        ----
   lock(s_active#110);
   lock(s_active#110);

  *** DEADLOCK ***

  May be due to missing lock nesting notation

4 locks held by bash/3743:
  #0:  (&amp;buffer-&gt;mutex){+.+.+.}, at: [&lt;ffffffff802b3c3c&gt;] sysfs_write_file+0x4c/0x208
  #1:  (s_active#110){++++.+}, at: [&lt;ffffffff802b3cb8&gt;] sysfs_write_file+0xc8/0x208
  #2:  (&amp;adap-&gt;userspace_clients_lock/1){+.+.+.}, at: [&lt;ffffffff80454a18&gt;] i2c_sysfs_delete_device+0x90/0x238
  #3:  (&amp;__lockdep_no_validate__){......}, at: [&lt;ffffffff803dcc24&gt;] device_release_driver+0x24/0x48

stack backtrace:
Call Trace:
[&lt;ffffffff80575cc8&gt;] dump_stack+0x8/0x34
[&lt;ffffffff801b50fc&gt;] __lock_acquire+0x161c/0x2110
[&lt;ffffffff801b5c3c&gt;] lock_acquire+0x4c/0x70
[&lt;ffffffff802b60cc&gt;] sysfs_addrm_finish+0x19c/0x1e0
[&lt;ffffffff802b3048&gt;] sysfs_hash_and_remove+0x58/0xc8
[&lt;ffffffff802b7d8c&gt;] sysfs_remove_group+0x64/0x148
[&lt;ffffffff803d990c&gt;] device_remove_attrs+0x9c/0x1a8
[&lt;ffffffff803d9b1c&gt;] device_del+0x104/0x1d8
[&lt;ffffffff803d9c18&gt;] device_unregister+0x28/0x70
[&lt;ffffffff8045505c&gt;] i2c_del_adapter+0x1cc/0x328
[&lt;ffffffff8045802c&gt;] i2c_del_mux_adapter+0x14/0x38
[&lt;ffffffffc025c108&gt;] pca954x_remove+0x90/0xe0 [pca954x]
[&lt;ffffffff804542f8&gt;] i2c_device_remove+0x80/0xe8
[&lt;ffffffff803dca9c&gt;] __device_release_driver+0x74/0xf8
[&lt;ffffffff803dcc2c&gt;] device_release_driver+0x2c/0x48
[&lt;ffffffff803dbc14&gt;] bus_remove_device+0x13c/0x1d8
[&lt;ffffffff803d9b24&gt;] device_del+0x10c/0x1d8
[&lt;ffffffff803d9c18&gt;] device_unregister+0x28/0x70
[&lt;ffffffff80454b08&gt;] i2c_sysfs_delete_device+0x180/0x238
[&lt;ffffffff802b3cd4&gt;] sysfs_write_file+0xe4/0x208
[&lt;ffffffff8023ddc4&gt;] vfs_write+0xbc/0x160
[&lt;ffffffff8023df6c&gt;] SyS_write+0x54/0xd8
[&lt;ffffffff8013d424&gt;] handle_sys64+0x44/0x64

The problem is already known for USB and PCI subsystems. The reason is that
delete_device attribute is defined statically in i2c-core.c and used for all
devices in i2c subsystem.

Discussion of original USB problem:
http://lkml.indiana.edu/hypermail/linux/kernel/1204.3/01160.html

Commit 356c05d58af05d582e634b54b40050c73609617b introduced new macro to suppress
lockdep warnings for this special case and included workaround for USB code.

LKML discussion of the workaround:
http://lkml.indiana.edu/hypermail/linux/kernel/1205.1/03634.html

As i2c case is in principle the same, the same workaround could be used here.

Signed-off-by: Alexander Sverdlin &lt;alexander.sverdlin@nsn.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Cc: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
<entry>
<title>i2c: mv64xxx: work around signals causing I2C transactions to be aborted</title>
<updated>2013-05-17T20:49:37+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@arm.linux.org.uk</email>
</author>
<published>2013-05-16T10:30:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=d295a86eab200b3f0c513e78dbe1f189fd32d397'/>
<id>urn:sha1:d295a86eab200b3f0c513e78dbe1f189fd32d397</id>
<content type='text'>
Do not use interruptible waits in an I2C driver; if a process uses
signals (eg, Xorg uses SIGALRM and SIGPIPE) then these signals can
cause the I2C driver to abort a transaction in progress by another
driver, which can cause that driver to fail.  I2C drivers are not
expected to abort transactions on signals.

Signed-off-by: Russell King &lt;rmk+kernel@arm.linux.org.uk&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
<entry>
<title>i2c: i801: Document feature bits in modinfo</title>
<updated>2013-05-17T20:49:30+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>khali@linux-fr.org</email>
</author>
<published>2013-05-15T02:44:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=53229345502bf3713cce220e849743f83065381d'/>
<id>urn:sha1:53229345502bf3713cce220e849743f83065381d</id>
<content type='text'>
Duplicate the feature bits documentation in modinfo, as not every user
will read the driver's source code or documentation file.

Signed-off-by: Jean Delvare &lt;khali@linux-fr.org&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
<entry>
<title>i2c: designware: add Intel BayTrail ACPI ID</title>
<updated>2013-05-17T20:49:22+00:00</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@linux.intel.com</email>
</author>
<published>2013-05-13T00:54:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=5a7e6bd809ca2f06bd669bd477ad3d6b48a3dd9f'/>
<id>urn:sha1:5a7e6bd809ca2f06bd669bd477ad3d6b48a3dd9f</id>
<content type='text'>
This is the same controller as on Intel Lynxpoint but the ACPI ID is
different (8086F41). Add support for this.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
<entry>
<title>i2c: designware: always clear interrupts before enabling them</title>
<updated>2013-05-17T08:33:36+00:00</updated>
<author>
<name>Mika Westerberg</name>
<email>mika.westerberg@linux.intel.com</email>
</author>
<published>2013-05-13T00:54:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=2a2d95e9d6d29e726cc294b65391917ed2e32bf4'/>
<id>urn:sha1:2a2d95e9d6d29e726cc294b65391917ed2e32bf4</id>
<content type='text'>
If the I2C bus is put to a low power state by an ACPI method it might pull
the SDA line low (as its power is removed). Once the bus is put to full
power state again, the SDA line is pulled back to high. This transition
looks like a STOP condition from the controller point-of-view which sets
STOP detected bit in its status register causing the driver to fail
subsequent transfers.

Fix this by always clearing all interrupts before we start a transfer.

Signed-off-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>i2c: designware: fix RX FIFO overrun</title>
<updated>2013-05-17T08:33:11+00:00</updated>
<author>
<name>Josef Ahmad</name>
<email>josef.ahmad@linux.intel.com</email>
</author>
<published>2013-04-19T16:28:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=e6f34cea56f5b95498070eaa9f4aa3ba4a9e4f62'/>
<id>urn:sha1:e6f34cea56f5b95498070eaa9f4aa3ba4a9e4f62</id>
<content type='text'>
i2c_dw_xfer_msg() pushes a number of bytes to transmit/receive
to/from the bus into the TX FIFO.
For master-rx transactions, the maximum amount of data that can be
received is calculated depending solely on TX and RX FIFO load.

This is racy - TX FIFO may contain master-rx data yet to be
processed, which will eventually land into the RX FIFO. This
data is not taken into account and the function may request more
data than the controller is actually capable of storing.

This patch ensures the driver takes into account the outstanding
master-rx data in TX FIFO to prevent RX FIFO overrun.

Signed-off-by: Josef Ahmad &lt;josef.ahmad@linux.intel.com&gt;
Acked-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Cc: stable@kernel.org
</content>
</entry>
<entry>
<title>Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux</title>
<updated>2013-05-09T16:59:16+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-05-09T16:59:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=5647ac0ad4f355817b788372a01cb293ed63bde4'/>
<id>urn:sha1:5647ac0ad4f355817b788372a01cb293ed63bde4</id>
<content type='text'>
Pull removal of GENERIC_GPIO from Grant Likely:
 "GENERIC_GPIO now synonymous with GPIOLIB.  There are no longer any
  valid cases for enableing GENERIC_GPIO without GPIOLIB, even though it
  is possible to do so which has been causing confusion and breakage.
  This branch does the work to completely eliminate GENERIC_GPIO."

* tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux:
  gpio: update gpio Chinese documentation
  Remove GENERIC_GPIO config option
  Convert selectors of GENERIC_GPIO to GPIOLIB
  blackfin: force use of gpiolib
  m68k: coldfire: use gpiolib
  mips: pnx833x: remove requirement for GENERIC_GPIO
  openrisc: default GENERIC_GPIO to false
  avr32: default GENERIC_GPIO to false
  xtensa: remove explicit selection of GENERIC_GPIO
  sh: replace CONFIG_GENERIC_GPIO by CONFIG_GPIOLIB
  powerpc: remove redundant GENERIC_GPIO selection
  unicore32: default GENERIC_GPIO to false
  unicore32: remove unneeded select GENERIC_GPIO
  arm: plat-orion: use GPIO driver on CONFIG_GPIOLIB
  arm: remove redundant GENERIC_GPIO selection
  mips: alchemy: require gpiolib
  mips: txx9: change GENERIC_GPIO to GPIOLIB
  mips: loongson: use GPIO driver on CONFIG_GPIOLIB
  mips: remove redundant GENERIC_GPIO select
</content>
</entry>
<entry>
<title>Merge tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc</title>
<updated>2013-05-07T18:06:17+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-05-07T18:06:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/talos-obmc-linux/commit/?id=38f56f33ca381751f9b8910f67e7a805ec0b68cb'/>
<id>urn:sha1:38f56f33ca381751f9b8910f67e7a805ec0b68cb</id>
<content type='text'>
Pull ARM SoC device tree updates (part 2) from Arnd Bergmann:
 "These are mostly new device tree bindings for existing drivers, as
  well as changes to the device tree source files to add support for
  those devices, and a couple of new boards, most notably Samsung's
  Exynos5 based Chromebook.

  The changes depend on earlier platform specific updates and touch the
  usual platforms: omap, exynos, tegra, mxs, mvebu and davinci."

* tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits)
  ARM: exynos: dts: cros5250: add EC device
  ARM: dts: Add sbs-battery for exynos5250-snow
  ARM: dts: Add i2c-arbitrator bus for exynos5250-snow
  ARM: dts: add mshc controller node for Exynos4x12 SoCs
  ARM: dts: Add chip-id controller node on Exynos4/5 SoC
  ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree
  ARM: davinci: da850-evm: add SPI flash support
  ARM: davinci: da850: override SPI DT node device name
  ARM: davinci: da850: add SPI1 DT node
  spi/davinci: add DT binding documentation
  spi/davinci: no wildcards in DT compatible property
  ARM: dts: mvebu: Convert mvebu device tree files to 64 bits
  ARM: dts: mvebu: introduce internal-regs node
  ARM: dts: mvebu: Convert all the mvebu files to use the range property
  ARM: dts: mvebu: move all peripherals inside soc
  ARM: dts: mvebu: fix cpus section indentation
  ARM: davinci: da850: add EHRPWM &amp; ECAP DT node
  ARM/dts: OMAP3: fix pinctrl-single configuration
  ARM: dts: Add OMAP3430 SDP NOR flash memory binding
  ARM: dts: Add NOR flash bindings for OMAP2420 H4
  ...
</content>
</entry>
</feed>
