[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ca083f58-eb6c-4cb3-85f0-b51c7509fe96@linaro.org>
Date: Thu, 31 Oct 2024 10:34:44 +0100
From: neil.armstrong@...aro.org
To: Doug Anderson <dianders@...omium.org>,
Tejas Vipin <tejasvipin76@...il.com>
Cc: maarten.lankhorst@...ux.intel.com, mripard@...nel.org,
tzimmermann@...e.de, airlied@...il.com, simona@...ll.ch,
quic_jesszhan@...cinc.com, dri-devel@...ts.freedesktop.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] drm/panel: leadtek-ltk050h3146w: transition to mipi_dsi
wrapped functions
On 30/10/2024 18:50, Doug Anderson wrote:
> Hi,
>
> On Wed, Oct 30, 2024 at 12:24 AM Tejas Vipin <tejasvipin76@...il.com> wrote:
>>
>> On 10/29/24 12:24 AM, Doug Anderson wrote:
>>> Hi,
>>>
>>> On Fri, Oct 25, 2024 at 9:00 PM Tejas Vipin <tejasvipin76@...il.com> 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.
I'll apply it today so it can go in v6.13 :-)
Neil
>
> -Doug
Powered by blists - more mailing lists