All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes
@ 2015-09-21 13:05 Maarten Lankhorst
  2015-09-23  8:37   ` [Intel-gfx] " Jani Nikula
  2015-09-24 19:20   ` [Intel-gfx] " João Paulo Rechi Vita
  0 siblings, 2 replies; 5+ messages in thread
From: Maarten Lankhorst @ 2015-09-21 13:05 UTC (permalink / raw)
  To: intel-gfx; +Cc: stable, João Paulo Rechi Vita

This is fix for a regression introduced by 27321ae88c70104df
"drm/i915: Use the disable callback for disabling planes."

Disabling invisible planes may cause recalculation of
watermarks, which is a problem because the software state
is not yet in sync with the hardware state.
This may result in a black screen during kernel boot and
plymouth splash until any input action is performed in X.

Explicitly checking for plane visibility fixes the regression.
This is a patch for v4.2 only, v4.3 needs a different fix because
it was fixed by d032ffa04cf7c6f
"drm/i915: Handle disabling planes better, v2."

but later broken again in
4cf0ebbd4fafbdf "drm/i915: Rework plane readout."

This will be fixed in v4.3 by:
"drm/i915: Add .get_hw_state() method for planes"

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91952
Cc: João Paulo Rechi Vita <jprvita@endlessm.com>
Cc: stable@vger.kernel.org # v4.2 only
---
 drivers/gpu/drm/i915/intel_display.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 87476ff181dd..a5f97cfd86d8 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4863,7 +4863,8 @@ static void intel_crtc_disable_planes(struct drm_crtc *crtc)
 
 	intel_crtc_dpms_overlay_disable(intel_crtc);
 	for_each_intel_plane(dev, intel_plane) {
-		if (intel_plane->pipe == pipe) {
+		if (intel_plane->pipe == pipe &&
+		    to_intel_plane_state(intel_plane->base.state)->visible) {
 			struct drm_crtc *from = intel_plane->base.crtc;
 
 			intel_plane->disable_plane(&intel_plane->base,
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes
  2015-09-21 13:05 [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes Maarten Lankhorst
@ 2015-09-23  8:37   ` Jani Nikula
  2015-09-24 19:20   ` [Intel-gfx] " João Paulo Rechi Vita
  1 sibling, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2015-09-23  8:37 UTC (permalink / raw)
  To: Maarten Lankhorst, intel-gfx; +Cc: João Paulo Rechi Vita, stable

On Mon, 21 Sep 2015, Maarten Lankhorst <maarten.lankhorst@linux.intel.com> wrote:
> This is fix for a regression introduced by 27321ae88c70104df
> "drm/i915: Use the disable callback for disabling planes."
>
> Disabling invisible planes may cause recalculation of
> watermarks, which is a problem because the software state
> is not yet in sync with the hardware state.
> This may result in a black screen during kernel boot and
> plymouth splash until any input action is performed in X.
>
> Explicitly checking for plane visibility fixes the regression.
> This is a patch for v4.2 only, v4.3 needs a different fix because
> it was fixed by d032ffa04cf7c6f
> "drm/i915: Handle disabling planes better, v2."
>
> but later broken again in
> 4cf0ebbd4fafbdf "drm/i915: Rework plane readout."
>
> This will be fixed in v4.3 by:
> "drm/i915: Add .get_hw_state() method for planes"

Stable will need that described as

commit <commit-id> upstream.

as the first line of the commit message.

BR,
Jani.

>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91952
> Cc: João Paulo Rechi Vita <jprvita@endlessm.com>
> Cc: stable@vger.kernel.org # v4.2 only
> ---
>  drivers/gpu/drm/i915/intel_display.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 87476ff181dd..a5f97cfd86d8 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4863,7 +4863,8 @@ static void intel_crtc_disable_planes(struct drm_crtc *crtc)
>  
>  	intel_crtc_dpms_overlay_disable(intel_crtc);
>  	for_each_intel_plane(dev, intel_plane) {
> -		if (intel_plane->pipe == pipe) {
> +		if (intel_plane->pipe == pipe &&
> +		    to_intel_plane_state(intel_plane->base.state)->visible) {
>  			struct drm_crtc *from = intel_plane->base.crtc;
>  
>  			intel_plane->disable_plane(&intel_plane->base,
> -- 
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes
@ 2015-09-23  8:37   ` Jani Nikula
  0 siblings, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2015-09-23  8:37 UTC (permalink / raw)
  To: Maarten Lankhorst, intel-gfx; +Cc: stable, João Paulo Rechi Vita

On Mon, 21 Sep 2015, Maarten Lankhorst <maarten.lankhorst@linux.intel.com> wrote:
> This is fix for a regression introduced by 27321ae88c70104df
> "drm/i915: Use the disable callback for disabling planes."
>
> Disabling invisible planes may cause recalculation of
> watermarks, which is a problem because the software state
> is not yet in sync with the hardware state.
> This may result in a black screen during kernel boot and
> plymouth splash until any input action is performed in X.
>
> Explicitly checking for plane visibility fixes the regression.
> This is a patch for v4.2 only, v4.3 needs a different fix because
> it was fixed by d032ffa04cf7c6f
> "drm/i915: Handle disabling planes better, v2."
>
> but later broken again in
> 4cf0ebbd4fafbdf "drm/i915: Rework plane readout."
>
> This will be fixed in v4.3 by:
> "drm/i915: Add .get_hw_state() method for planes"

Stable will need that described as

commit <commit-id> upstream.

as the first line of the commit message.

BR,
Jani.

>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91952
> Cc: João Paulo Rechi Vita <jprvita@endlessm.com>
> Cc: stable@vger.kernel.org # v4.2 only
> ---
>  drivers/gpu/drm/i915/intel_display.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 87476ff181dd..a5f97cfd86d8 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -4863,7 +4863,8 @@ static void intel_crtc_disable_planes(struct drm_crtc *crtc)
>  
>  	intel_crtc_dpms_overlay_disable(intel_crtc);
>  	for_each_intel_plane(dev, intel_plane) {
> -		if (intel_plane->pipe == pipe) {
> +		if (intel_plane->pipe == pipe &&
> +		    to_intel_plane_state(intel_plane->base.state)->visible) {
>  			struct drm_crtc *from = intel_plane->base.crtc;
>  
>  			intel_plane->disable_plane(&intel_plane->base,
> -- 
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes
  2015-09-21 13:05 [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes Maarten Lankhorst
@ 2015-09-24 19:20   ` João Paulo Rechi Vita
  2015-09-24 19:20   ` [Intel-gfx] " João Paulo Rechi Vita
  1 sibling, 0 replies; 5+ messages in thread
From: João Paulo Rechi Vita @ 2015-09-24 19:20 UTC (permalink / raw)
  To: Maarten Lankhorst; +Cc: intel-gfx, João Paulo Rechi Vita, stable

On 21 September 2015 at 09:05, Maarten Lankhorst
<maarten.lankhorst@linux.intel.com> wrote:
> This is fix for a regression introduced by 27321ae88c70104df
> "drm/i915: Use the disable callback for disabling planes."
>
> Disabling invisible planes may cause recalculation of
> watermarks, which is a problem because the software state
> is not yet in sync with the hardware state.
> This may result in a black screen during kernel boot and
> plymouth splash until any input action is performed in X.
>
> Explicitly checking for plane visibility fixes the regression.
> This is a patch for v4.2 only, v4.3 needs a different fix because
> it was fixed by d032ffa04cf7c6f
> "drm/i915: Handle disabling planes better, v2."
>
> but later broken again in
> 4cf0ebbd4fafbdf "drm/i915: Rework plane readout."
>
> This will be fixed in v4.3 by:
> "drm/i915: Add .get_hw_state() method for planes"
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91952
> Cc: João Paulo Rechi Vita <jprvita@endlessm.com>
> Cc: stable@vger.kernel.org # v4.2 only

Tested-by: João Paulo Rechi Vita <jprvita@endlessm.com>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes
@ 2015-09-24 19:20   ` João Paulo Rechi Vita
  0 siblings, 0 replies; 5+ messages in thread
From: João Paulo Rechi Vita @ 2015-09-24 19:20 UTC (permalink / raw)
  To: Maarten Lankhorst
  Cc: intel-gfx, stable, João Paulo Rechi Vita, jani.nikula

On 21 September 2015 at 09:05, Maarten Lankhorst
<maarten.lankhorst@linux.intel.com> wrote:
> This is fix for a regression introduced by 27321ae88c70104df
> "drm/i915: Use the disable callback for disabling planes."
>
> Disabling invisible planes may cause recalculation of
> watermarks, which is a problem because the software state
> is not yet in sync with the hardware state.
> This may result in a black screen during kernel boot and
> plymouth splash until any input action is performed in X.
>
> Explicitly checking for plane visibility fixes the regression.
> This is a patch for v4.2 only, v4.3 needs a different fix because
> it was fixed by d032ffa04cf7c6f
> "drm/i915: Handle disabling planes better, v2."
>
> but later broken again in
> 4cf0ebbd4fafbdf "drm/i915: Rework plane readout."
>
> This will be fixed in v4.3 by:
> "drm/i915: Add .get_hw_state() method for planes"
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91952
> Cc: João Paulo Rechi Vita <jprvita@endlessm.com>
> Cc: stable@vger.kernel.org # v4.2 only

Tested-by: João Paulo Rechi Vita <jprvita@endlessm.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-09-24 19:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-21 13:05 [PATCH] drm/i915: Only disable visible planes in intel_crtc_disable_planes Maarten Lankhorst
2015-09-23  8:37 ` Jani Nikula
2015-09-23  8:37   ` [Intel-gfx] " Jani Nikula
2015-09-24 19:20 ` João Paulo Rechi Vita
2015-09-24 19:20   ` [Intel-gfx] " João Paulo Rechi Vita

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.