[Intel-gfx] [PATCH] drm/i915/bxt: Use correct live status register for BXT platform
Durgadoss R
durgadoss.r at intel.com
Wed Aug 19 03:58:39 PDT 2015
BXT platform uses live status bits from 0x44440 register to
obtain DP status on hotplug. The existing g4x_digital_port_connected()
uses a different register and hence misses DP hotplug events on
BXT platform. This patch fixes it by using the appropriate
register(0x44440) and live status bits(3:5).
Signed-off-by: Durgadoss R <durgadoss.r at intel.com>
---
drivers/gpu/drm/i915/intel_dp.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index a1dac9c..821d770 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4444,6 +4444,7 @@ static int g4x_digital_port_connected(struct drm_device *dev,
{
struct drm_i915_private *dev_priv = dev->dev_private;
uint32_t bit;
+ uint32_t reg = IS_BROXTON(dev) ? GEN8_DE_PORT_ISR : PORT_HOTPLUG_STAT;
if (IS_VALLEYVIEW(dev)) {
switch (intel_dig_port->port) {
@@ -4459,6 +4460,20 @@ static int g4x_digital_port_connected(struct drm_device *dev,
default:
return -EINVAL;
}
+ } else if (IS_BROXTON(dev)) {
+ switch (intel_dig_port->port) {
+ case PORT_A:
+ bit = BXT_DE_PORT_HP_DDIA;
+ break;
+ case PORT_B:
+ bit = BXT_DE_PORT_HP_DDIB;
+ break;
+ case PORT_C:
+ bit = BXT_DE_PORT_HP_DDIC;
+ break;
+ default:
+ return -EINVAL;
+ }
} else {
switch (intel_dig_port->port) {
case PORT_B:
@@ -4475,7 +4490,7 @@ static int g4x_digital_port_connected(struct drm_device *dev,
}
}
- if ((I915_READ(PORT_HOTPLUG_STAT) & bit) == 0)
+ if ((I915_READ(reg) & bit) == 0)
return 0;
return 1;
}
--
1.9.1
More information about the Intel-gfx
mailing list