• Johan Hovold's avatar
    clk: qcom: gcc-sc8280xp: don't use parking clk_ops for QUPs · 71c03a8c
    Johan Hovold authored
    A recent change started parking the RCG at an always on parent during
    registration, something which specifically breaks handover from an early
    serial console.
    
    Quoting Stephen Boyd who fixed this issue for SM8550 [1]:
    
    	The QUPs aren't shared in a way that requires parking the RCG at
    	an always on parent in case some other entity turns on the clk.
    	The hardware is capable of setting a new frequency itself with
    	the DFS mode, so parking is unnecessary. Furthermore, there
    	aren't any GDSCs for these devices, so there isn't a possibility
    	of the GDSC turning on the clks for housekeeping purposes.
    
    	This wasn't a problem to mark these clks shared until we started
    	parking shared RCGs at clk registration time in commit
    	01a0a6cc ("clk: qcom: Park shared RCGs upon registration").
    	Parking at init is actually harmful to the UART when earlycon is
    	used. If the device is pumping out data while the frequency
    	changes you'll see garbage on the serial console until the
    	driver can probe and actually set a proper frequency.
    
    Fixes: 01a0a6cc ("clk: qcom: Park shared RCGs upon registration")
    Fixes: d65d005f ("clk: qcom: add sc8280xp GCC driver")
    Link: https://lore.kernel.org/all/20240819233628.2074654-2-swboyd@chromium.org/ [1]
    Signed-off-by: default avatarJohan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20240902070830.8535-1-johan+linaro@kernel.orgSigned-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    71c03a8c
gcc-sc8280xp.c 200 KB