All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915/ddi: fix intel_display_port_aux_power_domain() after HDMI detect
@ 2015-11-18 13:57 Imre Deak
  2015-11-18 13:57 ` [PATCH 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers Imre Deak
  0 siblings, 1 reply; 5+ messages in thread
From: Imre Deak @ 2015-11-18 13:57 UTC (permalink / raw)
  To: intel-gfx

Due to the current sharing of the DDI encoder between DP and HDMI
connectors we can run the DP detection after the HDMI detection has
already set the shared encoder's type. For now solve this keeping the
current behavior and running the detection in this case too. For a proper
solution Ville suggested to split the encoder into an HDMI and DP one, that
can be done as a follow-up.

This issue triggers the WARN in intel_display_port_aux_power_domain() and
was introduced in:
commit 25f78f58e5bfb46a270ce4d690fb49dc104558b1
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Mon Nov 16 15:01:04 2015 +0100

    drm/i915: Clean up AUX power domain handling

CC: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
CC: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 688d484..cdc1761 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5230,7 +5230,14 @@ intel_display_port_aux_power_domain(struct intel_encoder *intel_encoder)
 
 	switch (intel_encoder->type) {
 	case INTEL_OUTPUT_UNKNOWN:
-		/* Only DDI platforms should ever use this output type */
+	case INTEL_OUTPUT_HDMI:
+		/*
+		 * Only DDI platforms should ever use these output types.
+		 * We can get here after the HDMI detect code has already set
+		 * the type of the shared encoder. Since we can't be sure
+		 * what's the status of the given connectors, play safe and
+		 * run the DP detection too.
+		 */
 		WARN_ON_ONCE(!HAS_DDI(dev));
 	case INTEL_OUTPUT_DISPLAYPORT:
 	case INTEL_OUTPUT_EDP:
-- 
2.5.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

* [PATCH 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers
  2015-11-18 13:57 [PATCH 1/2] drm/i915/ddi: fix intel_display_port_aux_power_domain() after HDMI detect Imre Deak
@ 2015-11-18 13:57 ` Imre Deak
  2015-11-18 14:26   ` Ville Syrjälä
  2015-11-18 14:34   ` Patrik Jakobsson
  0 siblings, 2 replies; 5+ messages in thread
From: Imre Deak @ 2015-11-18 13:57 UTC (permalink / raw)
  To: intel-gfx

MISSING_CASE() would have been useful to track down a recent problem in
intel_display_port_aux_power_domain(), so add it there and a few related
helpers. This was also suggested by Ville in his review of the latest
DMC/DC changes, we forgot to address that.

Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index cdc1761..b3d0557 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5166,7 +5166,7 @@ static enum intel_display_power_domain port_to_power_domain(enum port port)
 	case PORT_E:
 		return POWER_DOMAIN_PORT_DDI_E_LANES;
 	default:
-		WARN_ON_ONCE(1);
+		MISSING_CASE(port);
 		return POWER_DOMAIN_PORT_OTHER;
 	}
 }
@@ -5186,7 +5186,7 @@ static enum intel_display_power_domain port_to_aux_power_domain(enum port port)
 		/* FIXME: Check VBT for actual wiring of PORT E */
 		return POWER_DOMAIN_AUX_D;
 	default:
-		WARN_ON_ONCE(1);
+		MISSING_CASE(port);
 		return POWER_DOMAIN_AUX_A;
 	}
 }
@@ -5247,7 +5247,7 @@ intel_display_port_aux_power_domain(struct intel_encoder *intel_encoder)
 		intel_dig_port = enc_to_mst(&intel_encoder->base)->primary;
 		return port_to_aux_power_domain(intel_dig_port->port);
 	default:
-		WARN_ON_ONCE(1);
+		MISSING_CASE(intel_encoder->type);
 		return POWER_DOMAIN_AUX_A;
 	}
 }
