diff mbox series

[1/2] drm/panel: add rotation support for Elida KD35T133 panels

Message ID SN6PR06MB53424F1D31DCA0F038842EB7A58B9@SN6PR06MB5342.namprd06.prod.outlook.com (mailing list archive)
State Superseded, archived
Headers show
Series [1/2] drm/panel: add rotation support for Elida KD35T133 panels | expand

Commit Message

Chris Morgan Feb. 12, 2021, 3:50 p.m. UTC
Update the panel to allow setting the rotation value in device tree.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
---
 drivers/gpu/drm/panel/panel-elida-kd35t133.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Ezequiel Garcia Feb. 13, 2021, 1:53 p.m. UTC | #1
Hi Chris,

I'm hijacking this discussion a bit.

I recently tried to boot maline on my Odroid GOA, which I managed to do,
except the display wasn't displaying anything :-)

Everything looks good on a quick look, the Inno PHY driver is here,
and there's a DRM card registered with the right mode 320x240 and
connected status (which I suppose doesn't mean much in this case).
Also, the backlight is on.

Looks like this is working for you, so I was wondering if maybe
this would ring a bell, or perhaps you're aware of any patches
we are missing in v5.11-rc7 (which is what I'm basing on).
Or maybe I'm missing some config?...

Any ideas would be welcome!

Ezequiel

On Fri, 12 Feb 2021 at 12:51, Chris Morgan <macromorgan@hotmail.com> wrote:
>
> Update the panel to allow setting the rotation value in device tree.
>
> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> ---
>  drivers/gpu/drm/panel/panel-elida-kd35t133.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/panel/panel-elida-kd35t133.c b/drivers/gpu/drm/panel/panel-elida-kd35t133.c
> index bc36aa3c1123..d8534406d1ef 100644
> --- a/drivers/gpu/drm/panel/panel-elida-kd35t133.c
> +++ b/drivers/gpu/drm/panel/panel-elida-kd35t133.c
> @@ -42,6 +42,7 @@ struct kd35t133 {
>         struct gpio_desc *reset_gpio;
>         struct regulator *vdd;
>         struct regulator *iovcc;
> +       enum drm_panel_orientation orientation;
>         bool prepared;
>  };
>
> @@ -216,6 +217,7 @@ static int kd35t133_get_modes(struct drm_panel *panel,
>         connector->display_info.width_mm = mode->width_mm;
>         connector->display_info.height_mm = mode->height_mm;
>         drm_mode_probed_add(connector, mode);
> +       drm_connector_set_panel_orientation(connector, ctx->orientation);
>
>         return 1;
>  }
> @@ -258,6 +260,12 @@ static int kd35t133_probe(struct mipi_dsi_device *dsi)
>                 return ret;
>         }
>
> +       ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
> +       if (ret < 0) {
> +               dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret);
> +               return ret;
> +       }
> +
>         mipi_dsi_set_drvdata(dsi, ctx);
>
>         ctx->dev = dev;
> --
> 2.25.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Ezequiel Garcia Feb. 13, 2021, 2:06 p.m. UTC | #2
(Now with Heiko's address fixed)

On Sat, 13 Feb 2021 at 10:53, Ezequiel Garcia
<ezequiel@vanguardiasur.com.ar> wrote:
>
> Hi Chris,
>
> I'm hijacking this discussion a bit.
>
> I recently tried to boot maline on my Odroid GOA, which I managed to do,
> except the display wasn't displaying anything :-)
>
> Everything looks good on a quick look, the Inno PHY driver is here,
> and there's a DRM card registered with the right mode 320x240 and
> connected status (which I suppose doesn't mean much in this case).
> Also, the backlight is on.
>
> Looks like this is working for you, so I was wondering if maybe
> this would ring a bell, or perhaps you're aware of any patches
> we are missing in v5.11-rc7 (which is what I'm basing on).
> Or maybe I'm missing some config?...
>
> Any ideas would be welcome!
>
> Ezequiel
>
> On Fri, 12 Feb 2021 at 12:51, Chris Morgan <macromorgan@hotmail.com> wrote:
> >
> > Update the panel to allow setting the rotation value in device tree.
> >
> > Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> > ---
> >  drivers/gpu/drm/panel/panel-elida-kd35t133.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/panel/panel-elida-kd35t133.c b/drivers/gpu/drm/panel/panel-elida-kd35t133.c
> > index bc36aa3c1123..d8534406d1ef 100644
> > --- a/drivers/gpu/drm/panel/panel-elida-kd35t133.c
> > +++ b/drivers/gpu/drm/panel/panel-elida-kd35t133.c
> > @@ -42,6 +42,7 @@ struct kd35t133 {
> >         struct gpio_desc *reset_gpio;
> >         struct regulator *vdd;
> >         struct regulator *iovcc;
> > +       enum drm_panel_orientation orientation;
> >         bool prepared;
> >  };
> >
> > @@ -216,6 +217,7 @@ static int kd35t133_get_modes(struct drm_panel *panel,
> >         connector->display_info.width_mm = mode->width_mm;
> >         connector->display_info.height_mm = mode->height_mm;
> >         drm_mode_probed_add(connector, mode);
> > +       drm_connector_set_panel_orientation(connector, ctx->orientation);
> >
> >         return 1;
> >  }
> > @@ -258,6 +260,12 @@ static int kd35t133_probe(struct mipi_dsi_device *dsi)
> >                 return ret;
> >         }
> >
> > +       ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
> > +       if (ret < 0) {
> > +               dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret);
> > +               return ret;
> > +       }
> > +
> >         mipi_dsi_set_drvdata(dsi, ctx);
> >
> >         ctx->dev = dev;
> > --
> > 2.25.1
> >
> > _______________________________________________
> > dri-devel mailing list
> > dri-devel@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/panel/panel-elida-kd35t133.c b/drivers/gpu/drm/panel/panel-elida-kd35t133.c
index bc36aa3c1123..d8534406d1ef 100644
--- a/drivers/gpu/drm/panel/panel-elida-kd35t133.c
+++ b/drivers/gpu/drm/panel/panel-elida-kd35t133.c
@@ -42,6 +42,7 @@  struct kd35t133 {
 	struct gpio_desc *reset_gpio;
 	struct regulator *vdd;
 	struct regulator *iovcc;
+	enum drm_panel_orientation orientation;
 	bool prepared;
 };
 
@@ -216,6 +217,7 @@  static int kd35t133_get_modes(struct drm_panel *panel,
 	connector->display_info.width_mm = mode->width_mm;
 	connector->display_info.height_mm = mode->height_mm;
 	drm_mode_probed_add(connector, mode);
+	drm_connector_set_panel_orientation(connector, ctx->orientation);
 
 	return 1;
 }
@@ -258,6 +260,12 @@  static int kd35t133_probe(struct mipi_dsi_device *dsi)
 		return ret;
 	}
 
+	ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
+	if (ret < 0) {
+		dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret);
+		return ret;
+	}
+
 	mipi_dsi_set_drvdata(dsi, ctx);
 
 	ctx->dev = dev;