summaryrefslogtreecommitdiff
path: root/drivers/i2c/busses/i2c-omap.c
diff options
context:
space:
mode:
authorMax Schwarz <max.schwarz@online.de>2014-11-20 12:26:50 +0300
committerWolfram Sang <wsa@the-dreams.de>2014-11-23 19:27:46 +0300
commit249051f49907e7d147228a7d27a8ec37da1ea0fa (patch)
treea21bd2db97db21b85fe9614f6ea21f1e88b37331 /drivers/i2c/busses/i2c-omap.c
parent727f9c2dad9dd3e9aff4f64e92df577f1409a768 (diff)
downloadlinux-249051f49907e7d147228a7d27a8ec37da1ea0fa.tar.xz
i2c: rk3x: handle dynamic clock rate changes correctly
The i2c input clock can change dynamically, e.g. on the RK3066 where pclk_i2c0 and pclk_i2c1 are connected to the armclk, which changes rate on cpu frequency scaling. Until now, we incorrectly called clk_get_rate() while holding the i2c->lock in rk3x_i2c_xfer() to adapt to clock rate changes. Thanks to Huang Tao for reporting this issue. Do it properly now using the clk notifier framework. The callback logic was taken from i2c-cadence.c. Also rename all misleading "i2c_rate" variables to "clk_rate", as they describe the *input* clk rate. Signed-off-by: Max Schwarz <max.schwarz@online.de> Tested-by: Doug Anderson <dianders@chromium.org> on RK3288 Reviewed-by: Doug Anderson <dianders@chromium.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c/busses/i2c-omap.c')
0 files changed, 0 insertions, 0 deletions