clk: samsung: Fix Exynos 5420 pinctrl setup and clock disable failure due to domain...
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>
Fri, 5 Dec 2014 14:15:34 +0000 (15:15 +0100)
committerMichael Turquette <mturquette@linaro.org>
Wed, 17 Dec 2014 15:31:51 +0000 (07:31 -0800)
commitf1e9203e2366164b832d8a6ce10134de8c575178
treeb63f8a883579d364856014b7b122fb0fbc581d5f
parent83ccc4670477e7722d4654ca44b4b7004fcaada9
clk: samsung: Fix Exynos 5420 pinctrl setup and clock disable failure due to domain being gated

Audio subsystem clocks are located in separate block. On Exynos 5420 if
clock for this block (from main clock domain) 'mau_epll' is gated then
any read or write to audss registers will block.

This kind of boot hang was observed on Arndale Octa and Peach Pi/Pit
after introducing runtime PM to pl330 DMA driver. After that commit the
'mau_epll' was gated, because the "amba" clock was disabled and there
were no more users of mau_epll.

The system hang on one of steps:
1. Disabling unused clocks from audss block.
2. During audss GPIO setup (just before probing i2s0 because
   samsung_pinmux_setup() tried to access memory from audss block which was
   gated.

Add a workaround for this by enabling the 'mau_epll' clock in probe.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Tested-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
drivers/clk/samsung/clk-exynos-audss.c