Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"A few bugfixes and one PCI ID addition from I2C"

* 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: i801: add Intel Lewisburg device IDs
i2c: fix wakeup irq parsing
i2c: xiic: Prevent concurrent running of the IRQ handler and __xiic_start_xfer()
i2c: Revert "i2c: xiic: Do not reset controller before every transfer"
i2c: imx: fix a compiling error

+13 -2
+1
Documentation/i2c/busses/i2c-i801
··· 32 32 * Intel Sunrise Point-LP (PCH) 33 33 * Intel DNV (SOC) 34 34 * Intel Broxton (SOC) 35 + * Intel Lewisburg (PCH) 35 36 Datasheets: Publicly available at the Intel website 36 37 37 38 On Intel Patsburg and later chipsets, both the normal host SMBus controller
+1
drivers/i2c/busses/Kconfig
··· 126 126 Sunrise Point-LP (PCH) 127 127 DNV (SOC) 128 128 Broxton (SOC) 129 + Lewisburg (PCH) 129 130 130 131 This driver can also be built as a module. If so, the module 131 132 will be called i2c-i801.
+6
drivers/i2c/busses/i2c-i801.c
··· 62 62 * Sunrise Point-LP (PCH) 0x9d23 32 hard yes yes yes 63 63 * DNV (SOC) 0x19df 32 hard yes yes yes 64 64 * Broxton (SOC) 0x5ad4 32 hard yes yes yes 65 + * Lewisburg (PCH) 0xa1a3 32 hard yes yes yes 66 + * Lewisburg Supersku (PCH) 0xa223 32 hard yes yes yes 65 67 * 66 68 * Features supported by this driver: 67 69 * Software PEC no ··· 208 206 #define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS 0x9d23 209 207 #define PCI_DEVICE_ID_INTEL_DNV_SMBUS 0x19df 210 208 #define PCI_DEVICE_ID_INTEL_BROXTON_SMBUS 0x5ad4 209 + #define PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS 0xa1a3 210 + #define PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS 0xa223 211 211 212 212 struct i801_mux_config { 213 213 char *gpio_chip; ··· 873 869 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_SMBUS) }, 874 870 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_DNV_SMBUS) }, 875 871 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BROXTON_SMBUS) }, 872 + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LEWISBURG_SMBUS) }, 873 + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LEWISBURG_SSKU_SMBUS) }, 876 874 { 0, } 877 875 }; 878 876
+1
drivers/i2c/busses/i2c-imx.c
··· 50 50 #include <linux/of_device.h> 51 51 #include <linux/of_dma.h> 52 52 #include <linux/of_gpio.h> 53 + #include <linux/pinctrl/consumer.h> 53 54 #include <linux/platform_data/i2c-imx.h> 54 55 #include <linux/platform_device.h> 55 56 #include <linux/sched.h>
+3 -1
drivers/i2c/busses/i2c-xiic.c
··· 662 662 663 663 static void xiic_start_xfer(struct xiic_i2c *i2c) 664 664 { 665 - 665 + spin_lock(&i2c->lock); 666 + xiic_reinit(i2c); 666 667 __xiic_start_xfer(i2c); 668 + spin_unlock(&i2c->lock); 667 669 } 668 670 669 671 static int xiic_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
+1 -1
drivers/i2c/i2c-core.c
··· 715 715 if (wakeirq > 0 && wakeirq != client->irq) 716 716 status = dev_pm_set_dedicated_wake_irq(dev, wakeirq); 717 717 else if (client->irq > 0) 718 - status = dev_pm_set_wake_irq(dev, wakeirq); 718 + status = dev_pm_set_wake_irq(dev, client->irq); 719 719 else 720 720 status = 0; 721 721