From 391fe055c943e33e9c191dbeeb21995c0d54ccd9 Mon Sep 17 00:00:00 2001 From: Sentry Date: Tue, 14 Jul 2020 15:58:43 +0200 Subject: kernel 5.7.8 --- ...t7703-Move-generic-part-of-init-sequence-.patch | 84 ++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch (limited to 'SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch') diff --git a/SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch b/SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch new file mode 100644 index 0000000..bae4424 --- /dev/null +++ b/SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch @@ -0,0 +1,84 @@ +From 5e9a6f49f8056963a4b8d2408f0c0f211cdab799 Mon Sep 17 00:00:00 2001 +From: Ondrej Jirman +Date: Fri, 26 Jun 2020 02:55:56 +0200 +Subject: [PATCH 08/13] drm/panel: st7703: Move generic part of init sequence + to enable callback + +Calling sleep out and display on is a controller specific part +of the initialization process. Move it out of the panel specific +initialization function to the enable callback. + +Signed-off-by: Ondrej Jirman +--- + drivers/gpu/drm/panel/panel-sitronix-st7703.c | 33 ++++++++++--------- + 1 file changed, 18 insertions(+), 15 deletions(-) + +diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c +index d03aab10cfef1..cdbf7dfb4dd48 100644 +--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c ++++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c +@@ -84,8 +84,6 @@ static inline struct st7703 *panel_to_st7703(struct drm_panel *panel) + static int jh057n_init_sequence(struct st7703 *ctx) + { + struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); +- struct device *dev = ctx->dev; +- int ret; + + /* + * Init sequence was supplied by the panel vendor. Most of the commands +@@ -136,20 +134,7 @@ static int jh057n_init_sequence(struct st7703 *ctx) + 0x18, 0x00, 0x09, 0x0E, 0x29, 0x2D, 0x3C, 0x41, + 0x37, 0x07, 0x0B, 0x0D, 0x10, 0x11, 0x0F, 0x10, + 0x11, 0x18); +- msleep(20); +- +- ret = mipi_dsi_dcs_exit_sleep_mode(dsi); +- if (ret < 0) { +- DRM_DEV_ERROR(dev, "Failed to exit sleep mode: %d\n", ret); +- return ret; +- } +- /* Panel is operational 120 msec after reset */ +- msleep(60); +- ret = mipi_dsi_dcs_set_display_on(dsi); +- if (ret) +- return ret; + +- DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n"); + return 0; + } + +@@ -181,6 +166,7 @@ struct st7703_panel_desc jh057n00900_panel_desc = { + static int st7703_enable(struct drm_panel *panel) + { + struct st7703 *ctx = panel_to_st7703(panel); ++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev); + int ret; + + ret = ctx->desc->init_sequence(ctx); +@@ -190,6 +176,23 @@ static int st7703_enable(struct drm_panel *panel) + return ret; + } + ++ msleep(20); ++ ++ ret = mipi_dsi_dcs_exit_sleep_mode(dsi); ++ if (ret < 0) { ++ DRM_DEV_ERROR(ctx->dev, "Failed to exit sleep mode: %d\n", ret); ++ return ret; ++ } ++ ++ /* Panel is operational 120 msec after reset */ ++ msleep(60); ++ ++ ret = mipi_dsi_dcs_set_display_on(dsi); ++ if (ret) ++ return ret; ++ ++ DRM_DEV_DEBUG_DRIVER(ctx->dev, "Panel init sequence done\n"); ++ + return 0; + } + +-- +2.26.2 + -- cgit v1.2.3