Hi Jitao.

Driver looks good, one detail.

> +
> +struct panel_desc {
> +     const struct drm_display_mode *modes;
> +     unsigned int bpc;
> +
> +     /**
> +      * @width: width (in millimeters) of the panel's active display area
> +      * @height: height (in millimeters) of the panel's active display area
> +      */
> +     struct {
> +             unsigned int width;
> +             unsigned int height;
> +     } size;
Maybe name these width_mm and height_mm.
Then they have the same name as where they are copied to,
and it is explicit documented that it is in mm.

The extra indirection with a struct is not needed in display_mode,
maybe drop it here too?
> +
> +     unsigned long mode_flags;
> +     enum mipi_dsi_pixel_format format;
> +     const struct panel_init_cmd *init_cmds;
> +     unsigned int lanes;
> +};
> +
...
> +static int boe_panel_unprepare(struct drm_panel *panel)
> +{
> +     struct boe_panel *boe = to_boe_panel(panel);
> +     int ret;
> +
> +     if (!boe->prepared)
> +             return 0;
> +
> +     ret = boe_panel_off(boe);
> +     if (ret < 0) {
> +             dev_err(panel->dev, "failed to set panel off: %d\n", ret);
> +             return ret;
> +     }
> +
> +     msleep(150);
> +     if (boe->enable_gpio)
> +             gpiod_set_value(boe->enable_gpio, 0);
Everywhere boe->enable_gpio is used it is checked like above.
Bot boe->enable_gpio in a mandatory property so it must be present.
The driver error out in probe if not present, so this check seems
redundandt?

Everything else looks really good.

With the above fixed / considered:
Reviewed-by: Sam Ravnborg <[email protected]>

        Sam
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to