1
0
Fork 0
remarkable-linux/arch/arm/mach-davinci
Alexandre Bailon d1df1e01af ARM: davinci: da8xx: Fix sleeping function called from invalid context
Everytime the usb20 phy is enabled, there is a
"sleeping function called from invalid context" BUG.
In addition, there is a recursive locking happening
because of the recurse call to clk_enable().

clk_enable() from arch/arm/mach-davinci/clock.c uses
spin_lock_irqsave() before to invoke the callback
usb20_phy_clk_enable(). usb20_phy_clk_enable() uses
clk_get() and clk_enable_prepapre() which may sleep.

Replace clk_prepare_enable() by davinci_clk_enable().

Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
Suggested-by: David Lechner <david@lechnology.com>
[nsekhar@ti.com: minor commit description adjustment]
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2017-01-02 16:15:07 +05:30
..
include/mach mach-davinci cleanup to make it easy to add PM support 2016-11-30 14:45:31 +01:00
Kconfig ARM: davinci: make I2C support optional 2016-02-17 19:20:05 +05:30
Makefile ARM: davinci: PM: fix build when da850 not compiled in 2016-11-20 16:52:00 +05:30
Makefile.boot ARM: davinci: enable da8xx build concurrently with older devices 2014-03-06 19:08:28 +05:30
aemif.c ARM: davinci: aemif: get rid of davinci-nand driver dependency on aemif 2014-02-23 20:33:18 +05:30
asp.h ARM: davinci: devices-da8xx: Add support for McASP2 on da830 2015-03-18 15:52:05 +05:30
board-da830-evm.c ARM: davinci: da830-evm: use gpio descriptor for mmc pins 2016-11-28 14:01:17 +05:30
board-da850-evm.c mach-davinci SoC support updates to adjust 2016-11-30 14:48:30 +01:00
board-dm355-evm.c ARM: davinci: remove unused davinci-i2s pdata 2016-06-24 15:28:30 +05:30
board-dm355-leopard.c ARM: davinci: fix a problematic usage of WARN() 2015-12-15 15:29:34 +05:30
board-dm365-evm.c ARM: davinci: fix build break because of undeclared dm365_evm_snd_data 2016-07-14 14:44:43 +02:00
board-dm644x-evm.c ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
board-dm646x-evm.c ARM: davinci: make I2C support optional 2016-02-17 19:20:05 +05:30
board-mityomapl138.c mach-davinci cleanup to make it easy to add PM support 2016-11-30 14:45:31 +01:00
board-neuros-osd2.c ARM: davinci: remove unused davinci-i2s pdata 2016-06-24 15:28:30 +05:30
board-omapl138-hawk.c ARM: davinci: hawk: use gpio descriptor for mmc pins 2016-11-28 14:00:55 +05:30
board-sffsdr.c misc: (at24) move header to linux/platform_data/ 2013-09-30 06:02:34 +02:00
clock.c ARM: davinci: Make __clk_{enable,disable} functions public 2017-01-02 16:10:42 +05:30
clock.h ARM: davinci: Make __clk_{enable,disable} functions public 2017-01-02 16:10:42 +05:30
common.c ARM: davinci: PM: rework init, remove platform device 2016-11-16 14:41:29 +05:30
cp_intc.c ARM: davinci: use IRQCHIP_DECLARE for cp_intc 2016-04-14 12:09:50 +05:30
cp_intc.h ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
cpuidle.c ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
cpuidle.h ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
da8xx-dt.c ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
da830.c ARM: davinci: da8xx: Fix ohci device name 2016-11-23 17:34:06 +05:30
da850.c ARM: davinci: da850: don't add emac clock to lookup table twice 2017-01-02 14:37:18 +05:30
davinci.h ARM: davinci: fix build break because of undeclared dm365_evm_snd_data 2016-07-14 14:44:43 +02:00
ddr2.h ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
devices-da8xx.c ARM: davinci: da8xx: Add CFGCHIP syscon platform device 2016-10-31 16:58:21 +05:30
devices.c ARM: davinci: devices: Remove DMA resources for MMC 2016-10-26 13:42:53 +05:30
dm355.c ARM: davinci: dm355: Remove DMA resources for SPI 2016-10-26 13:42:53 +05:30
dm365.c ARM: davinci: dm365: Remove DMA resources for SPI 2016-10-26 13:42:53 +05:30
dm644x.c ARM: davinci: remove unused davinci-i2s pdata 2016-06-24 15:28:30 +05:30
dm646x.c ARM: davinci: Move clock init after ioremap. 2016-04-27 16:03:49 +05:30
irq.c Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-19 22:10:05 -07:00
mux.c ARM: davinci: davinci_cfg_reg cannot be init 2015-02-18 12:20:25 +01:00
mux.h Davinci: eliminate pinmux offset verbosity 2010-05-06 15:02:09 -07:00
pm.c ARM: davinci: PM: cleanup: remove references to pdata 2016-11-16 14:41:59 +05:30
pm_domain.c arm: davinci: remove boilerplate code and use USE_PM_CLK_RUNTIME_OPS 2015-05-12 23:55:38 +02:00
psc.c ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
psc.h ARM: davinci: da850: add clocks for mcbsp0 and 1 2016-06-10 18:22:41 +05:30
serial.c ARM: davinci: serial.c: remove unused serial_read_reg() 2015-01-14 15:56:12 +05:30
sleep.S ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
sram.c ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
sram.h ARM: davinci: make headers more local 2015-12-01 21:52:51 +01:00
time.c clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
usb-da8xx.c ARM: davinci: da8xx: Fix sleeping function called from invalid context 2017-01-02 16:15:07 +05:30
usb.c ARM: davinci: da8xx: move usb code to new file 2016-04-14 15:31:42 +05:30