summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJani Nikula2015-05-28 14:43:52 +0200
committerDaniel Vetter2015-05-29 10:15:30 +0200
commitc8727233aa80cdf54e3460ac5ebc93c05b09ff5d (patch)
treefc18217805c7ed9f653d05bd2bc203a734c7aba3 /drivers
parentdrm/i915: merge the two hpd loops in intel_hpd_irq_handler to one (diff)
downloadkernel-qcow2-linux-c8727233aa80cdf54e3460ac5ebc93c05b09ff5d.tar.gz
kernel-qcow2-linux-c8727233aa80cdf54e3460ac5ebc93c05b09ff5d.tar.xz
kernel-qcow2-linux-c8727233aa80cdf54e3460ac5ebc93c05b09ff5d.zip
drm/i915: simplify condition for digital port
As the hpd loops have been merged together, we don't have to maintain state for all hpd triggers. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index b53b91744a17..6fffbfd3121a 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1432,7 +1432,7 @@ static void intel_hpd_irq_handler(struct drm_device *dev,
bool storm_detected = false;
bool queue_dig = false, queue_hp = false;
u32 dig_shift;
- u32 dig_port_mask = 0;
+ bool is_dig_port;
if (!hotplug_trigger)
return;
@@ -1446,7 +1446,9 @@ static void intel_hpd_irq_handler(struct drm_device *dev,
continue;
port = get_port_from_pin(i);
- if (port && dev_priv->hotplug.irq_port[port]) {
+ is_dig_port = port && dev_priv->hotplug.irq_port[port];
+
+ if (is_dig_port) {
bool long_hpd;
if (!HAS_GMCH_DISPLAY(dev_priv)) {
@@ -1466,8 +1468,6 @@ static void intel_hpd_irq_handler(struct drm_device *dev,
queue_dig = true;
if (long_hpd) {
dev_priv->hotplug.long_port_mask |= (1 << port);
- /* FIXME: this can be simplified. */
- dig_port_mask |= hpd[i];
} else {
/* for short HPD just trigger the digital queue */
dev_priv->hotplug.short_port_mask |= (1 << port);
@@ -1492,7 +1492,7 @@ static void intel_hpd_irq_handler(struct drm_device *dev,
if (dev_priv->hotplug.stats[i].state != HPD_ENABLED)
continue;
- if (!(dig_port_mask & hpd[i])) {
+ if (!is_dig_port) {
dev_priv->hotplug.event_bits |= (1 << i);
queue_hp = true;
}