On Mon, 21 Oct 2024 at 20:07, Aradhya Bhatia <aradhya.bhatia@xxxxxxxxx> wrote: > > Hi Dmitry, > > Thank you for reviewing the patches! > > On 10/20/24 17:27, Dmitry Baryshkov wrote: > > On Sun, Oct 20, 2024 at 01:35:30AM +0530, Aradhya Bhatia wrote: > >> From: Aradhya Bhatia <a-bhatia1@xxxxxx> > >> > >> The cdns-dsi controller requires that it be turned on completely before > >> the input DPI's source has begun streaming[0]. Not having that, allows > >> for a small window before cdns-dsi enable and after cdns-dsi disable > >> where the previous entity (in this case tidss's videoport) to continue > >> streaming DPI video signals. This small window where cdns-dsi is > >> disabled but is still receiving signals causes the input FIFO of > >> cdns-dsi to get corrupted. This causes the colors to shift on the output > >> display. The colors can either shift by one color component (R->G, G->B, > >> B->R), or by two color components (R->B, G->R, B->G). > >> > >> Since tidss's videoport starts streaming via crtc enable hooks, we need > >> cdns-dsi to be up and running before that. Now that the bridges are > >> pre_enabled before crtc is enabled, and post_disabled after crtc is > >> disabled, use the pre_enable and post_disable hooks to get cdns-dsi > >> ready and running before the tidss videoport to get pass the color shift > >> issues. > >> > > > > Not being an expert in the TI DSS driver, would it be more proper to > > handle that in the TI driver instead? I mean, sending out DPI signals > > isn't a part of the CRTC setup, it's a job of the encoder. > > I haven't done a feasibility analysis of moving the CRTC bits of TIDSS > into the encoder, but even if it were possible, it wouldn't solve the > issue. > > The bridge_enable() sequence gets called _after_ the encoder has been > enabled - causing the TIDSS's DPI (enabled from encoder) to still be > up and running before the DSI has had a chance to be ready. But then you can move CDSI setup to pre_enable, so that all setup happens before encoder's (= DPI) being enabled. -- With best wishes Dmitry