diff options
author | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2019-07-12 21:08:32 +0000 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2019-07-13 09:13:40 +0000 |
commit | 1537ae57ca2e729caf8c47788088ab9c8b025723 (patch) | |
tree | 2bf2e1985ff7781832ff4c77e442a934d48db8ba /meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0002-drm-vc4-Make-DSI-call-into-the-bridge-after-the-DSI-.patch | |
parent | 9776e29680e68658bbef5ce54dc481207bac0bfd (diff) |
Revert "Fix rpi touchscreen support on master"
We need to reconsider this changeset. It seems to
produce a regression.
This reverts commit ccb667c35ffdea7a2bc1304750e6b22368cd55f7.
Change-Id: I42754a899e8530f4e18a069ed227f18a8d615801
Diffstat (limited to 'meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0002-drm-vc4-Make-DSI-call-into-the-bridge-after-the-DSI-.patch')
-rw-r--r-- | meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0002-drm-vc4-Make-DSI-call-into-the-bridge-after-the-DSI-.patch | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0002-drm-vc4-Make-DSI-call-into-the-bridge-after-the-DSI-.patch b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0002-drm-vc4-Make-DSI-call-into-the-bridge-after-the-DSI-.patch deleted file mode 100644 index 13d821418..000000000 --- a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0002-drm-vc4-Make-DSI-call-into-the-bridge-after-the-DSI-.patch +++ /dev/null @@ -1,102 +0,0 @@ -From ab06860f2361a3750ec3a62347e0fdd7873cb30d Mon Sep 17 00:00:00 2001 -From: Kevin Quigley <kevin@kquigley.co.uk> -Date: Mon, 24 Sep 2018 18:07:40 +0000 -Subject: [PATCH 2/4] drm/vc4: Make DSI call into the bridge after the DSI link - is enabled. bring this patch https://patchwork.kernel.org/patch/10480937/ to - Linux rpi-4.14.y - -This allows panels or bridges that need to send DSI commands during -pre_enable() to successfully send them. We delay DISP0 (aka the -actual display) enabling until after pre_enable so that pixels aren't -streaming before then. - -v2: Just clear out the encoder->bridge value to disable the midlayer - calls (idea by Andrzej Hajda). ---- - drivers/gpu/drm/vc4/vc4_dsi.c | 48 ++++++++++++++++++++++++----------- - 1 file changed, 33 insertions(+), 15 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c -index a3f416cbd1d6..3fa2db18d70f 100644 ---- a/drivers/gpu/drm/vc4/vc4_dsi.c -+++ b/drivers/gpu/drm/vc4/vc4_dsi.c -@@ -814,7 +814,9 @@ static void vc4_dsi_encoder_disable(struct drm_encoder *encoder) - struct vc4_dsi *dsi = vc4_encoder->dsi; - struct device *dev = &dsi->pdev->dev; - -+ drm_bridge_disable(dsi->bridge); - vc4_dsi_ulps(dsi, true); -+ drm_bridge_post_disable(dsi->bridge); - - clk_disable_unprepare(dsi->pll_phy_clock); - clk_disable_unprepare(dsi->escape_clock); -@@ -1089,21 +1091,6 @@ static void vc4_dsi_encoder_enable(struct drm_encoder *encoder) - /* Display reset sequence timeout */ - DSI_PORT_WRITE(PR_TO_CNT, 100000); - -- if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO) { -- DSI_PORT_WRITE(DISP0_CTRL, -- VC4_SET_FIELD(dsi->divider, -- DSI_DISP0_PIX_CLK_DIV) | -- VC4_SET_FIELD(dsi->format, DSI_DISP0_PFORMAT) | -- VC4_SET_FIELD(DSI_DISP0_LP_STOP_PERFRAME, -- DSI_DISP0_LP_STOP_CTRL) | -- DSI_DISP0_ST_END | -- DSI_DISP0_ENABLE); -- } else { -- DSI_PORT_WRITE(DISP0_CTRL, -- DSI_DISP0_COMMAND_MODE | -- DSI_DISP0_ENABLE); -- } -- - /* Set up DISP1 for transferring long command payloads through - * the pixfifo. - */ -@@ -1128,6 +1115,25 @@ static void vc4_dsi_encoder_enable(struct drm_encoder *encoder) - - vc4_dsi_ulps(dsi, false); - -+ drm_bridge_pre_enable(dsi->bridge); -+ -+ if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO) { -+ DSI_PORT_WRITE(DISP0_CTRL, -+ VC4_SET_FIELD(dsi->divider, -+ DSI_DISP0_PIX_CLK_DIV) | -+ VC4_SET_FIELD(dsi->format, DSI_DISP0_PFORMAT) | -+ VC4_SET_FIELD(DSI_DISP0_LP_STOP_PERFRAME, -+ DSI_DISP0_LP_STOP_CTRL) | -+ DSI_DISP0_ST_END | -+ DSI_DISP0_ENABLE); -+ } else { -+ DSI_PORT_WRITE(DISP0_CTRL, -+ DSI_DISP0_COMMAND_MODE | -+ DSI_DISP0_ENABLE); -+ } -+ -+ drm_bridge_enable(dsi->bridge); -+ - if (debug_dump_regs) { - DRM_INFO("DSI regs after:\n"); - vc4_dsi_dump_regs(dsi); -@@ -1656,6 +1662,18 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) - - dev_set_drvdata(dev, dsi); - -+ ret = drm_bridge_attach(dsi->encoder, dsi->bridge, NULL); -+ if (ret) { -+ dev_err(dev, "bridge attach failed: %d\n", ret); -+ return ret; -+ } -+ /* Disable the atomic helper calls into the bridge. We -+ * manually call the bridge pre_enable / enable / etc. calls -+ * from our driver, since we need to sequence them within the -+ * encoder's enable/disable paths. -+ */ -+ dsi->encoder->bridge = NULL; -+ - pm_runtime_enable(dev); - - return 0; --- -2.21.0 - |