пт, 6 лист. 2026 р. о 15:19 Thierry Reding <[email protected]> пише:
>
> On Thu, Nov 05, 2026 at 04:05:02PM +0200, Svyatoslav Ryhel wrote:
> > Switch from a generic platform driver to a dedicated MIPI DBI driver.
> >
> > Signed-off-by: Svyatoslav Ryhel <[email protected]>
> > ---
> >  .../drm/panel/panel-hitachi-tx10d07vm0baa.c   | 167 ++++++++----------
> >  1 file changed, 78 insertions(+), 89 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/panel/panel-hitachi-tx10d07vm0baa.c 
> > b/drivers/gpu/drm/panel/panel-hitachi-tx10d07vm0baa.c
> > index 83c2af1be9755..d5d7ba2096608 100644
> > --- a/drivers/gpu/drm/panel/panel-hitachi-tx10d07vm0baa.c
> > +++ b/drivers/gpu/drm/panel/panel-hitachi-tx10d07vm0baa.c
> > @@ -14,6 +14,7 @@
> >  #include <video/mipi_display.h>
> >
> >  #include <drm/drm_mipi_dbi.h>
> > +#include <drm/drm_mipi_dbi_bus.h>
> >  #include <drm/drm_modes.h>
> >  #include <drm/drm_of.h>
> >  #include <drm/drm_panel.h>
> > @@ -25,7 +26,7 @@ static const struct regulator_bulk_data 
> > hitachi_tx10d07vm0baa_supplies[] = {
> >
> >  struct hitachi_tx10d07vm0baa {
> >       struct drm_panel panel;
> > -     struct mipi_dbi *dbi;
> > +     struct mipi_dbi_device *dbi;
>
> It's somewhat difficult to exactly see the difference between mipi_dbi
> and mipi_dbi_device. Maybe that should be explained better in the cover
> letter of patch 1? Or the documentation added in patch1.
>

It is already documented in detail in the drm_mipi_dbi.h

> >
> >       struct regulator_bulk_data *supplies;
> >       struct gpio_desc *reset_gpio;
> > @@ -36,13 +37,12 @@ static inline struct hitachi_tx10d07vm0baa 
> > *to_hitachi_tx10d07vm0baa(struct drm_
> >       return container_of(panel, struct hitachi_tx10d07vm0baa, panel);
> >  }
> >
> > -#define panel_dbi_command(priv, cmd, seq...) \
> > +#define panel_dbi_command(dbidev, cmd, seq...) \
> >  ({ \
> >       const u8 d[] = { seq }; \
> > -     struct drm_panel *panel = &(priv)->panel; \
> > -     struct device *dev = panel->dev; \
> > +     struct device *dev = &(dbidev)->dev; \
> >       int ret; \
> > -     ret = mipi_dbi_command_stackbuf((priv)->dbi, cmd, d, ARRAY_SIZE(d)); \
> > +     ret = mipi_dbi_command_stackbuf((dbidev)->dbi, cmd, d, 
> > ARRAY_SIZE(d)); \
> >       if (ret) \
> >               dev_err_ratelimited(dev, "error %d when sending command 
> > %#02x\n", ret, cmd); \
> >       ret; \
> > @@ -54,10 +54,6 @@ static int hitachi_tx10d07vm0baa_prepare(struct 
> > drm_panel *panel)
> >       struct device *dev = panel->dev;
> >       int ret;
> >
> > -     priv->dbi = dev_get_drvdata(dev->parent);
> > -     if (!priv->dbi)
> > -             return -ENODEV;
> > -
> >       gpiod_set_value_cansleep(priv->reset_gpio, 1);
> >
> >       ret = 
> > regulator_bulk_enable(ARRAY_SIZE(hitachi_tx10d07vm0baa_supplies), 
> > priv->supplies);
> > @@ -79,123 +75,116 @@ static int hitachi_tx10d07vm0baa_enable(struct 
> > drm_panel *panel)
> >  {
> >       struct hitachi_tx10d07vm0baa *priv = to_hitachi_tx10d07vm0baa(panel);
> >
> > -     panel_dbi_command(priv, MIPI_DCS_SET_PARTIAL_ROWS, 0x00, 0x00, 0x03, 
> > 0x1f);
> > -     panel_dbi_command(priv, MIPI_DCS_SET_SCROLL_AREA, 0x00, 0x00, 0x03, 
> > 0x20,
> > +     panel_dbi_command(priv->dbi, MIPI_DCS_SET_PARTIAL_ROWS, 0x00, 0x00, 
> > 0x03, 0x1f);
> > +     panel_dbi_command(priv->dbi, MIPI_DCS_SET_SCROLL_AREA, 0x00, 0x00, 
> > 0x03, 0x20,
> >                         0x00, 0x00);
>
> The majority of the changes in this file are s/priv/priv->dbi/, so maybe
> just make it so that priv = priv->db and keep the changes to a minimum?
>

I will consider this.

> Thierry

Reply via email to