History

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

Pull i2c fixes from Wolfram Sang: "Some more driver fixes for i2c" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: npcm7xx: Clear LAST bit after a failed transaction. i2c: cpm: Fix i2c_ram structure i2c: i801: Exclude device from suspend direct complete optimization

Linus Torvalds committed 6 years ago

Commit f35c08e2 parents 72af7b4 8947efc3 files · +13 −0Browse files

Unified · Split

3 files
  1. drivers/i2c/busses/i2c-cpm.c +3 −0
  2. drivers/i2c/busses/i2c-i801.c +1 −0
  3. drivers/i2c/busses/i2c-npcm7xx.c +9 −0
drivers/i2c/busses/i2c-cpm.c+3−0
@@ -65,6 +65,9 @@ struct i2c_ram { · 64 unmodified lines
6565 char res1[4]; /* Reserved */
6666 ushort rpbase; /* Relocation pointer */
6767 char res2[2]; /* Reserved */
68+ /* The following elements are only for CPM2 */
69+ char res3[4]; /* Reserved */
70+ uint sdmatmp; /* Internal */
6871 };
6972
7073 #define I2COM_START 0x80
drivers/i2c/busses/i2c-i801.c+1−0
@@ -1917,6 +1917,7 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id) · 1916 unmodified lines
19171917
19181918 pci_set_drvdata(dev, priv);
19191919
1920+ dev_pm_set_driver_flags(&dev->dev, DPM_FLAG_NO_DIRECT_COMPLETE);
19201921 pm_runtime_set_autosuspend_delay(&dev->dev, 1000);
19211922 pm_runtime_use_autosuspend(&dev->dev);
19221923 pm_runtime_put_autosuspend(&dev->dev);
drivers/i2c/busses/i2c-npcm7xx.c+9−0
@@ -2163,6 +2163,15 @@ static int npcm_i2c_master_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, · 2162 unmodified lines
21632163 if (bus->cmd_err == -EAGAIN)
21642164 ret = i2c_recover_bus(adap);
21652165
2166+ /*
2167+ * After any type of error, check if LAST bit is still set,
2168+ * due to a HW issue.
2169+ * It cannot be cleared without resetting the module.
2170+ */
2171+ if (bus->cmd_err &&
2172+ (NPCM_I2CRXF_CTL_LAST_PEC & ioread8(bus->reg + NPCM_I2CRXF_CTL)))
2173+ npcm_i2c_reset(bus);
2174+
21662175 #if IS_ENABLED(CONFIG_I2C_SLAVE)
21672176 /* reenable slave if it was enabled */
21682177 if (bus->slave)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t