diff mbox

drm/i915: Do not return unknown status when load detection is tested.

Message ID 1456848241-6431-1-git-send-email-maarten.lankhorst@linux.intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Maarten Lankhorst March 1, 2016, 4:04 p.m. UTC
This fixes the IGT test, which interprets unknown status as failed to
acquire load detect pipe.

Cc: Gabriel Feceoru <gabriel.feceoru@intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_crt.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Ville Syrjala March 1, 2016, 5:27 p.m. UTC | #1
On Tue, Mar 01, 2016 at 05:04:01PM +0100, Maarten Lankhorst wrote:
> This fixes the IGT test, which interprets unknown status as failed to
> acquire load detect pipe.

Change the expectation of the test?

But more importantly, how can it fail to find a pipe when there's
kmstest_unset_all_crtcs() in the test?

> 
> Cc: Gabriel Feceoru <gabriel.feceoru@intel.com>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_crt.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index 505fc5cf26f8..4b2dfa1bb00e 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -652,6 +652,8 @@ intel_crt_detect(struct drm_connector *connector, bool force)
>  		else if (INTEL_INFO(dev)->gen < 4)
>  			status = intel_crt_load_detect(crt,
>  				to_intel_crtc(connector->state->crtc)->pipe);
> +		else if (i915.load_detect_test)
> +			status = connector_status_disconnected;
>  		else
>  			status = connector_status_unknown;
>  		intel_release_load_detect_pipe(connector, &tmp, &ctx);
> -- 
> 2.1.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Maarten Lankhorst March 1, 2016, 5:46 p.m. UTC | #2
Op 01-03-16 om 18:27 schreef Ville Syrjälä:
> On Tue, Mar 01, 2016 at 05:04:01PM +0100, Maarten Lankhorst wrote:
>> This fixes the IGT test, which interprets unknown status as failed to
>> acquire load detect pipe.
> Change the expectation of the test?
>
> But more importantly, how can it fail to find a pipe when there's
> kmstest_unset_all_crtcs() in the test?
>
It finds a pipe, but because status is connector_status_unknown without this patch it still treats it as failed.

~Maarten
Ville Syrjala March 1, 2016, 6:01 p.m. UTC | #3
On Tue, Mar 01, 2016 at 06:46:51PM +0100, Maarten Lankhorst wrote:
> Op 01-03-16 om 18:27 schreef Ville Syrjälä:
> > On Tue, Mar 01, 2016 at 05:04:01PM +0100, Maarten Lankhorst wrote:
> >> This fixes the IGT test, which interprets unknown status as failed to
> >> acquire load detect pipe.
> > Change the expectation of the test?
> >
> > But more importantly, how can it fail to find a pipe when there's
> > kmstest_unset_all_crtcs() in the test?
> >
> It finds a pipe, but because status is connector_status_unknown without this patch it still treats it as failed.

Ah, seems I misunderstand everything today. Yeah that makes sense. We
need to distinguish between the failed to get a pipe vs. failed to
detect anything even when we found a pipe.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 505fc5cf26f8..4b2dfa1bb00e 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -652,6 +652,8 @@  intel_crt_detect(struct drm_connector *connector, bool force)
 		else if (INTEL_INFO(dev)->gen < 4)
 			status = intel_crt_load_detect(crt,
 				to_intel_crtc(connector->state->crtc)->pipe);
+		else if (i915.load_detect_test)
+			status = connector_status_disconnected;
 		else
 			status = connector_status_unknown;
 		intel_release_load_detect_pipe(connector, &tmp, &ctx);