Quoting Amit Nischal (2018-06-06 04:41:46) > To turn on the gpu_gx_gdsc, there is a hardware requirement to > turn on the root clock (GFX3D RCG) first which would be the turn > on signal for the gdsc along with the SW_COLLAPSE. As per the > current implementation of clk_rcg2_shared_ops, it clears the > root_enable bit in the enable() and set_rate() clock ops. But due > to the above said requirement for GFX3D shared RCG, root_enable bit > would be already set by gdsc driver and rcg2_shared_ops should not clear > the root unless the disable is called. > It sounds like the GDSC enable is ANDed with the RCG's root enable bit? Does the RCG need to be clocking for the GDSC to actually turn on? Or is it purely that the enable bit is logically combined that way so that if the RCG is parented to a PLL that's off the GDSC will still turn on? > Add support for the same by reusing the existing clk_rcg2_shared_ops > and deriving "clk_rcg2_gfx3d_ops" clk_ops for GFX3D clock to > take care of the root set/clear requirement. Anyway, this patch will probably significantly change given that the RCG is a glorified div-2 that muxes between a safe CXO speed and a configurable PLL frequency. A lot of the logic can probably just be hardcoded then. > > Signed-off-by: Amit Nischal <anischal@xxxxxxxxxxxxxx> Patch looks sane. -- To unsubscribe from this list: send the line "unsubscribe linux-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html