<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/i2c/i2c-core.c, branch linux-4.6.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.6.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.6.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-03-30T12:20:33Z</updated>
<entry>
<title>i2c: prevent endless uevent loop with CONFIG_I2C_DEBUG_CORE</title>
<updated>2016-03-30T12:20:33Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2016-03-23T19:47:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8dcf32175b4e1817ea037a051f10dd7823e52344'/>
<id>urn:sha1:8dcf32175b4e1817ea037a051f10dd7823e52344</id>
<content type='text'>
Jan reported this:

===
After enabling CONFIG_I2C_DEBUG_CORE my system was broken
(no network, console login not possible). System log was
flooded with the this message:

 ...
[  608.052077] rtc-ds1307 0-0068: uevent
[  608.052500] rtc-ds1307 0-0068: uevent
[  608.052925] rtc-ds1307 0-0068: uevent
 ...

The culprit is the dev_dbg printk in the i2c uevent handler.
If this is activated (for instance by CONFIG_I2C_DEBUG_CORE)
it results in an endless loop with systemd-journald.

This happens if user-space scans the system log and reads the uevent
file to get information about a newly created device, which seems fair
use to me. Unfortunately reading the "uevent" file uses the same
function that runs for creating the uevent for a new device,
generating the next syslog entry.

Ideally user-space would implement a recursion detection and
after reading the same device file for the 1000th time call it a
day, but nevertheless I think we should avoid this problem by
removing the debug print completely or using another print variant.

The same problem seems to be reported here:
https://bugs.freedesktop.org/show_bug.cgi?id=76886
===

His patch converted the message to pr_debug, but I think the debug can
simply go. We have other means to see code paths these days. This
enables us to clean up the function some more while we are here.

Reported-by: Jan Glauber &lt;jglauber@cavium.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Acked-by: Alexander Sverdlin &lt;alexander.sverdlin@nokia.com&gt;
Tested-by: Jan Glauber &lt;jglauber@cavium.com&gt;
</content>
</entry>
<entry>
<title>i2c: immediately mark ourselves as registered</title>
<updated>2016-03-14T17:17:25Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2016-03-14T09:41:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b980a26d02d1f54be31346666222304fcd27ea33'/>
<id>urn:sha1:b980a26d02d1f54be31346666222304fcd27ea33</id>
<content type='text'>
Mark the i2c bus as registered right after the the bus_register call,
not at the end of init. Otherwise, we can't register our own dummy
driver.

Reported-by: Thierry Reding &lt;thierry.reding@gmail.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Fixes: 95026658c46ea2 ("i2c: do not use internal data from driver core")
</content>
</entry>
<entry>
<title>i2c: do not use internal data from driver core</title>
<updated>2016-03-12T15:58:11Z</updated>
<author>
<name>Sudip Mukherjee</name>
</author>
<published>2016-03-07T11:49:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=95026658c46ea2d94498d0dac1282e28cd47c64a'/>
<id>urn:sha1:95026658c46ea2d94498d0dac1282e28cd47c64a</id>
<content type='text'>
The variable p is a data structure which is used by the driver core
internally and it is not expected that busses will be directly accessing
these driver core internal only data.

Signed-off-by: Sudip Mukherjee &lt;sudip.mukherjee@codethink.co.uk&gt;
Acked-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
[wsa: removed the unlikely()]
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
<entry>
<title>i2c: i2c-core: sort includes</title>
<updated>2016-02-20T22:33:38Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2016-02-20T22:33:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=53feedf8910d330bf74cc49cfb281e9e8fadd10c'/>
<id>urn:sha1:53feedf8910d330bf74cc49cfb281e9e8fadd10c</id>
<content type='text'>
I request this for drivers, so the core should adhere to sorted includes as
well.

Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
<entry>
<title>i2c: always enable RuntimePM for the adapter device</title>
<updated>2016-01-10T08:27:06Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2015-12-23T17:19:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9f924169c0358f630f9b6d26bb3de97360d8647b'/>
<id>urn:sha1:9f924169c0358f630f9b6d26bb3de97360d8647b</id>
<content type='text'>
The adapter device is a logical device. Because of that, it already uses
pm_runtime_no_callbacks() in the core. To ensure proper propagation from
the children (i2c devices) to the parent of the adapter (the HW device),
make sure RuntimePM is enabled in any case.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
<entry>
<title>i2c: make i2c_parse_fw_timings() always visible</title>
<updated>2015-12-17T19:36:39Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2015-12-17T12:32:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=54177ccfbe95fcf250a89508a705bfe4706e3b86'/>
<id>urn:sha1:54177ccfbe95fcf250a89508a705bfe4706e3b86</id>
<content type='text'>
This function used to be DT only, so it lived inside a CONFIG_OF block.
Now it uses device attributes and must be moved outside of it. No
further code changes, only one whitespace improvement.

