On Mon, Jun 17, 2019 at 7:45 PM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote: > > On Fri, Jun 14, 2019 at 10:13:20PM +0530, Jagan Teki wrote: > > TCON TOP have clock gates for TV0, TV1, dsi and right > > now these are register during bind call. > > > > Of which, dsi clock gate would required during DPHY probe > > but same can miss to get since tcon top is not bound at > > that time. > > > > To solve, this circular dependency move the clock gate > > registration from bind to probe so-that DPHY can get the > > dsi gate clock on time. > > It's not really clear to me what the circular dependency is? > > if you have a chain that is: > > tcon-top +-> DSI > +-> D-PHY > > There's no loop, right? Looking at how the DTSI patch structures things (without going into whether it is correct or accurate): The D-PHY is not part of the component graph. However it requests the DSI gate clock from the TCON-TOP. The TCON-TOP driver, in its current form, only registers the clocks it provides at component bind time. Thus the D-PHY can't successfully probe until the TCON-TOP has been bound. The DSI interface requires the D-PHY to bind. It will return -EPROBE_DEFER if it cannot request it. This in turn goes into the error path of component_bind_all, which unbinds all previous components. So it's actually D-PHY -> TCON-TOP -> DSI ^ | |-------------------- I've not checked, but I suspect there's no possibility of having other drivers probe (to deal with deferred probing) within component_bind_all. Otherwise we shouldn't run into this weird circular dependency issue. So the question for Jagan is that is this indeed the case? Does this patch solve it, or at least work around it. ChenYu _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel