[Intel-gfx] [PATCH 05/24] drm/i915: fold the hpd_irq_setup call into intel_hpd_irq_handler

2013-06-12 Thread Daniel Vetter
We already have a vfunc for this (and other parts of the hpd storm
handling code already use it).

Cc: Egbert Eich e...@suse.de
Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
---
 drivers/gpu/drm/i915/i915_irq.c | 29 +++--
 1 file changed, 11 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index ab3368e..1f8d914 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -88,9 +88,6 @@ static const u32 hpd_status_i915[] = { /* i915 and valleyview 
are the same */
[HPD_PORT_D] = PORTD_HOTPLUG_INT_STATUS
 };
 
-static void ibx_hpd_irq_setup(struct drm_device *dev);
-static void i915_hpd_irq_setup(struct drm_device *dev);
-
 /* For display hotplug interrupt */
 static void
 ironlake_enable_display_irq(drm_i915_private_t *dev_priv, u32 mask)
@@ -878,14 +875,14 @@ static void gen6_queue_rps_work(struct drm_i915_private 
*dev_priv,
 #define HPD_STORM_DETECT_PERIOD 1000
 #define HPD_STORM_THRESHOLD 5
 
-static inline bool intel_hpd_irq_handler(struct drm_device *dev,
+static inline void intel_hpd_irq_handler(struct drm_device *dev,
 u32 hotplug_trigger,
 const u32 *hpd)
 {
drm_i915_private_t *dev_priv = dev-dev_private;
unsigned long irqflags;
int i;
-   bool ret = false;
+   bool storm_detected = false;
 
spin_lock_irqsave(dev_priv-irq_lock, irqflags);
 
@@ -905,7 +902,7 @@ static inline bool intel_hpd_irq_handler(struct drm_device 
*dev,
dev_priv-hpd_stats[i].hpd_mark = HPD_MARK_DISABLED;
dev_priv-hpd_event_bits = ~(1  i);
DRM_DEBUG_KMS(HPD interrupt storm detected on PIN 
%d\n, i);
-   ret = true;
+   storm_detected = true;
} else {
dev_priv-hpd_stats[i].hpd_cnt++;
}
@@ -913,7 +910,8 @@ static inline bool intel_hpd_irq_handler(struct drm_device 
*dev,
 
spin_unlock_irqrestore(dev_priv-irq_lock, irqflags);
 
-   return ret;
+   if (storm_detected)
+   dev_priv-display.hpd_irq_setup(dev);
 }
 
 static void gmbus_irq_handler(struct drm_device *dev)
@@ -1021,8 +1019,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void 
*arg)
DRM_DEBUG_DRIVER(hotplug event received, stat 
0x%08x\n,
 hotplug_status);
if (hotplug_trigger) {
-   if (intel_hpd_irq_handler(dev, hotplug_trigger, 
hpd_status_i915))
-   i915_hpd_irq_setup(dev);
+   intel_hpd_irq_handler(dev, hotplug_trigger, 
hpd_status_i915);
queue_work(dev_priv-wq,
   dev_priv-hotplug_work);
}
@@ -1052,8 +1049,7 @@ static void ibx_irq_handler(struct drm_device *dev, u32 
pch_iir)
u32 hotplug_trigger = pch_iir  SDE_HOTPLUG_MASK;
 
if (hotplug_trigger) {
-   if (intel_hpd_irq_handler(dev, hotplug_trigger, hpd_ibx))
-   ibx_hpd_irq_setup(dev);
+   intel_hpd_irq_handler(dev, hotplug_trigger, hpd_ibx);
queue_work(dev_priv-wq, dev_priv-hotplug_work);
}
if (pch_iir  SDE_AUDIO_POWER_MASK) {
@@ -1157,8 +1153,7 @@ static void cpt_irq_handler(struct drm_device *dev, u32 
pch_iir)
u32 hotplug_trigger = pch_iir  SDE_HOTPLUG_MASK_CPT;
 
if (hotplug_trigger) {
-   if (intel_hpd_irq_handler(dev, hotplug_trigger, hpd_cpt))
-   ibx_hpd_irq_setup(dev);
+   intel_hpd_irq_handler(dev, hotplug_trigger, hpd_cpt);
queue_work(dev_priv-wq, dev_priv-hotplug_work);
}
if (pch_iir  SDE_AUDIO_POWER_MASK_CPT) {
@@ -3174,8 +3169,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
DRM_DEBUG_DRIVER(hotplug event received, stat 
0x%08x\n,
  hotplug_status);
if (hotplug_trigger) {
-   if (intel_hpd_irq_handler(dev, hotplug_trigger, 
hpd_status_i915))
-   i915_hpd_irq_setup(dev);
+   intel_hpd_irq_handler(dev, hotplug_trigger, 
hpd_status_i915);
queue_work(dev_priv-wq,
   dev_priv-hotplug_work);
}
@@ -3420,9 +3414,8 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
DRM_DEBUG_DRIVER(hotplug event received, stat 
0x%08x\n,
  hotplug_status);
if (hotplug_trigger) {
-   if (intel_hpd_irq_handler(dev, hotplug_trigger,
-   

Re: [Intel-gfx] [PATCH 05/24] drm/i915: fold the hpd_irq_setup call into intel_hpd_irq_handler

2013-06-12 Thread Daniel Vetter
On Wed, Jun 12, 2013 at 4:26 PM, Egbert Eich e...@suse.com wrote:
 Daniel Vetter writes:
   We already have a vfunc for this (and other parts of the hpd storm
   handling code already use it).
  
   Cc: Egbert Eich e...@suse.de
   Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
   ---
drivers/gpu/drm/i915/i915_irq.c | 29 +++--
1 file changed, 11 insertions(+), 18 deletions(-)
  

 [ reviewed code deleted ]

 Reviewed-by: Egbert Eich e...@suse.de

Readd intel-gfx so I don't miss the r-b tag.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 05/24] drm/i915: fold the hpd_irq_setup call into intel_hpd_irq_handler

2013-06-12 Thread Egbert Eich
Daniel Vetter writes:
  We already have a vfunc for this (and other parts of the hpd storm
  handling code already use it).
  
  Cc: Egbert Eich e...@suse.de
  Signed-off-by: Daniel Vetter daniel.vet...@ffwll.ch
  ---
   drivers/gpu/drm/i915/i915_irq.c | 29 +++--
   1 file changed, 11 insertions(+), 18 deletions(-)
  

[ reviewed code deleted ]

Reviewed-by: Egbert Eich e...@suse.de


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx