From: Aaron Kling <[email protected]>

Fetch orientation from the device tree if provided.

Signed-off-by: Aaron Kling <[email protected]>
---
 drivers/gpu/drm/panel/panel-visionox-vtdr6130.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c 
b/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c
index 6733e0e1d0612..b66d6c7128c75 100644
--- a/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c
+++ b/drivers/gpu/drm/panel/panel-visionox-vtdr6130.c
@@ -11,6 +11,7 @@
 #include <drm/display/drm_dsc.h>
 #include <drm/display/drm_dsc_helper.h>
 #include <drm/drm_mipi_dsi.h>
+#include <drm/drm_of.h>
 #include <drm/drm_modes.h>
 #include <drm/drm_panel.h>
 
@@ -22,6 +23,7 @@ struct visionox_vtdr6130 {
        struct mipi_dsi_device *dsi;
        struct gpio_desc *reset_gpio;
        struct regulator_bulk_data *supplies;
+       enum drm_panel_orientation orientation;
 };
 
 static const struct regulator_bulk_data visionox_vtdr6130_supplies[] = {
@@ -218,10 +220,18 @@ static int visionox_vtdr6130_get_modes(struct drm_panel 
*panel,
        return 1;
 }
 
+static enum drm_panel_orientation visionox_vtdr6130_get_orientation(struct 
drm_panel *panel)
+{
+       struct visionox_vtdr6130 *ctx = to_visionox_vtdr6130(panel);
+
+       return ctx->orientation;
+}
+
 static const struct drm_panel_funcs visionox_vtdr6130_panel_funcs = {
        .prepare = visionox_vtdr6130_prepare,
        .unprepare = visionox_vtdr6130_unprepare,
        .get_modes = visionox_vtdr6130_get_modes,
+       .get_orientation = visionox_vtdr6130_get_orientation,
 };
 
 static int visionox_vtdr6130_bl_update_status(struct backlight_device *bl)
@@ -293,6 +303,12 @@ static int visionox_vtdr6130_probe(struct mipi_dsi_device 
*dsi)
                          MIPI_DSI_CLOCK_NON_CONTINUOUS;
        ctx->panel.prepare_prev_first = true;
 
+       ret = drm_of_get_panel_orientation(dev->of_node, &ctx->orientation);
+       if (ret < 0) {
+               dev_err(dev, "Failed to get orientation %d\n", ret);
+               return ret;
+       }
+
        ctx->panel.backlight = visionox_vtdr6130_create_backlight(dsi);
        if (IS_ERR(ctx->panel.backlight))
                return dev_err_probe(dev, PTR_ERR(ctx->panel.backlight),

-- 
2.54.0


Reply via email to