Merge branch 'i2c/for-current-fixed' of ssh://gitolite.kernel.org/pub/scm/linux/kerne...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 3 May 2019 18:42:01 +0000 (11:42 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 3 May 2019 18:42:01 +0000 (11:42 -0700)
Pull i2c fixes from Wolfram Sang:
 "I2C driver bugfixes and a MAINTAINERS update for you"

* 'i2c/for-current-fixed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
  i2c: Prevent runtime suspend of adapter when Host Notify is required
  i2c: synquacer: fix enumeration of slave devices
  MAINTAINERS: friendly takeover of i2c-gpio driver
  i2c: designware: ratelimit 'transfer when suspended' errors
  i2c: imx: correct the method of getting private data in notifier_call

1  2 
MAINTAINERS
drivers/i2c/i2c-core-base.c

diff --combined MAINTAINERS
@@@ -3121,7 -3121,6 +3121,7 @@@ F:      drivers/cpufreq/bmips-cpufreq.
  BROADCOM BMIPS MIPS ARCHITECTURE
  M:    Kevin Cernekee <cernekee@gmail.com>
  M:    Florian Fainelli <f.fainelli@gmail.com>
 +L:    bcm-kernel-feedback-list@broadcom.com
  L:    linux-mips@vger.kernel.org
  T:    git git://github.com/broadcom/stblinux.git
  S:    Maintained
@@@ -6462,7 -6461,7 +6462,7 @@@ S:      Maintaine
  F:    drivers/media/radio/radio-gemtek*
  
  GENERIC GPIO I2C DRIVER
- M:    Haavard Skinnemoen <hskinnemoen@gmail.com>
+ M:    Wolfram Sang <wsa+renesas@sang-engineering.com>
  S:    Supported
  F:    drivers/i2c/busses/i2c-gpio.c
  F:    include/linux/platform_data/i2c-gpio.h
@@@ -8708,7 -8707,6 +8708,7 @@@ F:      scripts/leaking_addresses.p
  LED SUBSYSTEM
  M:    Jacek Anaszewski <jacek.anaszewski@gmail.com>
  M:    Pavel Machek <pavel@ucw.cz>
 +R:    Dan Murphy <dmurphy@ti.com>
  L:    linux-leds@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git
  S:    Maintained
@@@ -185,7 -185,7 +185,7 @@@ static int i2c_generic_bus_free(struct 
  int i2c_generic_scl_recovery(struct i2c_adapter *adap)
  {
        struct i2c_bus_recovery_info *bri = adap->bus_recovery_info;
 -      int i = 0, scl = 1, ret;
 +      int i = 0, scl = 1, ret = 0;
  
        if (bri->prepare_recovery)
                bri->prepare_recovery(adap);
@@@ -327,6 -327,8 +327,8 @@@ static int i2c_device_probe(struct devi
  
                if (client->flags & I2C_CLIENT_HOST_NOTIFY) {
                        dev_dbg(dev, "Using Host Notify IRQ\n");
+                       /* Keep adapter active when Host Notify is required */
+                       pm_runtime_get_sync(&client->adapter->dev);
                        irq = i2c_smbus_host_notify_to_irq(client);
                } else if (dev->of_node) {
                        irq = of_irq_get_byname(dev->of_node, "irq");
@@@ -431,6 -433,8 +433,8 @@@ static int i2c_device_remove(struct dev
        device_init_wakeup(&client->dev, false);
  
        client->irq = client->init_irq;
+       if (client->flags & I2C_CLIENT_HOST_NOTIFY)
+               pm_runtime_put(&client->adapter->dev);
  
        return status;
  }