Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> writes: > On 24/09/14 16:22, Kevin Hilman wrote: >> Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html