diff mbox

drm/i915: Add primary plane to mask if it's visible

Message ID 55F80F06.8040401@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Maarten Lankhorst Sept. 15, 2015, 12:28 p.m. UTC
This fixes the warnings like

"plane A assertion failure, should be disabled but not"

that on the initial modeset during boot. This can happen if
the primary plane is enabled by the firmware, but inheriting
it fails because the DMAR is active or for other reasons.

Reported-By: Andreas Reis <andreas.reis@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
Reported-and-Tested-by: Emil Renner Berthing <kernel@esmil.dk>
---

Comments

Daniel Vetter Sept. 23, 2015, 9:49 a.m. UTC | #1
On Tue, Sep 15, 2015 at 02:28:54PM +0200, Maarten Lankhorst wrote:
> This fixes the warnings like
> 
> "plane A assertion failure, should be disabled but not"
> 
> that on the initial modeset during boot. This can happen if
> the primary plane is enabled by the firmware, but inheriting
> it fails because the DMAR is active or for other reasons.
> 
> Reported-By: Andreas Reis <andreas.reis@gmail.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
> Reported-and-Tested-by: Emil Renner Berthing <kernel@esmil.dk>

Tested-by: Andreas Reis <andreas.reis@gmail.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Most likely caused by

commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Mon Jun 1 12:49:54 2015 +0200

    drm/i915: update plane state during init

which is in 4.3, so this of for Jani.
-Daniel

