On Mon, Jan 22, 2018 at 03:42:58PM +0100, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski > > i2c_davinci_cpufreq_transition() is implemented in a way that will > block if it ever gets called while no transfer is in progress. > > Not only that, but reinit_completion() is never called for xfr_complete. > > Use the fact that cpufreq uses an srcu_notifier (running in process > context) for transitions and that the bus_lock is taken during the call > to master_xfer() and simplify the code by removing the transfer > completion entirely and protecting i2c_davinci_cpufreq_transition() > with i2c_lock/unlock_adapter(). > > Reported-by: David Lechner > Signed-off-by: Bartosz Golaszewski Applied to for-next, thanks!