Message ID | 20210624182612.177969-2-ezequiel@collabora.com |
---|---|
State | New |
Headers | show |
Series | [01/12] drm/panel: kd35t133: Add panel orientation support | expand |
Am Donnerstag, 24. Juni 2021, 20:26:01 CEST schrieb Ezequiel Garcia: > Parse the device tree rotation specifier, and set a DRM > connector orientation property. The property can then be read > by compositors to apply hardware plane rotation or a GPU transform. > > Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> similar patch already applied for 5.14: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/gpu/drm/panel/panel-elida-kd35t133.c?id=610d9c311b1387f8c4ac602fee1f2a1cb0508707 > --- > 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 fe5ac3ef9018..5987d28c874c 100644 > --- a/drivers/gpu/drm/panel/panel-elida-kd35t133.c > +++ b/drivers/gpu/drm/panel/panel-elida-kd35t133.c > @@ -39,6 +39,7 @@ > struct kd35t133 { > struct device *dev; > struct drm_panel panel; > + enum drm_panel_orientation orientation; > struct gpio_desc *reset_gpio; > struct regulator *vdd; > struct regulator *iovcc; > @@ -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) { > + 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; >
diff --git a/drivers/gpu/drm/panel/panel-elida-kd35t133.c b/drivers/gpu/drm/panel/panel-elida-kd35t133.c index fe5ac3ef9018..5987d28c874c 100644 --- a/drivers/gpu/drm/panel/panel-elida-kd35t133.c +++ b/drivers/gpu/drm/panel/panel-elida-kd35t133.c @@ -39,6 +39,7 @@ struct kd35t133 { struct device *dev; struct drm_panel panel; + enum drm_panel_orientation orientation; struct gpio_desc *reset_gpio; struct regulator *vdd; struct regulator *iovcc; @@ -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) { + 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;
Parse the device tree rotation specifier, and set a DRM connector orientation property. The property can then be read by compositors to apply hardware plane rotation or a GPU transform. Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> --- drivers/gpu/drm/panel/panel-elida-kd35t133.c | 8 ++++++++ 1 file changed, 8 insertions(+)