Reported-by: Jim Davis &lt;jim.epost@gmail.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Reviewed-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: add generic routine to parse DT for timing information</title>
<updated>2015-12-14T09:51:07Z</updated>
<author>
<name>Wolfram Sang</name>
</author>
<published>2015-12-08T09:37:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e1dba01ca620bb0b3864d5237c1c597d9e012ebf'/>
<id>urn:sha1:e1dba01ca620bb0b3864d5237c1c597d9e012ebf</id>
<content type='text'>
Inspired from the i2c-rk3x driver (thanks guys!) but refactored and
extended. See built-in docs for further information.

Signed-off-by: Wolfram Sang &lt;wsa+renesas@sang-engineering.com&gt;
Reviewed-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: fix wakeup irq parsing</title>
<updated>2015-11-20T15:19:08Z</updated>
<author>
<name>Grygorii Strashko</name>
</author>
<published>2015-11-12T13:42:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c18fba23061f16dde128e10d4869ba4e88e0e81a'/>
<id>urn:sha1:c18fba23061f16dde128e10d4869ba4e88e0e81a</id>
<content type='text'>
This patch fixes obvious copy-past error in wake up irq parsing
code which leads to the fact that dev_pm_set_wake_irq() will
be called with wrong IRQ number when "wakeup" IRQ is not
defined in DT.

Fixes: 3fffd1283927 ("i2c: allow specifying separate wakeup interrupt in device tree")
Signed-off-by: Grygorii Strashko &lt;grygorii.strashko@ti.com&gt;
Acked-by: Dmitry Torokhov &lt;dmitry.torokhov@gmail.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v4.3
</content>
</entry>
<entry>
<title>Merge branch 'i2c/for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux</title>
<updated>2015-11-10T19:58:25Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2015-11-10T19:58:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d55fc37856244c929965c190c8e9dcb49e2c07aa'/>
<id>urn:sha1:d55fc37856244c929965c190c8e9dcb49e2c07aa</id>
<content type='text'>
Pull i2c updates from Wolfram Sang:

 - New drivers: UniPhier (with and without FIFO)

 - some drivers got some bigger rework: ismt, designware, img-scb (rcar
   had to be reverted because issues were showing up just lately)

 - ACPI: reworked the device scanning and added support for muxes

... and quite a lot of driver bugfixes and cleanups this time.  All
files touched outside of the i2c realm have proper acks.

* 'i2c/for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (70 commits)
  i2c: rcar: Revert the latest refactoring series
  i2c: pnx: remove superfluous assignment
  MAINTAINERS: i2c: drop i2c-pnx maintainer
  MAINTAINERS: i2c: mark also subdirectories as maintained
  i2c: cadence: enable driver for ARM64
  i2c: i801: Document Intel DNV and Broxton
  i2c: at91: manage unexpected RXRDY flag when starting a transfer
  i2c: pnx: Use setup_timer instead of open coding it
  i2c: add ACPI support for I2C mux ports
  acpi: add acpi_preset_companion() stub
  i2c: pxa: Add support for pxa910/988 &amp; new configuration features
  i2c: au1550: Convert to devm_kzalloc and devm_ioremap_resource
  i2c-dev: Fix I2C_SLAVE ioctl comment
  i2c-dev: Fix typo in ioctl name reference
  i2c: sirf: tune the divider to make i2c bus freq more accurate
  i2c: imx: Use -ENXIO as error in the NACK case
  i2c: i801: Add support for Intel Broxton
  i2c: i801: Add support for Intel DNV
  i2c: mediatek: add i2c resume support
  i2c: imx: implement bus recovery
  ...
</content>
</entry>
<entry>
<title>i2c: add ACPI support for I2C mux ports</title>
<updated>2015-10-25T14:49:46Z</updated>
<author>
<name>Dustin Byford</name>
</author>
<published>2015-10-23T19:27:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8eb5c87a92c065aaca39ac3e841b07906a4959a2'/>
<id>urn:sha1:8eb5c87a92c065aaca39ac3e841b07906a4959a2</id>
<content type='text'>
Although I2C mux devices are easily enumerated using ACPI (_HID/_CID or
device property compatible string match), enumerating I2C client devices
connected through an I2C mux needs a little extra work.

This change implements a method for describing an I2C device hierarchy that
includes mux devices by using an ACPI Device() for each mux channel along
with an _ADR to set the channel number for the device.  See
Documentation/acpi/i2c-muxes.txt for a simple example.

To make this work the ismt, i801, and designware pci/platform devs now
share an ACPI companion with their I2C adapter dev similar to how it's done
in OF.  This is done on the assumption that power management functions will
not be called directly on the I2C dev that is sharing the ACPI node.

Acked-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Tested-by: Mika Westerberg &lt;mika.westerberg@linux.intel.com&gt;
Signed-off-by: Dustin Byford &lt;dustin@cumulusnetworks.com&gt;
Signed-off-by: Wolfram Sang &lt;wsa@the-dreams.de&gt;
</content>
</entry>
</feed>
