diff mbox

drm/i915: Don't compare has_drrs strictly in pipe config

Message ID 1448461607-16868-1-git-send-email-tiwai@suse.de (mailing list archive)
State New, archived
Headers show

Commit Message

Takashi Iwai Nov. 25, 2015, 2:26 p.m. UTC
The commit [cfb23ed622d0: drm/i915: Allow fuzzy matching in
pipe_config_compare, v2] relaxed the way to compare the pipe
configurations, but one new comparison sneaked in there: it added the
strict has_drrs value check.  This causes a regression on many
machines, typically HP laptops with a docking port, where the kernel
spews warnings and eventually fails to set the mode properly like:
 [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in has_drrs (expected 1, found 0)
 ------------[ cut here ]------------
 WARNING: CPU: 0 PID: 79 at drivers/gpu/drm/i915/intel_display.c:12700 intel_modeset_check_state+0x5aa/0x870 [i915]()
 pipe state doesn't match!
 ....

This patch just removes the check again for fixing the regression.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104041
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92456
Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=956397
Fixes: cfb23ed622d0 ('drm/i915: Allow fuzzy matching in pipe_config_compare, v2')
Cc: <stable@vger.kernel.org> # v4.3+
Reported-and-tested-by: Max Lin <mlin@suse.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 drivers/gpu/drm/i915/intel_display.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Daniel Vetter Nov. 25, 2015, 2:49 p.m. UTC | #1
On Wed, Nov 25, 2015 at 03:26:47PM +0100, Takashi Iwai wrote:
> The commit [cfb23ed622d0: drm/i915: Allow fuzzy matching in
> pipe_config_compare, v2] relaxed the way to compare the pipe
> configurations, but one new comparison sneaked in there: it added the
> strict has_drrs value check.  This causes a regression on many
> machines, typically HP laptops with a docking port, where the kernel
> spews warnings and eventually fails to set the mode properly like:
>  [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in has_drrs (expected 1, found 0)
>  ------------[ cut here ]------------
>  WARNING: CPU: 0 PID: 79 at drivers/gpu/drm/i915/intel_display.c:12700 intel_modeset_check_state+0x5aa/0x870 [i915]()
>  pipe state doesn't match!
>  ....
> 
> This patch just removes the check again for fixing the regression.
> 
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104041
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92456
> Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=956397
> Fixes: cfb23ed622d0 ('drm/i915: Allow fuzzy matching in pipe_config_compare, v2')
> Cc: <stable@vger.kernel.org> # v4.3+
> Reported-and-tested-by: Max Lin <mlin@suse.com>
> Signed-off-by: Takashi Iwai <tiwai@suse.de>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/i915/intel_display.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 71860f8680f9..12a2e9d1f633 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12460,7 +12460,6 @@ intel_pipe_config_compare(struct drm_device *dev,
>  	if (INTEL_INFO(dev)->gen < 8) {
>  		PIPE_CONF_CHECK_M_N(dp_m_n);
>  
> -		PIPE_CONF_CHECK_I(has_drrs);
>  		if (current_config->has_drrs)
>  			PIPE_CONF_CHECK_M_N(dp_m2_n2);
>  	} else
> -- 
> 2.6.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Jani Nikula Nov. 26, 2015, 1:46 p.m. UTC | #2
On Wed, 25 Nov 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Wed, Nov 25, 2015 at 03:26:47PM +0100, Takashi Iwai wrote:
>> The commit [cfb23ed622d0: drm/i915: Allow fuzzy matching in
>> pipe_config_compare, v2] relaxed the way to compare the pipe
>> configurations, but one new comparison sneaked in there: it added the
>> strict has_drrs value check.  This causes a regression on many
>> machines, typically HP laptops with a docking port, where the kernel
>> spews warnings and eventually fails to set the mode properly like:
>>  [drm:intel_pipe_config_compare [i915]] *ERROR* mismatch in has_drrs (expected 1, found 0)
>>  ------------[ cut here ]------------
>>  WARNING: CPU: 0 PID: 79 at drivers/gpu/drm/i915/intel_display.c:12700 intel_modeset_check_state+0x5aa/0x870 [i915]()
>>  pipe state doesn't match!
>>  ....
>> 
>> This patch just removes the check again for fixing the regression.
>> 
>> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=104041
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92456
>> Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=956397
>> Fixes: cfb23ed622d0 ('drm/i915: Allow fuzzy matching in pipe_config_compare, v2')
>> Cc: <stable@vger.kernel.org> # v4.3+
>> Reported-and-tested-by: Max Lin <mlin@suse.com>
>> Signed-off-by: Takashi Iwai <tiwai@suse.de>
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Pushed to drm-intel-fixes, thanks for the patch and review.

BR,
Jani.


>
>> ---
>>  drivers/gpu/drm/i915/intel_display.c | 1 -
>>  1 file changed, 1 deletion(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index 71860f8680f9..12a2e9d1f633 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -12460,7 +12460,6 @@ intel_pipe_config_compare(struct drm_device *dev,
>>  	if (INTEL_INFO(dev)->gen < 8) {
>>  		PIPE_CONF_CHECK_M_N(dp_m_n);
>>  
>> -		PIPE_CONF_CHECK_I(has_drrs);
>>  		if (current_config->has_drrs)
>>  			PIPE_CONF_CHECK_M_N(dp_m2_n2);
>>  	} else
>> -- 
>> 2.6.3
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 71860f8680f9..12a2e9d1f633 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12460,7 +12460,6 @@  intel_pipe_config_compare(struct drm_device *dev,
 	if (INTEL_INFO(dev)->gen < 8) {
 		PIPE_CONF_CHECK_M_N(dp_m_n);
 
-		PIPE_CONF_CHECK_I(has_drrs);
 		if (current_config->has_drrs)
 			PIPE_CONF_CHECK_M_N(dp_m2_n2);
 	} else