On Wed, May 13, 2015 at 03:03:28PM +0200, Alexander Sverdlin wrote: > There are several problems in the function: > - "to_cnt" variable does nothing > - schedule_timeout() call without setting current state does nothing > - "allow_sleep" parameter is not really used > > Refactor the function so that it really tries to wait. In case of timeout try > to recover the bus. > > Signed-off-by: Alexander Sverdlin <[email protected]>
Don't you get a build warning?
drivers/i2c/busses/i2c-davinci.c: In function 'i2c_davinci_wait_bus_not_busy':
drivers/i2c/busses/i2c-davinci.c:364:18: warning: passing argument 1 of
'i2c_recover_bus' from incompatible pointer type
i2c_recover_bus(dev);
^
In file included from drivers/i2c/busses/i2c-davinci.c:26:0:
include/linux/i2c.h:446:5: note: expected 'struct i2c_adapter *' but argument
is of type 'struct davinci_i2c_dev *'
int i2c_recover_bus(struct i2c_adapter *adap);
Or sparse complains, too:
drivers/i2c/busses/i2c-davinci.c:364:25: warning: incorrect type in argument 1
(different base types)
drivers/i2c/busses/i2c-davinci.c:364:25: expected struct i2c_adapter *adap
drivers/i2c/busses/i2c-davinci.c:364:25: got struct davinci_i2c_dev *dev
signature.asc
Description: Digital signature
