On Wed, May 1, 2024 at 5:43 PM Douglas Anderson <diand...@chromium.org> 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 <diand...@chromium.org>

With the mentioned bugfix:
Reviewed-by: Linus Walleij <linus.wall...@linaro.org>

Yours,
Linus Walleij

Reply via email to