openwrt/target/linux
Felix Fietkau 2ef587a8fc oxnas: clk-oxnas: rework pllb enable function
kernel lock debugging unveiled that we should not call
of_reset_control_get inside a clock's enable operation (see below)

move of_reset_control_* previously used in pllb_clk_enable to new
pllb_clk_prepare and pllb_clk_unprepare functions.
use a container to carry runtime information.

------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:2742 lockdep_trace_alloc+0xb8/0xfc()
DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.26 #6
[<c001a6ac>] (unwind_backtrace) from [<c0016dec>] (show_stack+0x10/0x14)
[<c0016dec>] (show_stack) from [<c0194f68>] (dump_stack+0x7c/0x94)
[<c0194f68>] (dump_stack) from [<c0021b50>] (warn_slowpath_common+0x68/0x8c)
[<c0021b50>] (warn_slowpath_common) from [<c0021ba4>] (warn_slowpath_fmt+0x30/0x40)
[<c0021ba4>] (warn_slowpath_fmt) from [<c0061b30>] (lockdep_trace_alloc+0xb8/0xfc)
[<c0061b30>] (lockdep_trace_alloc) from [<c00cb740>] (kmem_cache_alloc+0x1c/0xf8)
[<c00cb740>] (kmem_cache_alloc) from [<c01d33c8>] (of_reset_control_get+0xe8/0x12c)
[<c01d33c8>] (of_reset_control_get) from [<c0269228>] (pllb_clk_enable+0x14/0xbc)
[<c0269228>] (pllb_clk_enable) from [<c0265738>] (__clk_enable+0x54/0xa0)
[<c0265738>] (__clk_enable) from [<c0265acc>] (clk_enable+0x18/0x2c)
[<c0265acc>] (clk_enable) from [<c04325f8>] (oxnas_pcie_probe+0x3b8/0x6a0)
[<c04325f8>] (oxnas_pcie_probe) from [<c01f2510>] (platform_drv_probe+0x18/0x48)
[<c01f2510>] (platform_drv_probe) from [<c01f1070>] (driver_probe_device+0xd8/0x24c)
[<c01f1070>] (driver_probe_device) from [<c01f1298>] (__driver_attach+0x70/0x94)
[<c01f1298>] (__driver_attach) from [<c01ef728>] (bus_for_each_dev+0x4c/0x98)
[<c01ef728>] (bus_for_each_dev) from [<c01f0818>] (bus_add_driver+0xcc/0x1e8)
[<c01f0818>] (bus_add_driver) from [<c01f169c>] (driver_register+0xa0/0xe8)
[<c01f169c>] (driver_register) from [<c01f2568>] (platform_driver_probe+0x20/0xa4)
[<c01f2568>] (platform_driver_probe) from [<c0013a3c>] (do_one_initcall+0x90/0x140)
[<c0013a3c>] (do_one_initcall) from [<c0421d38>] (kernel_init_freeable+0x1e4/0x2c0)
[<c0421d38>] (kernel_init_freeable) from [<c000c214>] (kernel_init+0x8/0x104)
[<c000c214>] (kernel_init) from [<c0008768>] (ret_from_fork+0x14/0x2c)
---[ end trace 5f17ed2f61e0683f ]---

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43787
2014-12-27 13:03:12 +00:00
..
adm5120 add "preinit_regular" diag.sh set_state argument 2014-12-15 10:37:00 +00:00
adm8668 adm8668: remove linux 3.3 support 2014-12-11 20:07:31 +00:00
ar7 ar7: remove leftover 3.10 patches 2014-12-18 11:57:42 +00:00
ar71xx ar71xx: add flush reset register writes, should fix restart issues (#17839) 2014-12-26 12:36:38 +00:00
arm64 arm64: add ARM 64-bits target 2014-11-24 06:34:07 +00:00
at91 at91: remove linux 3.10 support 2014-12-13 11:55:24 +00:00
atheros kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
au1000 au1000: remove leftover 3.3 kernel config 2014-12-13 11:55:49 +00:00
avr32 add "preinit_regular" diag.sh set_state argument 2014-12-15 10:37:00 +00:00
bcm53xx bcm53xx: support WAN connected to switch port 0 2014-12-20 15:09:01 +00:00
brcm47xx brcm47xx: extract magics from specific upgrade images (and still reject them) 2014-12-15 11:09:14 +00:00
brcm63xx add "preinit_regular" diag.sh set_state argument 2014-12-15 10:37:00 +00:00
brcm2708 brcm2708: remove linux 3.10 support 2014-12-13 11:55:11 +00:00
cns3xxx kernel: refresh patches 2014-12-08 12:04:25 +00:00
cns21xx add "preinit_regular" diag.sh set_state argument 2014-12-15 10:37:00 +00:00
cobalt cobalt: remove 3.3 and 3.10 kernel configuration files 2014-12-07 21:58:33 +00:00
ep93xx kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
gemini gemini: update usb driver and merge registers into one patch 2014-12-14 08:57:52 +00:00
generic kernel/generic: fix warnings if libata-ledtrig is disabled 2014-12-27 13:02:58 +00:00
imx6 kernel/modules: fix chipidea 2014-12-11 18:35:41 +00:00
iop32x kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
ipq806x kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
ixp4xx ixp4xx: remove linux 3.10 support 2014-12-13 11:55:04 +00:00
kirkwood we've changed places with Luka, reflect that :) 2014-12-25 22:34:15 +00:00
lantiq lantiq: remove linux 3.10 support 2014-12-13 11:54:57 +00:00
malta malta: set 3.14 as default 2014-12-01 18:46:29 +00:00
mcs814x kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
mpc52xx kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
mpc83xx kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
mpc85xx add "preinit_regular" diag.sh set_state argument 2014-12-15 10:37:00 +00:00
mvebu fix mvneta vlan tagging 2014-12-26 14:48:33 +00:00
mxs add "preinit_regular" diag.sh set_state argument 2014-12-15 10:37:00 +00:00
netlogic netlogic: fix XLR network driver build 2014-12-13 08:08:30 +00:00
octeon octeon: remove linux 3.10 support 2014-12-11 20:07:39 +00:00
omap kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
omap24xx kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
orion kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
oxnas oxnas: clk-oxnas: rework pllb enable function 2014-12-27 13:03:12 +00:00
ppc40x kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
ppc44x kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
pxa kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
ramips ralink: remove partitoon map from mt7621.dtsi 2014-12-15 15:55:37 +00:00
rb532 rb532: remove linux 3.10 support 2014-12-13 11:55:32 +00:00
realview realview: drop old kernel configs 2014-12-13 11:55:59 +00:00
sibyte kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
sparc kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
sunxi sunxi: fix led on bananapi 2014-12-12 16:11:17 +00:00
uml uml: remove inittab since procd is fixed now 2014-11-05 14:21:51 +00:00
x86 x86: remove linux 3.10 support 2014-12-11 20:07:45 +00:00
x86_64 kernel: makefiles: make use of new var KERNEL_PATCHVER 2014-10-24 19:34:02 +00:00
xburst xburst: fix subtarget config file names 2014-12-11 20:07:52 +00:00
Makefile