diff options
| author | Leo <thinkabit.ukim@gmail.com> | 2020-01-29 00:06:56 +0100 |
|---|---|---|
| committer | Leo <thinkabit.ukim@gmail.com> | 2020-01-29 00:06:56 +0100 |
| commit | c10f2d9b183c51fddfcb61024d01a5bd21197694 (patch) | |
| tree | be05642071d1d25f7bd6a17684a76bd9bdfde63c /testing/linux-amlogic | |
| parent | 47d62840a0a17ab1d9abf62acd4542370fe5b7ad (diff) | |
| download | aports-c10f2d9b183c51fddfcb61024d01a5bd21197694.tar.bz2 aports-c10f2d9b183c51fddfcb61024d01a5bd21197694.tar.xz | |
Remove stale patches from testing
Diffstat (limited to 'testing/linux-amlogic')
| -rw-r--r-- | testing/linux-amlogic/0015-drm-meson-Call-drm_crtc_vblank_on-drm_crtc_vblank_of.patch | 61 | ||||
| -rw-r--r-- | testing/linux-amlogic/0022-drm-meson-Fixes-for-drm_crtc_vblank_on-off-support.patch | 130 |
2 files changed, 0 insertions, 191 deletions
diff --git a/testing/linux-amlogic/0015-drm-meson-Call-drm_crtc_vblank_on-drm_crtc_vblank_of.patch b/testing/linux-amlogic/0015-drm-meson-Call-drm_crtc_vblank_on-drm_crtc_vblank_of.patch deleted file mode 100644 index 7dc23b5b47..0000000000 --- a/testing/linux-amlogic/0015-drm-meson-Call-drm_crtc_vblank_on-drm_crtc_vblank_of.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 40bfd476f6bb44f9bf88bbbc0bd4cfd9591bedc9 Mon Sep 17 00:00:00 2001 -From: Neil Armstrong <narmstrong@baylibre.com> -Date: Wed, 28 Feb 2018 16:07:18 +0100 -Subject: [PATCH] drm/meson: Call drm_crtc_vblank_on / drm_crtc_vblank_off - -Make sure that the CRTC code will call the enable/disable_vblank hooks. - -Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> - ---- - drivers/gpu/drm/meson/meson_crtc.c | 4 ++++ - drivers/gpu/drm/meson/meson_venc.c | 3 +++ - 2 files changed, 7 insertions(+) - -diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c -index 0552020..7c0bdc8 100644 ---- a/drivers/gpu/drm/meson/meson_crtc.c -+++ b/drivers/gpu/drm/meson/meson_crtc.c -@@ -102,6 +102,8 @@ static void meson_crtc_atomic_enable(struct drm_crtc *crtc, - priv->io_base + _REG(VPP_MISC)); - - priv->viu.osd1_enabled = true; -+ -+ drm_crtc_vblank_on(crtc); - } - - static void meson_crtc_atomic_disable(struct drm_crtc *crtc, -@@ -110,6 +112,8 @@ static void meson_crtc_atomic_disable(struct drm_crtc *crtc, - struct meson_crtc *meson_crtc = to_meson_crtc(crtc); - struct meson_drm *priv = meson_crtc->priv; - -+ drm_crtc_vblank_off(crtc); -+ - priv->viu.osd1_enabled = false; - priv->viu.osd1_commit = false; - -diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c -index 514245e..14aac66 100644 ---- a/drivers/gpu/drm/meson/meson_venc.c -+++ b/drivers/gpu/drm/meson/meson_venc.c -@@ -71,6 +71,7 @@ - */ - - /* HHI Registers */ -+#define HHI_GCLK_MPEG2 0x148 /* 0x52 offset in data sheet */ - #define HHI_VDAC_CNTL0 0x2F4 /* 0xbd offset in data sheet */ - #define HHI_VDAC_CNTL1 0x2F8 /* 0xbe offset in data sheet */ - #define HHI_HDMI_PHY_CNTL0 0x3a0 /* 0xe8 offset in data sheet */ -@@ -1529,10 +1530,12 @@ unsigned int meson_venci_get_field(struct meson_drm *priv) - void meson_venc_enable_vsync(struct meson_drm *priv) - { - writel_relaxed(2, priv->io_base + _REG(VENC_INTCTRL)); -+ regmap_update_bits(priv->hhi, HHI_GCLK_MPEG2, BIT(25), BIT(25)); - } - - void meson_venc_disable_vsync(struct meson_drm *priv) - { -+ regmap_update_bits(priv->hhi, HHI_GCLK_MPEG2, BIT(25), 0); - writel_relaxed(0, priv->io_base + _REG(VENC_INTCTRL)); - } - diff --git a/testing/linux-amlogic/0022-drm-meson-Fixes-for-drm_crtc_vblank_on-off-support.patch b/testing/linux-amlogic/0022-drm-meson-Fixes-for-drm_crtc_vblank_on-off-support.patch deleted file mode 100644 index a17be6bc38..0000000000 --- a/testing/linux-amlogic/0022-drm-meson-Fixes-for-drm_crtc_vblank_on-off-support.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 5a258bd31dab2dad8afcced8a7a85fa92e04edab Mon Sep 17 00:00:00 2001 -From: Neil Armstrong <narmstrong@baylibre.com> -Date: Wed, 28 Feb 2018 16:07:18 +0100 -Subject: [PATCH] drm/meson: Fixes for drm_crtc_vblank_on/off support - -Since Linux 4.17, calls to drm_crtc_vblank_on/off are mandatory, and we get -a warning when ctrc is disabled : - driver forgot to call drm_crtc_vblank_off() - -But, the vsync IRQ was not totally disabled due the transient hardware -state, thus adding proper IRQ masking from the HHI system control registers. - -The last change fixes a race condition introduced by calling the added -drm_crtc_vblank_on/off when an HPD event occurs from the HDMI connector, -triggering a WARN_ON() in the _atomic_bebin() callback when the CRTC -is disabled, thus also triggering a WARN_ON() in drm_vblank_put() : - -WARNING: CPU: 0 PID: 1185 at drivers/gpu/drm/meson/meson_crtc.c:157 meson_crtc_atomic_begin+0x78/0x80 -[...] -Call trace: - meson_crtc_atomic_begin+0x78/0x80 - drm_atomic_helper_commit_planes+0x140/0x218 - drm_atomic_helper_commit_tail+0x38/0x80 - commit_tail+0x7c/0x80 - drm_atomic_helper_commit+0xdc/0x150 - drm_atomic_commit+0x54/0x60 - restore_fbdev_mode_atomic+0x198/0x238 - restore_fbdev_mode+0x6c/0x1c0 - drm_fb_helper_restore_fbdev_mode_unlocked+0x7c/0xf0 - drm_fb_helper_set_par+0x34/0x60 - drm_fb_helper_hotplug_event.part.28+0xb8/0xc8 - drm_fbdev_client_hotplug+0xa4/0xe0 - drm_client_dev_hotplug+0x90/0xe0 - drm_kms_helper_hotplug_event+0x3c/0x48 - drm_helper_hpd_irq_event+0x134/0x168 - dw_hdmi_top_thread_irq+0x3c/0x50 -[...] -WARNING: CPU: 0 PID: 1185 at drivers/gpu/drm/drm_vblank.c:1026 drm_vblank_put+0xb4/0xc8 -[...] - Call trace: - drm_vblank_put+0xb4/0xc8 - drm_crtc_vblank_put+0x24/0x30 - drm_atomic_helper_wait_for_vblanks.part.9+0x130/0x2b8 - drm_atomic_helper_commit_tail+0x68/0x80 -[...] - -The issue is the vblank need to be enabled in any occurence of : -- atomic_enable() -- atomic_begin() and state->enable == true, which was not the case - -Moving the CRTC enable code to a common function and calling in one -of these occurence solves this race condition and makes sure vblank -is enabled in each call to _atomic_begin() from the HPD event leading -to drm_atomic_helper_commit_planes(). - -To Summarize : -- Make sure that the CRTC code will calls the drm_crtc_vblank_on/off -- *Really* mask the Vsync IRQ -- Initialize and enable vblank at the first _atomic_begin()/_atomic_enable() - -Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> - ---- - drivers/gpu/drm/meson/meson_crtc.c | 25 +++++++++++++++++++++++-- - 1 file changed, 23 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/meson/meson_crtc.c b/drivers/gpu/drm/meson/meson_crtc.c -index 6099997..f8e260b 100644 ---- a/drivers/gpu/drm/meson/meson_crtc.c -+++ b/drivers/gpu/drm/meson/meson_crtc.c -@@ -46,6 +46,7 @@ struct meson_crtc { - struct drm_crtc base; - struct drm_pending_vblank_event *event; - struct meson_drm *priv; -+ bool enabled; - }; - #define to_meson_crtc(x) container_of(x, struct meson_crtc, base) - -@@ -81,8 +82,7 @@ static const struct drm_crtc_funcs meson_crtc_funcs = { - - }; - --static void meson_crtc_atomic_enable(struct drm_crtc *crtc, -- struct drm_crtc_state *old_state) -+static void meson_crtc_enable(struct drm_crtc *crtc) - { - struct meson_crtc *meson_crtc = to_meson_crtc(crtc); - struct drm_crtc_state *crtc_state = crtc->state; -@@ -106,6 +106,22 @@ static void meson_crtc_atomic_enable(struct drm_crtc *crtc, - writel_bits_relaxed(VPP_POSTBLEND_ENABLE, VPP_POSTBLEND_ENABLE, - priv->io_base + _REG(VPP_MISC)); - -+ drm_crtc_vblank_on(crtc); -+ -+ meson_crtc->enabled = true; -+} -+ -+static void meson_crtc_atomic_enable(struct drm_crtc *crtc, -+ struct drm_crtc_state *old_state) -+{ -+ struct meson_crtc *meson_crtc = to_meson_crtc(crtc); -+ struct meson_drm *priv = meson_crtc->priv; -+ -+ DRM_DEBUG_DRIVER("\n"); -+ -+ if (!meson_crtc->enabled) -+ meson_crtc_enable(crtc); -+ - priv->viu.osd1_enabled = true; - - drm_crtc_vblank_on(crtc); -@@ -139,6 +155,8 @@ static void meson_crtc_atomic_disable(struct drm_crtc *crtc, - - crtc->state->event = NULL; - } -+ -+ meson_crtc->enabled = false; - } - - static void meson_crtc_atomic_begin(struct drm_crtc *crtc, -@@ -147,6 +165,9 @@ static void meson_crtc_atomic_begin(struct drm_crtc *crtc, - struct meson_crtc *meson_crtc = to_meson_crtc(crtc); - unsigned long flags; - -+ if (crtc->state->enable && !meson_crtc->enabled) -+ meson_crtc_enable(crtc); -+ - if (crtc->state->event) { - WARN_ON(drm_crtc_vblank_get(crtc) != 0); - |
