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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, May 1, 2024 at 8:43 AM Douglas Anderson <dianders@xxxxxxxxxxxx> wrote:
>
> @@ -132,33 +125,9 @@ static int innolux_panel_prepare(struct drm_panel *panel)
>         /* p079zca: t4, p097pfg: t5 */
>         usleep_range(20000, 21000);
>
> -       if (innolux->desc->init_cmds) {
> -               const struct panel_init_cmd *cmds =
> -                                       innolux->desc->init_cmds;
> -               unsigned int i;
> -
> -               for (i = 0; cmds[i].len != 0; i++) {
> -                       const struct panel_init_cmd *cmd = &cmds[i];
> -
> -                       err = mipi_dsi_generic_write(innolux->link, cmd->data,
> -                                                    cmd->len);
> -                       if (err < 0) {
> -                               dev_err(panel->dev, "failed to write command %u\n", i);
> -                               goto poweroff;
> -                       }
> -
> -                       /*
> -                        * Included by random guessing, because without this
> -                        * (or at least, some delay), the panel sometimes
> -                        * didn't appear to pick up the command sequence.
> -                        */
> -                       err = mipi_dsi_dcs_nop(innolux->link);
> -                       if (err < 0) {
> -                               dev_err(panel->dev, "failed to send DCS nop: %d\n", err);
> -                               goto poweroff;
> -                       }
> -               }
> -       }
> +       err = innolux->desc->init(innolux);
> +       if (err < 0)
> +               goto poweroff;

FWIW, I happened to notice a bug in the above by code inspection. The
old code checked "if (innolux->desc->init_cmds)" and thus handled
init_cmds being NULL. The new code doesn't handle the init function
being NULL. One of the two panels in this file (which seems to have no
users in mainline) doesn't specify an init sequence.

I'll spin this next week with the extra "if" test.

-Doug




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux