Re: [Intel-gfx] [PATCH 02/11] drm/i915; Extract intel_hpd_enabled_irqs()

2015-08-26 Thread Paulo Zanoni
2015-08-17 17:06 GMT-03:00 Paulo Zanoni przan...@gmail.com:
 2015-08-12 12:44 GMT-03:00  ville.syrj...@linux.intel.com:
 From: Ville Syrjälä ville.syrj...@linux.intel.com

 Eliminate a bunch of duplicated code that calculates the currently
 enabled HPD interrupt bits.

 Nice one! I see this one also depends on a patch that's not merged
 yet, so I'm not sure if I should wait for it to be merged before
 continuing the review, or if you plan to send a version rebased just
 on -nightly.

This one is also unblocked, same reason as patch 1.

The bikeshed goes to the patch title: s/i915; Extract/i915: Extract/ .
I guess Daniel can apply this one while merging.

Reviewed-by: Paulo Zanoni paulo.r.zan...@intel.com



 Signed-off-by: Ville Syrjälä ville.syrj...@linux.intel.com
 ---
  drivers/gpu/drm/i915/i915_irq.c | 43 
 -
  1 file changed, 21 insertions(+), 22 deletions(-)

 diff --git a/drivers/gpu/drm/i915/i915_irq.c 
 b/drivers/gpu/drm/i915/i915_irq.c
 index 8485bea..de0edbd 100644
 --- a/drivers/gpu/drm/i915/i915_irq.c
 +++ b/drivers/gpu/drm/i915/i915_irq.c
 @@ -3002,27 +3002,34 @@ static void cherryview_irq_preinstall(struct 
 drm_device *dev)
 vlv_display_irq_reset(dev_priv);
  }

 +static u32 intel_hpd_enabled_irqs(struct drm_device *dev,
 + const u32 hpd[HPD_NUM_PINS])
 +{
 +   struct drm_i915_private *dev_priv = to_i915(dev);
 +   struct intel_encoder *encoder;
 +   u32 enabled_irqs = 0;
 +
 +   for_each_intel_encoder(dev, encoder)
 +   if (dev_priv-hotplug.stats[encoder-hpd_pin].state == 
 HPD_ENABLED)
 +   enabled_irqs |= hpd[encoder-hpd_pin];
 +
 +   return enabled_irqs;
 +}
 +
  static void ibx_hpd_irq_setup(struct drm_device *dev)
  {
 struct drm_i915_private *dev_priv = dev-dev_private;
 -   struct intel_encoder *intel_encoder;
 -   u32 hotplug_irqs, hotplug, enabled_irqs = 0;
 +   u32 hotplug_irqs, hotplug, enabled_irqs;

 if (HAS_PCH_IBX(dev)) {
 hotplug_irqs = SDE_HOTPLUG_MASK;
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if 
 (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
 -   enabled_irqs |= 
 hpd_ibx[intel_encoder-hpd_pin];
 +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_ibx);
 } else if (HAS_PCH_SPT(dev)) {
 hotplug_irqs = SDE_HOTPLUG_MASK_SPT;
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if 
 (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
 -   enabled_irqs |= 
 hpd_spt[intel_encoder-hpd_pin];
 +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_spt);
 } else {
 hotplug_irqs = SDE_HOTPLUG_MASK_CPT;
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if 
 (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
 -   enabled_irqs |= 
 hpd_cpt[intel_encoder-hpd_pin];
 +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_cpt);
 }

 ibx_display_interrupt_update(dev_priv, hotplug_irqs, enabled_irqs);
 @@ -3051,15 +3058,10 @@ static void ibx_hpd_irq_setup(struct drm_device *dev)
  static void bxt_hpd_irq_setup(struct drm_device *dev)
  {
 struct drm_i915_private *dev_priv = dev-dev_private;
 -   struct intel_encoder *intel_encoder;
 -   u32 hotplug_port = 0;
 +   u32 hotplug_port;
 u32 hotplug_ctrl;

 -   for_each_intel_encoder(dev, intel_encoder) {
 -   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state
 -   == HPD_ENABLED)
 -   hotplug_port |= hpd_bxt[intel_encoder-hpd_pin];
 -   }
 +   hotplug_port = intel_hpd_enabled_irqs(dev, hpd_bxt);

 hotplug_ctrl = I915_READ(BXT_HOTPLUG_CTL)  ~BXT_HOTPLUG_CTL_MASK;

 @@ -3935,7 +3937,6 @@ static int i965_irq_postinstall(struct drm_device *dev)
  static void i915_hpd_irq_setup(struct drm_device *dev)
  {
 struct drm_i915_private *dev_priv = dev-dev_private;
 -   struct intel_encoder *intel_encoder;
 u32 hotplug_en;

 assert_spin_locked(dev_priv-irq_lock);
 @@ -3944,9 +3945,7 @@ static void i915_hpd_irq_setup(struct drm_device *dev)
 hotplug_en = ~HOTPLUG_INT_EN_MASK;
 /* Note HDMI and DP share hotplug bits */
 /* enable bits are the same for all generations */
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == 
 HPD_ENABLED)
 -   hotplug_en |= hpd_mask_i915[intel_encoder-hpd_pin];
 +   hotplug_en |= intel_hpd_enabled_irqs(dev, hpd_mask_i915);
 /* Programming the CRT detection parameters tends
to generate a spurious hotplug event about three

Re: [Intel-gfx] [PATCH 02/11] drm/i915; Extract intel_hpd_enabled_irqs()

2015-08-19 Thread Ville Syrjälä
On Mon, Aug 17, 2015 at 05:06:17PM -0300, Paulo Zanoni wrote:
 2015-08-12 12:44 GMT-03:00  ville.syrj...@linux.intel.com:
  From: Ville Syrjälä ville.syrj...@linux.intel.com
 
  Eliminate a bunch of duplicated code that calculates the currently
  enabled HPD interrupt bits.
 
 Nice one! I see this one also depends on a patch that's not merged
 yet, so I'm not sure if I should wait for it to be merged before
 continuing the review, or if you plan to send a version rebased just
 on -nightly.

I rebased it on top of nightly before I sent it. I guess some patches
got dropped from nightly.

 
 
  Signed-off-by: Ville Syrjälä ville.syrj...@linux.intel.com
  ---
   drivers/gpu/drm/i915/i915_irq.c | 43 
  -
   1 file changed, 21 insertions(+), 22 deletions(-)
 
  diff --git a/drivers/gpu/drm/i915/i915_irq.c 
  b/drivers/gpu/drm/i915/i915_irq.c
  index 8485bea..de0edbd 100644
  --- a/drivers/gpu/drm/i915/i915_irq.c
  +++ b/drivers/gpu/drm/i915/i915_irq.c
  @@ -3002,27 +3002,34 @@ static void cherryview_irq_preinstall(struct 
  drm_device *dev)
  vlv_display_irq_reset(dev_priv);
   }
 
  +static u32 intel_hpd_enabled_irqs(struct drm_device *dev,
  + const u32 hpd[HPD_NUM_PINS])
  +{
  +   struct drm_i915_private *dev_priv = to_i915(dev);
  +   struct intel_encoder *encoder;
  +   u32 enabled_irqs = 0;
  +
  +   for_each_intel_encoder(dev, encoder)
  +   if (dev_priv-hotplug.stats[encoder-hpd_pin].state == 
  HPD_ENABLED)
  +   enabled_irqs |= hpd[encoder-hpd_pin];
  +
  +   return enabled_irqs;
  +}
  +
   static void ibx_hpd_irq_setup(struct drm_device *dev)
   {
  struct drm_i915_private *dev_priv = dev-dev_private;
  -   struct intel_encoder *intel_encoder;
  -   u32 hotplug_irqs, hotplug, enabled_irqs = 0;
  +   u32 hotplug_irqs, hotplug, enabled_irqs;
 
  if (HAS_PCH_IBX(dev)) {
  hotplug_irqs = SDE_HOTPLUG_MASK;
  -   for_each_intel_encoder(dev, intel_encoder)
  -   if 
  (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
  -   enabled_irqs |= 
  hpd_ibx[intel_encoder-hpd_pin];
  +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_ibx);
  } else if (HAS_PCH_SPT(dev)) {
  hotplug_irqs = SDE_HOTPLUG_MASK_SPT;
  -   for_each_intel_encoder(dev, intel_encoder)
  -   if 
  (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
  -   enabled_irqs |= 
  hpd_spt[intel_encoder-hpd_pin];
  +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_spt);
  } else {
  hotplug_irqs = SDE_HOTPLUG_MASK_CPT;
  -   for_each_intel_encoder(dev, intel_encoder)
  -   if 
  (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
  -   enabled_irqs |= 
  hpd_cpt[intel_encoder-hpd_pin];
  +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_cpt);
  }
 
  ibx_display_interrupt_update(dev_priv, hotplug_irqs, enabled_irqs);
  @@ -3051,15 +3058,10 @@ static void ibx_hpd_irq_setup(struct drm_device 
  *dev)
   static void bxt_hpd_irq_setup(struct drm_device *dev)
   {
  struct drm_i915_private *dev_priv = dev-dev_private;
  -   struct intel_encoder *intel_encoder;
  -   u32 hotplug_port = 0;
  +   u32 hotplug_port;
  u32 hotplug_ctrl;
 
  -   for_each_intel_encoder(dev, intel_encoder) {
  -   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state
  -   == HPD_ENABLED)
  -   hotplug_port |= hpd_bxt[intel_encoder-hpd_pin];
  -   }
  +   hotplug_port = intel_hpd_enabled_irqs(dev, hpd_bxt);
 
  hotplug_ctrl = I915_READ(BXT_HOTPLUG_CTL)  ~BXT_HOTPLUG_CTL_MASK;
 
  @@ -3935,7 +3937,6 @@ static int i965_irq_postinstall(struct drm_device 
  *dev)
   static void i915_hpd_irq_setup(struct drm_device *dev)
   {
  struct drm_i915_private *dev_priv = dev-dev_private;
  -   struct intel_encoder *intel_encoder;
  u32 hotplug_en;
 
  assert_spin_locked(dev_priv-irq_lock);
  @@ -3944,9 +3945,7 @@ static void i915_hpd_irq_setup(struct drm_device *dev)
  hotplug_en = ~HOTPLUG_INT_EN_MASK;
  /* Note HDMI and DP share hotplug bits */
  /* enable bits are the same for all generations */
  -   for_each_intel_encoder(dev, intel_encoder)
  -   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state 
  == HPD_ENABLED)
  -   hotplug_en |= hpd_mask_i915[intel_encoder-hpd_pin];
  +   hotplug_en |= intel_hpd_enabled_irqs(dev, hpd_mask_i915);
  /* Programming the CRT detection parameters tends
 to generate a spurious hotplug event about three
 seconds later.  

Re: [Intel-gfx] [PATCH 02/11] drm/i915; Extract intel_hpd_enabled_irqs()

2015-08-17 Thread Paulo Zanoni
2015-08-12 12:44 GMT-03:00  ville.syrj...@linux.intel.com:
 From: Ville Syrjälä ville.syrj...@linux.intel.com

 Eliminate a bunch of duplicated code that calculates the currently
 enabled HPD interrupt bits.

Nice one! I see this one also depends on a patch that's not merged
yet, so I'm not sure if I should wait for it to be merged before
continuing the review, or if you plan to send a version rebased just
on -nightly.


 Signed-off-by: Ville Syrjälä ville.syrj...@linux.intel.com
 ---
  drivers/gpu/drm/i915/i915_irq.c | 43 
 -
  1 file changed, 21 insertions(+), 22 deletions(-)

 diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
 index 8485bea..de0edbd 100644
 --- a/drivers/gpu/drm/i915/i915_irq.c
 +++ b/drivers/gpu/drm/i915/i915_irq.c
 @@ -3002,27 +3002,34 @@ static void cherryview_irq_preinstall(struct 
 drm_device *dev)
 vlv_display_irq_reset(dev_priv);
  }

 +static u32 intel_hpd_enabled_irqs(struct drm_device *dev,
 + const u32 hpd[HPD_NUM_PINS])
 +{
 +   struct drm_i915_private *dev_priv = to_i915(dev);
 +   struct intel_encoder *encoder;
 +   u32 enabled_irqs = 0;
 +
 +   for_each_intel_encoder(dev, encoder)
 +   if (dev_priv-hotplug.stats[encoder-hpd_pin].state == 
 HPD_ENABLED)
 +   enabled_irqs |= hpd[encoder-hpd_pin];
 +
 +   return enabled_irqs;
 +}
 +
  static void ibx_hpd_irq_setup(struct drm_device *dev)
  {
 struct drm_i915_private *dev_priv = dev-dev_private;
 -   struct intel_encoder *intel_encoder;
 -   u32 hotplug_irqs, hotplug, enabled_irqs = 0;
 +   u32 hotplug_irqs, hotplug, enabled_irqs;

 if (HAS_PCH_IBX(dev)) {
 hotplug_irqs = SDE_HOTPLUG_MASK;
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if 
 (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
 -   enabled_irqs |= 
 hpd_ibx[intel_encoder-hpd_pin];
 +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_ibx);
 } else if (HAS_PCH_SPT(dev)) {
 hotplug_irqs = SDE_HOTPLUG_MASK_SPT;
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if 
 (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
 -   enabled_irqs |= 
 hpd_spt[intel_encoder-hpd_pin];
 +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_spt);
 } else {
 hotplug_irqs = SDE_HOTPLUG_MASK_CPT;
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if 
 (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
 -   enabled_irqs |= 
 hpd_cpt[intel_encoder-hpd_pin];
 +   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_cpt);
 }

 ibx_display_interrupt_update(dev_priv, hotplug_irqs, enabled_irqs);
 @@ -3051,15 +3058,10 @@ static void ibx_hpd_irq_setup(struct drm_device *dev)
  static void bxt_hpd_irq_setup(struct drm_device *dev)
  {
 struct drm_i915_private *dev_priv = dev-dev_private;
 -   struct intel_encoder *intel_encoder;
 -   u32 hotplug_port = 0;
 +   u32 hotplug_port;
 u32 hotplug_ctrl;

 -   for_each_intel_encoder(dev, intel_encoder) {
 -   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state
 -   == HPD_ENABLED)
 -   hotplug_port |= hpd_bxt[intel_encoder-hpd_pin];
 -   }
 +   hotplug_port = intel_hpd_enabled_irqs(dev, hpd_bxt);

 hotplug_ctrl = I915_READ(BXT_HOTPLUG_CTL)  ~BXT_HOTPLUG_CTL_MASK;

 @@ -3935,7 +3937,6 @@ static int i965_irq_postinstall(struct drm_device *dev)
  static void i915_hpd_irq_setup(struct drm_device *dev)
  {
 struct drm_i915_private *dev_priv = dev-dev_private;
 -   struct intel_encoder *intel_encoder;
 u32 hotplug_en;

 assert_spin_locked(dev_priv-irq_lock);
 @@ -3944,9 +3945,7 @@ static void i915_hpd_irq_setup(struct drm_device *dev)
 hotplug_en = ~HOTPLUG_INT_EN_MASK;
 /* Note HDMI and DP share hotplug bits */
 /* enable bits are the same for all generations */
 -   for_each_intel_encoder(dev, intel_encoder)
 -   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == 
 HPD_ENABLED)
 -   hotplug_en |= hpd_mask_i915[intel_encoder-hpd_pin];
 +   hotplug_en |= intel_hpd_enabled_irqs(dev, hpd_mask_i915);
 /* Programming the CRT detection parameters tends
to generate a spurious hotplug event about three
seconds later.  So just do it once.
 --
 2.4.6

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



-- 
Paulo Zanoni
___
Intel-gfx mailing 

[Intel-gfx] [PATCH 02/11] drm/i915; Extract intel_hpd_enabled_irqs()

2015-08-12 Thread ville . syrjala
From: Ville Syrjälä ville.syrj...@linux.intel.com

Eliminate a bunch of duplicated code that calculates the currently
enabled HPD interrupt bits.

Signed-off-by: Ville Syrjälä ville.syrj...@linux.intel.com
---
 drivers/gpu/drm/i915/i915_irq.c | 43 -
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 8485bea..de0edbd 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -3002,27 +3002,34 @@ static void cherryview_irq_preinstall(struct drm_device 
*dev)
vlv_display_irq_reset(dev_priv);
 }
 
+static u32 intel_hpd_enabled_irqs(struct drm_device *dev,
+ const u32 hpd[HPD_NUM_PINS])
+{
+   struct drm_i915_private *dev_priv = to_i915(dev);
+   struct intel_encoder *encoder;
+   u32 enabled_irqs = 0;
+
+   for_each_intel_encoder(dev, encoder)
+   if (dev_priv-hotplug.stats[encoder-hpd_pin].state == 
HPD_ENABLED)
+   enabled_irqs |= hpd[encoder-hpd_pin];
+
+   return enabled_irqs;
+}
+
 static void ibx_hpd_irq_setup(struct drm_device *dev)
 {
struct drm_i915_private *dev_priv = dev-dev_private;
-   struct intel_encoder *intel_encoder;
-   u32 hotplug_irqs, hotplug, enabled_irqs = 0;
+   u32 hotplug_irqs, hotplug, enabled_irqs;
 
if (HAS_PCH_IBX(dev)) {
hotplug_irqs = SDE_HOTPLUG_MASK;
-   for_each_intel_encoder(dev, intel_encoder)
-   if 
(dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
-   enabled_irqs |= hpd_ibx[intel_encoder-hpd_pin];
+   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_ibx);
} else if (HAS_PCH_SPT(dev)) {
hotplug_irqs = SDE_HOTPLUG_MASK_SPT;
-   for_each_intel_encoder(dev, intel_encoder)
-   if 
(dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
-   enabled_irqs |= hpd_spt[intel_encoder-hpd_pin];
+   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_spt);
} else {
hotplug_irqs = SDE_HOTPLUG_MASK_CPT;
-   for_each_intel_encoder(dev, intel_encoder)
-   if 
(dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == HPD_ENABLED)
-   enabled_irqs |= hpd_cpt[intel_encoder-hpd_pin];
+   enabled_irqs = intel_hpd_enabled_irqs(dev, hpd_cpt);
}
 
ibx_display_interrupt_update(dev_priv, hotplug_irqs, enabled_irqs);
@@ -3051,15 +3058,10 @@ static void ibx_hpd_irq_setup(struct drm_device *dev)
 static void bxt_hpd_irq_setup(struct drm_device *dev)
 {
struct drm_i915_private *dev_priv = dev-dev_private;
-   struct intel_encoder *intel_encoder;
-   u32 hotplug_port = 0;
+   u32 hotplug_port;
u32 hotplug_ctrl;
 
-   for_each_intel_encoder(dev, intel_encoder) {
-   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state
-   == HPD_ENABLED)
-   hotplug_port |= hpd_bxt[intel_encoder-hpd_pin];
-   }
+   hotplug_port = intel_hpd_enabled_irqs(dev, hpd_bxt);
 
hotplug_ctrl = I915_READ(BXT_HOTPLUG_CTL)  ~BXT_HOTPLUG_CTL_MASK;
 
@@ -3935,7 +3937,6 @@ static int i965_irq_postinstall(struct drm_device *dev)
 static void i915_hpd_irq_setup(struct drm_device *dev)
 {
struct drm_i915_private *dev_priv = dev-dev_private;
-   struct intel_encoder *intel_encoder;
u32 hotplug_en;
 
assert_spin_locked(dev_priv-irq_lock);
@@ -3944,9 +3945,7 @@ static void i915_hpd_irq_setup(struct drm_device *dev)
hotplug_en = ~HOTPLUG_INT_EN_MASK;
/* Note HDMI and DP share hotplug bits */
/* enable bits are the same for all generations */
-   for_each_intel_encoder(dev, intel_encoder)
-   if (dev_priv-hotplug.stats[intel_encoder-hpd_pin].state == 
HPD_ENABLED)
-   hotplug_en |= hpd_mask_i915[intel_encoder-hpd_pin];
+   hotplug_en |= intel_hpd_enabled_irqs(dev, hpd_mask_i915);
/* Programming the CRT detection parameters tends
   to generate a spurious hotplug event about three
   seconds later.  So just do it once.
-- 
2.4.6

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