diff --git a/arch/riscv/boot/dts/thead/th1520-lpi4a-console.dts b/arch/riscv/boot/dts/thead/th1520-lpi4a-console.dts index 64ae4e335..6eb285f72 100644 --- a/arch/riscv/boot/dts/thead/th1520-lpi4a-console.dts +++ b/arch/riscv/boot/dts/thead/th1520-lpi4a-console.dts @@ -13,6 +13,7 @@ &dsi0_panel0 { compatible = "mingjun,mj070bi30ia2"; + rotation = <90>; }; &i2c2 { diff --git a/drivers/gpu/drm/panel/panel-mingjun-070bi30ia2.c b/drivers/gpu/drm/panel/panel-mingjun-070bi30ia2.c index 3ee4742cf..af5792d85 100644 --- a/drivers/gpu/drm/panel/panel-mingjun-070bi30ia2.c +++ b/drivers/gpu/drm/panel/panel-mingjun-070bi30ia2.c @@ -49,6 +49,7 @@ struct panel_minjun_info { struct regulator *hsvcc; struct regulator *vspn3v3; + enum drm_panel_orientation orientation; bool prepared; bool enabled; }; @@ -213,6 +214,7 @@ static int mingjun_get_modes(struct drm_panel *panel, connector->display_info.width_mm = mode->width_mm; connector->display_info.height_mm = mode->height_mm; + drm_connector_set_panel_orientation(connector, pinfo->orientation); return 1; } @@ -525,6 +527,10 @@ static int mj070bi30ia2_panel_add(struct panel_minjun_info *pinfo) drm_panel_init(&pinfo->base, dev, &panel_funcs, DRM_MODE_CONNECTOR_DSI); + ret = of_drm_get_panel_orientation(dev->of_node, &pinfo->orientation); + if (ret < 0) { + dev_warn(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret); + } ret = drm_panel_of_backlight(&pinfo->base); if (ret)