On Thu, Mar 06, 2025 at 11:08:18PM +0530, Tejas Vipin wrote:
> 
> 
> On 3/6/25 10:58 PM, Doug Anderson wrote:
> > Hi,
> > 
> > On Thu, Mar 6, 2025 at 6:05 AM <neil.armstr...@linaro.org> wrote:
> >>
> >> On 06/03/2025 14:43, Tejas Vipin wrote:
> >>> Changes the novatek-nt36523 panel to use multi style functions for
> >>> improved error handling.
> >>>
> >>> Signed-off-by: Tejas Vipin <tejasvipi...@gmail.com>
> >>> ---
> >>>   drivers/gpu/drm/panel/panel-novatek-nt36523.c | 1683 ++++++++---------
> >>>   1 file changed, 823 insertions(+), 860 deletions(-)
> >>>
> >>> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36523.c 
> >>> b/drivers/gpu/drm/panel/panel-novatek-nt36523.c
> >>> index 04f1d2676c78..922a225f6258 100644
> >>> --- a/drivers/gpu/drm/panel/panel-novatek-nt36523.c
> >>> +++ b/drivers/gpu/drm/panel/panel-novatek-nt36523.c
> >>> @@ -23,10 +23,12 @@
> >>>
> >>>   #define DSI_NUM_MIN 1
> >>>
> >>> -#define mipi_dsi_dual_dcs_write_seq(dsi0, dsi1, cmd, seq...)        \
> >>> -             do {                                                 \
> >>> -                     mipi_dsi_dcs_write_seq(dsi0, cmd, seq);      \
> >>> -                     mipi_dsi_dcs_write_seq(dsi1, cmd, seq);      \
> >>> +#define mipi_dsi_dual_dcs_write_seq_multi(dsi_ctx0, dsi_ctx1, cmd, 
> >>> seq...)      \
> >>> +             do {                                                        
> >>>     \
> >>> +                     mipi_dsi_dcs_write_seq_multi(&dsi_ctx0, cmd, seq);  
> >>>     \
> >>> +                     dsi_ctx1.accum_err = dsi_ctx0.accum_err;            
> >>>     \
> >>> +                     mipi_dsi_dcs_write_seq_multi(&dsi_ctx1, cmd, seq);  
> >>>     \
> >>> +                     dsi_ctx0.accum_err = dsi_ctx1.accum_err;            
> >>>     \
> >>
> >> Just thinking out loud, but can't we do :
> >>
> >> struct mipi_dsi_multi_context dsi_ctx = { .dsi = NULL };
> >>
> >> #define mipi_dsi_dual_dcs_write_seq_multi(dsi_ctx, dsi0, dsi1, cmd, 
> >> seq...)      \
> >>                 do {
> >>                         dsi_ctx.dsi = dsi0;                                
> >>      \
> >>                         mipi_dsi_dcs_write_seq_multi(&dsi_ctx, cmd, seq);  
> >>      \
> >>                         dsi_ctx.dsi = dsi1;                                
> >>      \
> >>                         mipi_dsi_dcs_write_seq_multi(&dsi_ctx, cmd, seq);  
> >>      \
> >>
> >> ?
> >>
> >> So we have a single accum_err.
> > 
> > Even though the code you used was what I suggested in IRC, I like
> > Neil's suggestion better here. What do you think?
> 
> I like Dmitry's suggestion [1]. If we went ahead with this we'd also
> only need to equate the accum_err for the few msleep calls.

I think we will have more and more double-DSI panels. So I'd suggest
to add msleep wrapper which gets two DSI contexts.

> Since it
> does change the behavior, I'd like to hear another opinion on it before
> I go ahead with it.
> 
> [1]: 
> https://lore.kernel.org/all/p2esqngynwfrshz5rqfnmx6qgwf4dclpkb3mphwg2vavx2jbcg@clqoy5tjh7bb/
> 
> > 
> > Other than that, it looks good to me.
> > 
> > -Doug
> 
> -- 
> Tejas Vipin

-- 
With best wishes
Dmitry

Reply via email to