[1/5] drm/i915/irq: move hotplug even debug print to second connector loop
diff mbox

Message ID 26e40c9bbcf95e3a9ab7edb72be6a442c4c7e3f0.1434621691.git.jani.nikula@intel.com
State New
Headers show

Commit Message

Jani Nikula June 18, 2015, 10:06 a.m. UTC
The hotplug work function has two loops iterating over connectors, the
first for handling hotplug disabling due to irq storms and the second
for actually handling the hotplug events. Move the debug printing into
the second one, so we can abstract the storm handling better. This may
change the output ordering slightly when there are multiple simultaneous
hotplug events.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Chris Wilson June 18, 2015, 10:21 a.m. UTC | #1
Subject s/even/event/

On Thu, Jun 18, 2015 at 01:06:13PM +0300, Jani Nikula wrote:
> The hotplug work function has two loops iterating over connectors, the
> first for handling hotplug disabling due to irq storms and the second
> for actually handling the hotplug events. Move the debug printing into
> the second one, so we can abstract the storm handling better. This may
> change the output ordering slightly when there are multiple simultaneous
> hotplug events.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 56db9e747464..d64d6895a2e5 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -917,10 +917,6 @@ static void i915_hotplug_work_func(struct work_struct *work)
>  				| DRM_CONNECTOR_POLL_DISCONNECT;
>  			hpd_disabled = true;
>  		}
> -		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
> -			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
> -				      connector->name, intel_encoder->hpd_pin);
> -		}
>  	}
>  	 /* if there were no outputs to poll, poll was disabled,
>  	  * therefore make sure it's enabled when disabling HPD on
> @@ -939,6 +935,8 @@ static void i915_hotplug_work_func(struct work_struct *work)
>  			continue;
>  		intel_encoder = intel_connector->encoder;
>  		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
> +			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
> +				      connector->name, intel_encoder->hpd_pin);

In light of other conversations, is reporting an irq (even a hotplug
one) directly related to KMS? I think DRIVER is more specific in this
case.
-Chris
Jani Nikula June 18, 2015, 10:43 a.m. UTC | #2
On Thu, 18 Jun 2015, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> Subject s/even/event/

Oops.

> On Thu, Jun 18, 2015 at 01:06:13PM +0300, Jani Nikula wrote:
>> The hotplug work function has two loops iterating over connectors, the
>> first for handling hotplug disabling due to irq storms and the second
>> for actually handling the hotplug events. Move the debug printing into
>> the second one, so we can abstract the storm handling better. This may
>> change the output ordering slightly when there are multiple simultaneous
>> hotplug events.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_irq.c | 6 ++----
>>  1 file changed, 2 insertions(+), 4 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>> index 56db9e747464..d64d6895a2e5 100644
>> --- a/drivers/gpu/drm/i915/i915_irq.c
>> +++ b/drivers/gpu/drm/i915/i915_irq.c
>> @@ -917,10 +917,6 @@ static void i915_hotplug_work_func(struct work_struct *work)
>>  				| DRM_CONNECTOR_POLL_DISCONNECT;
>>  			hpd_disabled = true;
>>  		}
>> -		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
>> -			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
>> -				      connector->name, intel_encoder->hpd_pin);
>> -		}
>>  	}
>>  	 /* if there were no outputs to poll, poll was disabled,
>>  	  * therefore make sure it's enabled when disabling HPD on
>> @@ -939,6 +935,8 @@ static void i915_hotplug_work_func(struct work_struct *work)
>>  			continue;
>>  		intel_encoder = intel_connector->encoder;
>>  		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
>> +			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
>> +				      connector->name, intel_encoder->hpd_pin);
>
> In light of other conversations, is reporting an irq (even a hotplug
> one) directly related to KMS? I think DRIVER is more specific in this
> case.

Perhaps; this patch was just about moving the call around. A more
thorough cleanup of the debugging could be a follow-up.

BR,
Jani.



> -Chris
>
> -- 
> Chris Wilson, Intel Open Source Technology Centre
Chris Wilson June 18, 2015, 10:52 a.m. UTC | #3
On Thu, Jun 18, 2015 at 01:43:30PM +0300, Jani Nikula wrote:
> On Thu, 18 Jun 2015, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> > Subject s/even/event/
> 
> Oops.
> 
> > On Thu, Jun 18, 2015 at 01:06:13PM +0300, Jani Nikula wrote:
> >> The hotplug work function has two loops iterating over connectors, the
> >> first for handling hotplug disabling due to irq storms and the second
> >> for actually handling the hotplug events. Move the debug printing into
> >> the second one, so we can abstract the storm handling better. This may
> >> change the output ordering slightly when there are multiple simultaneous
> >> hotplug events.
> >> 
> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> >> ---
> >>  drivers/gpu/drm/i915/i915_irq.c | 6 ++----
> >>  1 file changed, 2 insertions(+), 4 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> >> index 56db9e747464..d64d6895a2e5 100644
> >> --- a/drivers/gpu/drm/i915/i915_irq.c
> >> +++ b/drivers/gpu/drm/i915/i915_irq.c
> >> @@ -917,10 +917,6 @@ static void i915_hotplug_work_func(struct work_struct *work)
> >>  				| DRM_CONNECTOR_POLL_DISCONNECT;
> >>  			hpd_disabled = true;
> >>  		}
> >> -		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
> >> -			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
> >> -				      connector->name, intel_encoder->hpd_pin);
> >> -		}
> >>  	}
> >>  	 /* if there were no outputs to poll, poll was disabled,
> >>  	  * therefore make sure it's enabled when disabling HPD on
> >> @@ -939,6 +935,8 @@ static void i915_hotplug_work_func(struct work_struct *work)
> >>  			continue;
> >>  		intel_encoder = intel_connector->encoder;
> >>  		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
> >> +			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
> >> +				      connector->name, intel_encoder->hpd_pin);
> >
> > In light of other conversations, is reporting an irq (even a hotplug
> > one) directly related to KMS? I think DRIVER is more specific in this
> > case.
> 
> Perhaps; this patch was just about moving the call around. A more
> thorough cleanup of the debugging could be a follow-up.

I was looking for filler, I didn't want to just send a spelling fix
without at least some discussion of the patch! :)
-Chris

Patch
diff mbox

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 56db9e747464..d64d6895a2e5 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -917,10 +917,6 @@  static void i915_hotplug_work_func(struct work_struct *work)
 				| DRM_CONNECTOR_POLL_DISCONNECT;
 			hpd_disabled = true;
 		}
-		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
-			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
-				      connector->name, intel_encoder->hpd_pin);
-		}
 	}
 	 /* if there were no outputs to poll, poll was disabled,
 	  * therefore make sure it's enabled when disabling HPD on
@@ -939,6 +935,8 @@  static void i915_hotplug_work_func(struct work_struct *work)
 			continue;
 		intel_encoder = intel_connector->encoder;
 		if (hpd_event_bits & (1 << intel_encoder->hpd_pin)) {
+			DRM_DEBUG_KMS("Connector %s (pin %i) received hotplug event.\n",
+				      connector->name, intel_encoder->hpd_pin);
 			if (intel_encoder->hot_plug)
 				intel_encoder->hot_plug(intel_encoder);
 			if (intel_hpd_irq_event(dev, connector))