linux/drivers/clk/rockchip
Heiko Stübner a5e1baf7dc clk: rockchip: fix deadlock possibility in cpuclk
Lockdep reported a possible deadlock between the cpuclk lock and for example
the i2c driver.

       CPU0                    CPU1
       ----                    ----
  lock(clk_lock);
                               local_irq_disable();
                               lock(&(&i2c->lock)->rlock);
                               lock(clk_lock);
  <Interrupt>
    lock(&(&i2c->lock)->rlock);

 *** DEADLOCK ***

The generic clock-types of the core ccf already use spin_lock_irqsave when
touching clock registers, so do the same for the cpuclk.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
[mturquette@linaro.org: removed initialization of "flags"]
2015-01-17 11:22:39 -08:00
..
clk-cpu.c clk: rockchip: fix deadlock possibility in cpuclk 2015-01-17 11:22:39 -08:00
clk-mmc-phase.c clk: rockchip: Add support for the mmc clock phases using the framework 2014-11-28 00:44:24 +01:00
clk-pll.c clk: rockchip: add optional sync to pll rate parameters 2014-11-25 09:57:18 +01:00
clk-rk3188.c clk: rockchip: fix rk3066 pll lock bit location 2014-12-28 23:30:08 +01:00
clk-rk3288.c clk: rockchip: fix rk3288 cpuclk core dividers 2014-12-28 23:31:44 +01:00
clk-rockchip.c
clk.c - clock phase setting capability for the rk3288 mmc clocks 2014-11-28 21:00:16 -08:00
clk.h clk: rockchip: Add support for the mmc clock phases using the framework 2014-11-28 00:44:24 +01:00
Makefile clk: rockchip: Add support for the mmc clock phases using the framework 2014-11-28 00:44:24 +01:00
softrst.c clk: rockchip: add reset controller 2014-07-13 12:17:07 -07:00