Hi, On Wed, Oct 30, 2024 at 12:24 AM Tejas Vipin <tejasvipin76@xxxxxxxxx> wrote: > > On 10/29/24 12:24 AM, Doug Anderson wrote: > > Hi, > > > > On Fri, Oct 25, 2024 at 9:00 PM Tejas Vipin <tejasvipin76@xxxxxxxxx> wrote: > >> > >> @@ -418,79 +398,42 @@ static const struct ltk050h3146w_desc ltk050h3146w_data = { > >> MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET, > >> }; > >> > >> -static int ltk050h3146w_a2_select_page(struct ltk050h3146w *ctx, int page) > >> +static void ltk050h3146w_a2_select_page(struct mipi_dsi_multi_context *dsi_ctx, int page) > >> { > >> - struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); > >> - u8 d[3] = { 0x98, 0x81, page }; > >> + u8 d[4] = { 0xff, 0x98, 0x81, page }; > >> > >> - return mipi_dsi_dcs_write(dsi, 0xff, d, ARRAY_SIZE(d)); > >> + mipi_dsi_dcs_write_buffer_multi(dsi_ctx, d, ARRAY_SIZE(d)); > > > > FWIW: the above might be slightly better as: > > > > mipi_dsi_dcs_write_seq_multi(dsi_ctx, 0xff, 0x98, 0x81, page); > > > > That would make it more documenting that the 0xff is the "cmd", has > > fewer lines of code, and also gets the array marked as "static const" > > which might make the compiler slightly more efficient. ;-) > > > > Not really a huge deal, though. > > > > I did try this initially, but got an error because of page not being a > compile time constant. Not sure how I should handle this. Ha, that makes sense! It can't be "static const" because that means that there's one storage location that's never changing and that's just not true. I tried to see if there was some way to make the mipi_dsi_dcs_write_seq_multi() smarter and have it detect if everything is constant but I couldn't find any way to do that. The __builtin_constant_p() trick doesn't seem to work with more than one number. So I think what you have is fine then. If this becomes common I guess we can make an alternative version of mipi_dsi_dcs_write_seq_multi() that just uses "const" instead of "static const". I'll plan to apply your patch next week unless someone beats me to it. -Doug