+ José
On 02/13/2018 06:31 PM, Ben Gardner wrote:
Can you test does reverting my guessed commit 2702ea7dbec5 ("i2c:
designware: wait for disable/enable only if necessary") fix it?
I verified that reverting 2702ea7dbec5 ("i2c: designware: wait for
disable/enable only if necessary") also fixes the issue.
Not waiting when disabling the adapter seems perfectly fine. Not
waiting when enabling is the problem.
José: There is a regression with above commit and Ben has found a fix
that brings back waiting when enabling the adapter in transfer start:
--- a/drivers/i2c/busses/i2c-designware-master.c
+++ b/drivers/i2c/busses/i2c-designware-master.c
@@ -209,7 +209,7 @@ static void i2c_dw_xfer_init(struct dw_i2c_dev *dev)
i2c_dw_disable_int(dev);
/* Enable the adapter */
- __i2c_dw_enable(dev, true);
+ __i2c_dw_enable_and_wait(dev, true);
I guess this was just forgotten conversion rather than intentional? At
least commit log is only about skipping waiting at the end of transaction.
I'd like to avoid full revert first because of Ben's fix I guess still
keeps the benefit of commit 2702ea7dbec5 and second because of code
changes revert is also a little bit more labor.
For linux-stable it is good info to know exactly the commit causing
regression and mark that in your changelog. It allows linux-stable folks to
apply fix to earlier kernels and know versions this fix will still apply if
cannot apply where regression was introduced. Fox example:
Fixes: commit 2702ea7dbec5 ("i2c: designware: wait for disable/enable only
if necessary")
Cc: linux-stable <stable@xxxxxxxxxxxxxxx> # 4.13+
Do you want me to resubmit this patch with the above lines (Fixes and
Cc) added or are you willing to add the appropriate lines and take
care of it?
I suppose the commit message could use some rewording, now that the
issue seems a bit clearer.
Yes please. It always good idea to make busy maintainers' life a bit
more easier :-)
--
Jarkko