On Wed, Aug 28, 2024 at 10:17:07AM -0700, Stephen Boyd wrote: > Amit Pundir reports that audio and USB-C host mode stops working on > sm8550 after commit 01a0a6cc8cfd ("clk: qcom: Park shared RCGs upon > registration"). That's because the gcc_usb30_prim_master_clk_src clk is > registered and clk_rcg2_shared_init() parks it on XO. Running USB at a > slower speed than the link supports is effectively under-clocking the > USB link and probably confusing the downstream USB devices. > > We didn't need to change all the shared RCGs to park on XO at > registration time in commit commit 01a0a6cc8cfd ("clk: qcom: Park shared > RCGs upon registration"). Instead, we only needed to park the few > display related clks on sc7180 to fix the issue. > > Fix sm8550 (and likely other qcom SoCs) by skipping the parking part of > clk_rcg2_shared_init(). Make that the default init clk_op for shared > RCGs, but keep the part where we cache the config register as that's > still necessary to figure out the true parent of the clk is. Introduce > another set of clk_ops 'clk_rcg2_shared_init_park' that does what > clk_rcg2_shared_init() was doing and use that for the display clks on > sc7180. This fixes the sm8550 problem and limits the "park upon > registration" logic to the display clks that need it. > > Fixes: 01a0a6cc8cfd ("clk: qcom: Park shared RCGs upon registration") > Cc: Konrad Dybcio <konradybcio@xxxxxxxxxx> > Cc: Bjorn Andersson <andersson@xxxxxxxxxx> > Cc: Taniya Das <quic_tdas@xxxxxxxxxxx> > Cc: Neil Armstrong <neil.armstrong@xxxxxxxxxx> > Reported-by: Amit Pundir <amit.pundir@xxxxxxxxxx> > Closes: https://lore.kernel.org/CAMi1Hd1KQBE4kKUdAn8E5FV+BiKzuv+8FoyWQrrTHPDoYTuhgA@xxxxxxxxxxxxxx > Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> I can confirm that this fixes the earlycon issue on x1e80100 that Bryan reported here: https://lore.kernel.org/lkml/20240823-x1e80100-clk-fix-v1-1-0b1b4f5a96e8@xxxxxxxxxx/ Perhaps you can drop the "dispcc-sc7180:" prefix from Subject when applying (or resending) since this fixes a regression on multiple Qualcomm SoCs. For example, use something like: clk: qcom: Only park sc7180 display clks at init Tested-by: Johan Hovold <johan+linaro@xxxxxxxxxx> Johan