Message ID | 20231204185719.569021-5-macroalpha82@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | rockchip: Add Powkiddy X55 | expand |
On 04/12/2023 19:57, Chris Morgan wrote: > From: Chris Morgan <macromorgan@hotmail.com> > > Add support for setting the rotation property for the Himax HX8394 > panel. > > Signed-off-by: Chris Morgan <macromorgan@hotmail.com> > --- > drivers/gpu/drm/panel/panel-himax-hx8394.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-himax-hx8394.c b/drivers/gpu/drm/panel/panel-himax-hx8394.c > index d8e590d5e1da..b68ea09f4725 100644 > --- a/drivers/gpu/drm/panel/panel-himax-hx8394.c > +++ b/drivers/gpu/drm/panel/panel-himax-hx8394.c > @@ -68,6 +68,7 @@ struct hx8394 { > struct gpio_desc *reset_gpio; > struct regulator *vcc; > struct regulator *iovcc; > + enum drm_panel_orientation orientation; > > const struct hx8394_panel_desc *desc; > }; > @@ -324,12 +325,20 @@ static int hx8394_get_modes(struct drm_panel *panel, > return 1; > } > > +static enum drm_panel_orientation hx8394_get_orientation(struct drm_panel *panel) > +{ > + struct hx8394 *ctx = panel_to_hx8394(panel); > + > + return ctx->orientation; > +} > + > static const struct drm_panel_funcs hx8394_drm_funcs = { > .disable = hx8394_disable, > .unprepare = hx8394_unprepare, > .prepare = hx8394_prepare, > .enable = hx8394_enable, > .get_modes = hx8394_get_modes, > + .get_orientation = hx8394_get_orientation, > }; > > static int hx8394_probe(struct mipi_dsi_device *dsi) > @@ -347,6 +356,12 @@ static int hx8394_probe(struct mipi_dsi_device *dsi) > return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), > "Failed to get reset gpio\n"); > > + 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; Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
diff --git a/drivers/gpu/drm/panel/panel-himax-hx8394.c b/drivers/gpu/drm/panel/panel-himax-hx8394.c index d8e590d5e1da..b68ea09f4725 100644 --- a/drivers/gpu/drm/panel/panel-himax-hx8394.c +++ b/drivers/gpu/drm/panel/panel-himax-hx8394.c @@ -68,6 +68,7 @@ struct hx8394 { struct gpio_desc *reset_gpio; struct regulator *vcc; struct regulator *iovcc; + enum drm_panel_orientation orientation; const struct hx8394_panel_desc *desc; }; @@ -324,12 +325,20 @@ static int hx8394_get_modes(struct drm_panel *panel, return 1; } +static enum drm_panel_orientation hx8394_get_orientation(struct drm_panel *panel) +{ + struct hx8394 *ctx = panel_to_hx8394(panel); + + return ctx->orientation; +} + static const struct drm_panel_funcs hx8394_drm_funcs = { .disable = hx8394_disable, .unprepare = hx8394_unprepare, .prepare = hx8394_prepare, .enable = hx8394_enable, .get_modes = hx8394_get_modes, + .get_orientation = hx8394_get_orientation, }; static int hx8394_probe(struct mipi_dsi_device *dsi) @@ -347,6 +356,12 @@ static int hx8394_probe(struct mipi_dsi_device *dsi) return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio), "Failed to get reset gpio\n"); + 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;