Re: [PATCH v3 9/9] drm/panel: innolux-p079zca: Don't use a table for initting panels

From: Linus Walleij
Date: Mon May 06 2024 - 02:45:36 EST


On Wed, May 1, 2024 at 5:43 PM Douglas Anderson <dianders@xxxxxxxxxxxx> wrote:

> Consensus on the mailing lists is that panels shouldn't use a table of
> init commands but should instead use init functions. We'll use the
> same concepts as the recently introduced
> mipi_dsi_generic_write_seq_multi() to make this clean/easy and also
> not bloat the driver too much. Measuring before/after this change:
>
> $ scripts/bloat-o-meter \
> .../before/panel-innolux-p079zca.ko \
> .../after/panel-innolux-p079zca.ko
> add/remove: 3/2 grow/shrink: 0/1 up/down: 2356/-1944 (412)
> Function old new delta
> innolux_p097pfg_init - 1772 +1772
> innolux_p097pfg_init.d - 480 +480
> innolux_panel_write_multi - 104 +104
> innolux_panel_prepare 412 308 -104
> .compoundliteral 480 - -480
> innolux_p097pfg_init_cmds 1360 - -1360
> Total: Before=5802, After=6214, chg +7.10%
>
> Note that, unlike some other drivers, we actually make this panel
> driver _bigger_ by using the new functions. This is because the
> innolux-p079zca panel driver didn't have as complex of a table and
> thus the old table was more efficient than the code. The bloat is
> still not giant (only 412 bytes).
>
> Also note that we can't direclty use
> mipi_dsi_generic_write_seq_multi() here because we need to deal with
> the crazy "nop" that this driver sends after all commands. This means
> that we have to write code that is "inspired" by the new macros.
>
> Since we're touching all the tables, let's also convert hex numbers to
> lower case as per kernel conventions.
>
> Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx>

With the mentioned bugfix:
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>

Yours,
Linus Walleij