Message ID | 20230412-topic-lenovopanel-v1-4-00b25df46824@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Lenovo Tab P11 panel | expand |
On Wed, Apr 12, 2023 at 09:46:01PM +0200, Konrad Dybcio wrote: > Some bright vendors mount their display panels upside down. Add the > required pieces to allow for accounting for that. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Reviewed-by: Jianhua Lu <lujianhua000@gmail.com> > --- > drivers/gpu/drm/panel/panel-novatek-nt36523.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36523.c b/drivers/gpu/drm/panel/panel-novatek-nt36523.c > index 3c81ec014eef..db4b4af13ec1 100644 > --- a/drivers/gpu/drm/panel/panel-novatek-nt36523.c > +++ b/drivers/gpu/drm/panel/panel-novatek-nt36523.c > @@ -31,6 +31,7 @@ struct panel_info { > struct drm_panel panel; > struct mipi_dsi_device *dsi[2]; > const struct panel_desc *desc; > + enum drm_panel_orientation orientation; > > struct gpio_desc *reset_gpio; > struct backlight_device *backlight; > @@ -674,11 +675,19 @@ static int nt36523_get_modes(struct drm_panel *panel, > return pinfo->desc->num_modes; > } > > +static enum drm_panel_orientation nt36523_get_orientation(struct drm_panel *panel) > +{ > + struct panel_info *pinfo = to_panel_info(panel); > + > + return pinfo->orientation; > +} > + > static const struct drm_panel_funcs nt36523_panel_funcs = { > .disable = nt36523_disable, > .prepare = nt36523_prepare, > .unprepare = nt36523_unprepare, > .get_modes = nt36523_get_modes, > + .get_orientation = nt36523_get_orientation, > }; > > static int nt36523_bl_update_status(struct backlight_device *bl) > @@ -784,6 +793,12 @@ static int nt36523_probe(struct mipi_dsi_device *dsi) > mipi_dsi_set_drvdata(dsi, pinfo); > drm_panel_init(&pinfo->panel, dev, &nt36523_panel_funcs, DRM_MODE_CONNECTOR_DSI); > > + ret = of_drm_get_panel_orientation(dev->of_node, &pinfo->orientation); > + if (ret < 0) { > + dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret); > + return ret; > + } > + > if (pinfo->desc->has_dcs_backlight) { > pinfo->panel.backlight = nt36523_create_backlight(dsi); > if (IS_ERR(pinfo->panel.backlight)) > > -- > 2.40.0 >
On Wed, Apr 12, 2023 at 9:46 PM Konrad Dybcio <konrad.dybcio@linaro.org> wrote: > Some bright vendors mount their display panels upside down. Add the > required pieces to allow for accounting for that. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
diff --git a/drivers/gpu/drm/panel/panel-novatek-nt36523.c b/drivers/gpu/drm/panel/panel-novatek-nt36523.c index 3c81ec014eef..db4b4af13ec1 100644 --- a/drivers/gpu/drm/panel/panel-novatek-nt36523.c +++ b/drivers/gpu/drm/panel/panel-novatek-nt36523.c @@ -31,6 +31,7 @@ struct panel_info { struct drm_panel panel; struct mipi_dsi_device *dsi[2]; const struct panel_desc *desc; + enum drm_panel_orientation orientation; struct gpio_desc *reset_gpio; struct backlight_device *backlight; @@ -674,11 +675,19 @@ static int nt36523_get_modes(struct drm_panel *panel, return pinfo->desc->num_modes; } +static enum drm_panel_orientation nt36523_get_orientation(struct drm_panel *panel) +{ + struct panel_info *pinfo = to_panel_info(panel); + + return pinfo->orientation; +} + static const struct drm_panel_funcs nt36523_panel_funcs = { .disable = nt36523_disable, .prepare = nt36523_prepare, .unprepare = nt36523_unprepare, .get_modes = nt36523_get_modes, + .get_orientation = nt36523_get_orientation, }; static int nt36523_bl_update_status(struct backlight_device *bl) @@ -784,6 +793,12 @@ static int nt36523_probe(struct mipi_dsi_device *dsi) mipi_dsi_set_drvdata(dsi, pinfo); drm_panel_init(&pinfo->panel, dev, &nt36523_panel_funcs, DRM_MODE_CONNECTOR_DSI); + ret = of_drm_get_panel_orientation(dev->of_node, &pinfo->orientation); + if (ret < 0) { + dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret); + return ret; + } + if (pinfo->desc->has_dcs_backlight) { pinfo->panel.backlight = nt36523_create_backlight(dsi); if (IS_ERR(pinfo->panel.backlight))
Some bright vendors mount their display panels upside down. Add the required pieces to allow for accounting for that. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> --- drivers/gpu/drm/panel/panel-novatek-nt36523.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+)