[PATCH v4 60/80] drm/panel: panel-dsi-cm: set column & page at setup
Tomi Valkeinen
tomi.valkeinen at ti.com
Tue Nov 24 12:45:18 UTC 2020
Set the column & page address once during setup, instead of relying the
DSI host driver to set those.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
---
drivers/gpu/drm/panel/panel-dsi-cm.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-dsi-cm.c b/drivers/gpu/drm/panel/panel-dsi-cm.c
index 59e8e6b18e97..1e7f73340736 100644
--- a/drivers/gpu/drm/panel/panel-dsi-cm.c
+++ b/drivers/gpu/drm/panel/panel-dsi-cm.c
@@ -171,6 +171,26 @@ static int dsicm_get_id(struct panel_drv_data *ddata, u8 *id1, u8 *id2, u8 *id3)
return 0;
}
+static int dsicm_set_update_window(struct panel_drv_data *ddata)
+{
+ struct mipi_dsi_device *dsi = ddata->dsi;
+ int r;
+ u16 x1 = 0;
+ u16 x2 = ddata->mode.hdisplay - 1;
+ u16 y1 = 0;
+ u16 y2 = ddata->mode.vdisplay - 1;
+
+ r = mipi_dsi_dcs_set_column_address(dsi, x1, x2);
+ if (r < 0)
+ return r;
+
+ r = mipi_dsi_dcs_set_page_address(dsi, y1, y2);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
static int dsicm_bl_update_status(struct backlight_device *dev)
{
struct panel_drv_data *ddata = dev_get_drvdata(&dev->dev);
@@ -308,6 +328,10 @@ static int dsicm_power_on(struct panel_drv_data *ddata)
if (r)
goto err;
+ r = dsicm_set_update_window(ddata);
+ if (r)
+ goto err;
+
r = mipi_dsi_dcs_set_display_on(ddata->dsi);
if (r)
goto err;
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
More information about the dri-devel
mailing list