> ---
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index ca9278be49f7..05c57e6a0e43 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -15087,9 +15087,12 @@ static void readout_plane_state(struct intel_crtc *crtc,
>  
>  		plane_state = to_intel_plane_state(p->base.state);
>  
> -		if (p->base.type == DRM_PLANE_TYPE_PRIMARY)
> +		if (p->base.type == DRM_PLANE_TYPE_PRIMARY) {
>  			plane_state->visible = primary_get_hw_state(crtc);
> -		else {
> +			if (plane_state->visible)
> +				crtc->base.state->plane_mask |=
> +					1 << drm_plane_index(&p->base);
> +		} else {
>  			if (active)
>  				p->disable_plane(&p->base, &crtc->base);
>  
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jani Nikula Sept. 23, 2015, 10:29 a.m. UTC | #2
On Wed, 23 Sep 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Tue, Sep 15, 2015 at 02:28:54PM +0200, Maarten Lankhorst wrote:
>> This fixes the warnings like
>> 
>> "plane A assertion failure, should be disabled but not"
>> 
>> that on the initial modeset during boot. This can happen if
>> the primary plane is enabled by the firmware, but inheriting
>> it fails because the DMAR is active or for other reasons.
>> 
>> Reported-By: Andreas Reis <andreas.reis@gmail.com>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
>> Reported-and-Tested-by: Emil Renner Berthing <kernel@esmil.dk>
>
> Tested-by: Andreas Reis <andreas.reis@gmail.com>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> Most likely caused by
>
> commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d
> Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Date:   Mon Jun 1 12:49:54 2015 +0200
>
>     drm/i915: update plane state during init
>
> which is in 4.3, so this of for Jani.

What's the deal with this patch wrt

commit f9cd7b881a042dcc8f1b1236ecea6deb3eb4d5bd
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu Sep 10 18:59:08 2015 +0300

    drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc()

i.e. do we need a different patch for drm-intel-next-queued?

BR,
Jani.


> -Daniel
>
>> ---
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index ca9278be49f7..05c57e6a0e43 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -15087,9 +15087,12 @@ static void readout_plane_state(struct intel_crtc *crtc,
>>  
>>  		plane_state = to_intel_plane_state(p->base.state);
>>  
>> -		if (p->base.type == DRM_PLANE_TYPE_PRIMARY)
>> +		if (p->base.type == DRM_PLANE_TYPE_PRIMARY) {
>>  			plane_state->visible = primary_get_hw_state(crtc);
>> -		else {
>> +			if (plane_state->visible)
>> +				crtc->base.state->plane_mask |=
>> +					1 << drm_plane_index(&p->base);
>> +		} else {
>>  			if (active)
>>  				p->disable_plane(&p->base, &crtc->base);
>>  
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
Maarten Lankhorst Sept. 23, 2015, 11:09 a.m. UTC | #3
Hey,

Op 23-09-15 om 12:29 schreef Jani Nikula:
> On Wed, 23 Sep 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
>> On Tue, Sep 15, 2015 at 02:28:54PM +0200, Maarten Lankhorst wrote:
>>> This fixes the warnings like
>>>
>>> "plane A assertion failure, should be disabled but not"
>>>
>>> that on the initial modeset during boot. This can happen if
>>> the primary plane is enabled by the firmware, but inheriting
>>> it fails because the DMAR is active or for other reasons.
>>>
>>> Reported-By: Andreas Reis <andreas.reis@gmail.com>
>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
>>> Reported-and-Tested-by: Emil Renner Berthing <kernel@esmil.dk>
>> Tested-by: Andreas Reis <andreas.reis@gmail.com>
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>
>> Most likely caused by
>>
>> commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d
>> Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> Date:   Mon Jun 1 12:49:54 2015 +0200
>>
>>     drm/i915: update plane state during init
>>
>> which is in 4.3, so this of for Jani.
> What's the deal with this patch wrt
>
> commit f9cd7b881a042dcc8f1b1236ecea6deb3eb4d5bd
> Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Date:   Thu Sep 10 18:59:08 2015 +0300
>
>     drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc()
>
> i.e. do we need a different patch for drm-intel-next-queued?
>
Indeed, and a different patch for v4.2 which you commented on. :-)
crtc_mask needs to be updated here if plane_state->visible is true.

~Maarten
Jani Nikula Sept. 23, 2015, 12:19 p.m. UTC | #4
On Wed, 23 Sep 2015, Maarten Lankhorst <maarten.lankhorst@linux.intel.com> wrote:
> Hey,
>
> Op 23-09-15 om 12:29 schreef Jani Nikula:
>> On Wed, 23 Sep 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
>>> On Tue, Sep 15, 2015 at 02:28:54PM +0200, Maarten Lankhorst wrote:
>>>> This fixes the warnings like
>>>>
>>>> "plane A assertion failure, should be disabled but not"
>>>>
>>>> that on the initial modeset during boot. This can happen if
>>>> the primary plane is enabled by the firmware, but inheriting
>>>> it fails because the DMAR is active or for other reasons.
>>>>
>>>> Reported-By: Andreas Reis <andreas.reis@gmail.com>
>>>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
>>>> Reported-and-Tested-by: Emil Renner Berthing <kernel@esmil.dk>
>>> Tested-by: Andreas Reis <andreas.reis@gmail.com>
>>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>>
>>> Most likely caused by
>>>
>>> commit 36750f284b3a4f19b304fda1bb7d6e9e1275ea8d
>>> Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>>> Date:   Mon Jun 1 12:49:54 2015 +0200
>>>
>>>     drm/i915: update plane state during init
>>>
>>> which is in 4.3, so this of for Jani.
>> What's the deal with this patch wrt
>>
>> commit f9cd7b881a042dcc8f1b1236ecea6deb3eb4d5bd
>> Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Date:   Thu Sep 10 18:59:08 2015 +0300
>>
>>     drm/i915: Move sprite/cursor plane disable to intel_sanitize_crtc()
>>
>> i.e. do we need a different patch for drm-intel-next-queued?
>>
> Indeed, and a different patch for v4.2 which you commented on. :-)
> crtc_mask needs to be updated here if plane_state->visible is true.

Okay, I pushed the patch do drm-intel-fixes, thanks for the patch and
review. I resolving the conflict on nightly rebuild with what's in
drm-intel-next-queued. Please send another patch against dinq.

BR,
Jani.


>
> ~Maarten
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index ca9278be49f7..05c57e6a0e43 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -15087,9 +15087,12 @@  static void readout_plane_state(struct intel_crtc *crtc,
 
 		plane_state = to_intel_plane_state(p->base.state);
 
-		if (p->base.type == DRM_PLANE_TYPE_PRIMARY)
+		if (p->base.type == DRM_PLANE_TYPE_PRIMARY) {
 			plane_state->visible = primary_get_hw_state(crtc);
-		else {
+			if (plane_state->visible)
+				crtc->base.state->plane_mask |=
+					1 << drm_plane_index(&p->base);
+		} else {
 			if (active)
 				p->disable_plane(&p->base, &crtc->base);