Re: [PATCH v2] soc: qcom: do not disable the iface clock in probe

2014-09-25 Thread Kevin Hilman
Srinivas Kandagatla srinivas.kandaga...@linaro.org writes:

 On 24/09/14 16:22, Kevin Hilman wrote:
 Srinivas Kandagatla srinivas.kandaga...@linaro.org writes:

 since commit 31964ffebbb9 (tty: serial: msm: Remove direct access to 
 GSBI)'
 serial hangs if earlyprintk are enabled.

 This hang is noticed only when the GSBI driver is probed and all the
 earlyprintks before gsbi probe are seen on the console.
 The reason why it hangs is because GSBI driver disables hclk in its
 probe function without realizing that the serial IP might be in use by
 a bootconsole. As gsbi driver disables the clock in probe the
 bootconsole locks up.

 Turning off hclk's could be dangerous if there are system components
 like earlyprintk using the hclk.

 This seems rather fragile.  Isn't the right fix for these other
 components to use the clk api to ensure the clock does not get enabled?
 Here we are depending on the bootloader to setup the clocks.

 Am not sure if we can really use clk apis at that early stage of bootstrap.

Not that early, but all that matters is that you clk_enable() sometime
before the GSBI driver calls clk_disable().

If the clocks are always enabled by the bootloader, the platforms clock
driver might check for those and ensure they are enabled, so that linux
is aware of it, and bugs like this one are avoided.

IMO, clock enable/disable shuffling in the GSBI driver to avoid UART
console problems is just papering over a bug that's waiting to pop up
elsewhere.

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-arm-msm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] soc: qcom: do not disable the iface clock in probe

2014-09-24 Thread Kevin Hilman
Srinivas Kandagatla srinivas.kandaga...@linaro.org writes:

 since commit 31964ffebbb9 (tty: serial: msm: Remove direct access to GSBI)'
 serial hangs if earlyprintk are enabled.

 This hang is noticed only when the GSBI driver is probed and all the
 earlyprintks before gsbi probe are seen on the console.
 The reason why it hangs is because GSBI driver disables hclk in its
 probe function without realizing that the serial IP might be in use by
 a bootconsole. As gsbi driver disables the clock in probe the
 bootconsole locks up.

 Turning off hclk's could be dangerous if there are system components
 like earlyprintk using the hclk.

This seems rather fragile.  Isn't the right fix for these other
components to use the clk api to ensure the clock does not get enabled?

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-arm-msm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] soc: qcom: do not disable the iface clock in probe

2014-09-24 Thread Srinivas Kandagatla



On 24/09/14 16:22, Kevin Hilman wrote:

Srinivas Kandagatla srinivas.kandaga...@linaro.org writes:


since commit 31964ffebbb9 (tty: serial: msm: Remove direct access to GSBI)'
serial hangs if earlyprintk are enabled.

This hang is noticed only when the GSBI driver is probed and all the
earlyprintks before gsbi probe are seen on the console.
The reason why it hangs is because GSBI driver disables hclk in its
probe function without realizing that the serial IP might be in use by
a bootconsole. As gsbi driver disables the clock in probe the
bootconsole locks up.



Turning off hclk's could be dangerous if there are system components
like earlyprintk using the hclk.


This seems rather fragile.  Isn't the right fix for these other
components to use the clk api to ensure the clock does not get enabled?

Here we are depending on the bootloader to setup the clocks.

Am not sure if we can really use clk apis at that early stage of bootstrap.

--srini





Kevin


--
To unsubscribe from this list: send the line unsubscribe linux-arm-msm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2] soc: qcom: do not disable the iface clock in probe

2014-09-23 Thread Olof Johansson
On Tue, Sep 23, 2014 at 08:20:54PM +0100, Srinivas Kandagatla wrote:
 since commit 31964ffebbb9 (tty: serial: msm: Remove direct access to GSBI)'
 serial hangs if earlyprintk are enabled.
 
 This hang is noticed only when the GSBI driver is probed and all the
 earlyprintks before gsbi probe are seen on the console.
 The reason why it hangs is because GSBI driver disables hclk in its
 probe function without realizing that the serial IP might be in use by
 a bootconsole. As gsbi driver disables the clock in probe the
 bootconsole locks up.
 
 Turning off hclk's could be dangerous if there are system components
 like earlyprintk using the hclk.
 
 This patch fixes the issue by delegating the clock management to
 probe and remove functions in gsbi rather than disabling the clock in probe.
 
 More detailed problem description can be found here:
 http://www.spinics.net/lists/linux-arm-msm/msg10589.html
 
 Tested-by: Linus Walleij linus.wall...@linaro.org
 Signed-off-by: Srinivas Kandagatla srinivas.kandaga...@linaro.org
 ---
 Hi Kevin, 
 
 Am resending this patch with reference to the problem and adding more
 details to the log.
 
 Could you pick this fix for the next rc, as this fixes a serial console
 hang with earlyprintk on SOCs like APQ8064.
 
 Changes since v1:
   - added more info in the change log as requested by Kumar and Kevin.

Applied to fixes.


-Olof
--
To unsubscribe from this list: send the line unsubscribe linux-arm-msm in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html