-- 
2.5.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 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers
  2015-11-18 13:57 ` [PATCH 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers Imre Deak
@ 2015-11-18 14:26   ` Ville Syrjälä
  2015-11-18 14:34   ` Patrik Jakobsson
  1 sibling, 0 replies; 5+ messages in thread
From: Ville Syrjälä @ 2015-11-18 14:26 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

On Wed, Nov 18, 2015 at 03:57:25PM +0200, Imre Deak wrote:
> MISSING_CASE() would have been useful to track down a recent problem in
> intel_display_port_aux_power_domain(), so add it there and a few related
> helpers. This was also suggested by Ville in his review of the latest
> DMC/DC changes, we forgot to address that.
> 
> Signed-off-by: Imre Deak <imre.deak@intel.com>

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

> ---
>  drivers/gpu/drm/i915/intel_display.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index cdc1761..b3d0557 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5166,7 +5166,7 @@ static enum intel_display_power_domain port_to_power_domain(enum port port)
>  	case PORT_E:
>  		return POWER_DOMAIN_PORT_DDI_E_LANES;
>  	default:
> -		WARN_ON_ONCE(1);
> +		MISSING_CASE(port);
>  		return POWER_DOMAIN_PORT_OTHER;
>  	}
>  }
> @@ -5186,7 +5186,7 @@ static enum intel_display_power_domain port_to_aux_power_domain(enum port port)
>  		/* FIXME: Check VBT for actual wiring of PORT E */
>  		return POWER_DOMAIN_AUX_D;
>  	default:
> -		WARN_ON_ONCE(1);
> +		MISSING_CASE(port);
>  		return POWER_DOMAIN_AUX_A;
>  	}
>  }
> @@ -5247,7 +5247,7 @@ intel_display_port_aux_power_domain(struct intel_encoder *intel_encoder)
>  		intel_dig_port = enc_to_mst(&intel_encoder->base)->primary;
>  		return port_to_aux_power_domain(intel_dig_port->port);
>  	default:
> -		WARN_ON_ONCE(1);
> +		MISSING_CASE(intel_encoder->type);
>  		return POWER_DOMAIN_AUX_A;
>  	}
>  }
> -- 
> 2.5.0

-- 
Ville Syrjälä
Intel OTC
_______________________________________________
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: [PATCH 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers
  2015-11-18 13:57 ` [PATCH 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers Imre Deak
  2015-11-18 14:26   ` Ville Syrjälä
@ 2015-11-18 14:34   ` Patrik Jakobsson
  2015-11-18 19:53     ` Imre Deak
  1 sibling, 1 reply; 5+ messages in thread
From: Patrik Jakobsson @ 2015-11-18 14:34 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

On Wed, Nov 18, 2015 at 03:57:25PM +0200, Imre Deak wrote:
> MISSING_CASE() would have been useful to track down a recent problem in
> intel_display_port_aux_power_domain(), so add it there and a few related
> helpers. This was also suggested by Ville in his review of the latest
> DMC/DC changes, we forgot to address that.
> 
> Signed-off-by: Imre Deak <imre.deak@intel.com>

Reviewed-by: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/intel_display.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index cdc1761..b3d0557 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -5166,7 +5166,7 @@ static enum intel_display_power_domain port_to_power_domain(enum port port)
>  	case PORT_E:
>  		return POWER_DOMAIN_PORT_DDI_E_LANES;
>  	default:
> -		WARN_ON_ONCE(1);
> +		MISSING_CASE(port);
>  		return POWER_DOMAIN_PORT_OTHER;
>  	}
>  }
> @@ -5186,7 +5186,7 @@ static enum intel_display_power_domain port_to_aux_power_domain(enum port port)
>  		/* FIXME: Check VBT for actual wiring of PORT E */
>  		return POWER_DOMAIN_AUX_D;
>  	default:
> -		WARN_ON_ONCE(1);
> +		MISSING_CASE(port);
>  		return POWER_DOMAIN_AUX_A;
>  	}
>  }
> @@ -5247,7 +5247,7 @@ intel_display_port_aux_power_domain(struct intel_encoder *intel_encoder)
>  		intel_dig_port = enc_to_mst(&intel_encoder->base)->primary;
>  		return port_to_aux_power_domain(intel_dig_port->port);
>  	default:
> -		WARN_ON_ONCE(1);
> +		MISSING_CASE(intel_encoder->type);
>  		return POWER_DOMAIN_AUX_A;
>  	}
>  }
> -- 
> 2.5.0
> 
_______________________________________________
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: [PATCH 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers
  2015-11-18 14:34   ` Patrik Jakobsson
@ 2015-11-18 19:53     ` Imre Deak
  0 siblings, 0 replies; 5+ messages in thread
From: Imre Deak @ 2015-11-18 19:53 UTC (permalink / raw)
  To: Ville Syrjälä, Patrik Jakobsson; +Cc: intel-gfx

On Wed, 2015-11-18 at 15:34 +0100, Patrik Jakobsson wrote:
> On Wed, Nov 18, 2015 at 03:57:25PM +0200, Imre Deak wrote:
> > MISSING_CASE() would have been useful to track down a recent
> > problem in
> > intel_display_port_aux_power_domain(), so add it there and a few
> > related
> > helpers. This was also suggested by Ville in his review of the
> > latest
> > DMC/DC changes, we forgot to address that.
> > 
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> 
> Reviewed-by: Patrik Jakobsson <patrik.jakobsson@linux.intel.com>

Pushed both patches to dinq, thanks for the review.

> > ---
> >  drivers/gpu/drm/i915/intel_display.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_display.c
> > b/drivers/gpu/drm/i915/intel_display.c
> > index cdc1761..b3d0557 100644
> > --- a/drivers/gpu/drm/i915/intel_display.c
> > +++ b/drivers/gpu/drm/i915/intel_display.c
> > @@ -5166,7 +5166,7 @@ static enum intel_display_power_domain
> > port_to_power_domain(enum port port)
> >  	case PORT_E:
> >  		return POWER_DOMAIN_PORT_DDI_E_LANES;
> >  	default:
> > -		WARN_ON_ONCE(1);
> > +		MISSING_CASE(port);
> >  		return POWER_DOMAIN_PORT_OTHER;
> >  	}
> >  }
> > @@ -5186,7 +5186,7 @@ static enum intel_display_power_domain
> > port_to_aux_power_domain(enum port port)
> >  		/* FIXME: Check VBT for actual wiring of PORT E */
> >  		return POWER_DOMAIN_AUX_D;
> >  	default:
> > -		WARN_ON_ONCE(1);
> > +		MISSING_CASE(port);
> >  		return POWER_DOMAIN_AUX_A;
> >  	}
> >  }
> > @@ -5247,7 +5247,7 @@ intel_display_port_aux_power_domain(struct
> > intel_encoder *intel_encoder)
> >  		intel_dig_port = enc_to_mst(&intel_encoder->base)-
> > >primary;
> >  		return port_to_aux_power_domain(intel_dig_port-
> > >port);
> >  	default:
> > -		WARN_ON_ONCE(1);
> > +		MISSING_CASE(intel_encoder->type);
> >  		return POWER_DOMAIN_AUX_A;
> >  	}
> >  }
_______________________________________________
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

end of thread, other threads:[~2015-11-18 19:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-18 13:57 [PATCH 1/2] drm/i915/ddi: fix intel_display_port_aux_power_domain() after HDMI detect Imre Deak
2015-11-18 13:57 ` [PATCH 2/2] drm/i915: add MISSING_CASE to a few port/aux power domain helpers Imre Deak
2015-11-18 14:26   ` Ville Syrjälä
2015-11-18 14:34   ` Patrik Jakobsson
2015-11-18 19:53     ` Imre Deak

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.