Update
This commit is contained in:
@@ -1,66 +0,0 @@
|
||||
From 8a0bf7456f10a06adeeed0690d181f67d887e18e Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Jirman
|
||||
Date: Tue, 28 Jan 2020 00:26:17 +0100
|
||||
Subject: drm: sun4i-drm: Recover from occasional HW failures
|
||||
|
||||
Layer can be disabled automatically by HW (HW clears the bit in
|
||||
some unknown situations). We need to always update this bit,
|
||||
so that DE2 will not fail.
|
||||
|
||||
Signed-off-by: Ondrej Jirman <megous@megous.com>
|
||||
---
|
||||
drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 13 ++++++-------
|
||||
drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 13 ++++++-------
|
||||
2 files changed, 12 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
|
||||
index f1c87695b4d7..e58482f6d7ba 100644
|
||||
--- a/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
|
||||
+++ b/drivers/gpu/drm/sun4i/sun8i_ui_layer.c
|
||||
@@ -36,13 +36,12 @@ static void sun8i_ui_layer_enable(struct sun8i_mixer *mixer, int channel,
|
||||
DRM_DEBUG_DRIVER("%sabling channel %d overlay %d\n",
|
||||
enable ? "En" : "Dis", channel, overlay);
|
||||
|
||||
- if (!was_enabled != !enable) {
|
||||
- val = enable ? SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN : 0;
|
||||
-
|
||||
- regmap_update_bits(mixer->engine.regs,
|
||||
- SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay),
|
||||
- SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN, val);
|
||||
- }
|
||||
+ /* We always update the layer enable bit, because it can clear
|
||||
+ * spontaneously for unknown reasons. */
|
||||
+ val = enable ? SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN : 0;
|
||||
+ regmap_update_bits(mixer->engine.regs,
|
||||
+ SUN8I_MIXER_CHAN_UI_LAYER_ATTR(ch_base, overlay),
|
||||
+ SUN8I_MIXER_CHAN_UI_LAYER_ATTR_EN, val);
|
||||
|
||||
/*
|
||||
* If this layer was enabled and is being disabled or if it is
|
||||
diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
|
||||
index 81eda71c4fff..0c2ccc33d456 100644
|
||||
--- a/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
|
||||
+++ b/drivers/gpu/drm/sun4i/sun8i_vi_layer.c
|
||||
@@ -30,13 +30,12 @@ static void sun8i_vi_layer_enable(struct sun8i_mixer *mixer, int channel,
|
||||
DRM_DEBUG_DRIVER("%sabling VI channel %d overlay %d\n",
|
||||
enable ? "En" : "Dis", channel, overlay);
|
||||
|
||||
- if (!was_enabled != !enable) {
|
||||
- val = enable ? SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN : 0;
|
||||
-
|
||||
- regmap_update_bits(mixer->engine.regs,
|
||||
- SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay),
|
||||
- SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN, val);
|
||||
- }
|
||||
+ /* We always update the layer enable bit, because it can clear
|
||||
+ * spontaneously for unknown reasons. */
|
||||
+ val = enable ? SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN : 0;
|
||||
+ regmap_update_bits(mixer->engine.regs,
|
||||
+ SUN8I_MIXER_CHAN_VI_LAYER_ATTR(ch_base, overlay),
|
||||
+ SUN8I_MIXER_CHAN_VI_LAYER_ATTR_EN, val);
|
||||
|
||||
/*
|
||||
* If this layer was enabled and is being disabled or if it is
|
||||
--
|
||||
cgit v1.2.3
|
||||
|
||||
Reference in New Issue
Block a user