diff options
author | Wolfram Sang <wsa@the-dreams.de> | 2018-05-15 10:41:01 +0200 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2018-05-15 10:41:01 +0200 |
commit | e6218bf390a9992de86a535bcb227f75e2c20cf9 (patch) | |
tree | b6bfa2374c78fedacb683b4da91afac3300807ba /drivers/i2c/busses | |
parent | 77bade677c3c5616dfadfd21f0220fcddbfa4cbe (diff) | |
parent | 35cd67a0caf767aba472452865dcb4471fcce2b1 (diff) | |
download | linux-e6218bf390a9992de86a535bcb227f75e2c20cf9.tar.gz linux-e6218bf390a9992de86a535bcb227f75e2c20cf9.tar.bz2 linux-e6218bf390a9992de86a535bcb227f75e2c20cf9.zip |
Merge branch 'i2c/for-current-fixed' into i2c/for-4.18
Diffstat (limited to 'drivers/i2c/busses')
-rw-r--r-- | drivers/i2c/busses/i2c-designware-master.c | 5 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-pmcmsp.c | 4 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-viperboard.c | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/drivers/i2c/busses/i2c-designware-master.c b/drivers/i2c/busses/i2c-designware-master.c index fd36c39ddf4e..0cdba29ae0a9 100644 --- a/drivers/i2c/busses/i2c-designware-master.c +++ b/drivers/i2c/busses/i2c-designware-master.c @@ -209,7 +209,10 @@ static void i2c_dw_xfer_init(struct dw_i2c_dev *dev) i2c_dw_disable_int(dev); /* Enable the adapter */ - __i2c_dw_enable_and_wait(dev, true); + __i2c_dw_enable(dev, true); + + /* Dummy read to avoid the register getting stuck on Bay Trail */ + dw_readl(dev, DW_IC_ENABLE_STATUS); /* Clear and enable interrupts */ dw_readl(dev, DW_IC_CLR_INTR); diff --git a/drivers/i2c/busses/i2c-pmcmsp.c b/drivers/i2c/busses/i2c-pmcmsp.c index 2aa0e83174c5..dae8ac618a52 100644 --- a/drivers/i2c/busses/i2c-pmcmsp.c +++ b/drivers/i2c/busses/i2c-pmcmsp.c @@ -564,10 +564,10 @@ static int pmcmsptwi_master_xfer(struct i2c_adapter *adap, * TODO: We could potentially loop and retry in the case * of MSP_TWI_XFER_TIMEOUT. */ - return -1; + return -EIO; } - return 0; + return num; } static u32 pmcmsptwi_i2c_func(struct i2c_adapter *adapter) diff --git a/drivers/i2c/busses/i2c-viperboard.c b/drivers/i2c/busses/i2c-viperboard.c index e4be86b3de9a..7235c7302bb7 100644 --- a/drivers/i2c/busses/i2c-viperboard.c +++ b/drivers/i2c/busses/i2c-viperboard.c @@ -337,7 +337,7 @@ static int vprbrd_i2c_xfer(struct i2c_adapter *i2c, struct i2c_msg *msgs, } mutex_unlock(&vb->lock); } - return 0; + return num; error: mutex_unlock(&vb->lock); return error; |