2013/2/7 Daniel Vetter <daniel.vetter at ffwll.ch>: > They're physically the same pins and also the same bits, duplicating > only confuses the reader. This also makes it a bit obvious that we > have quite some code duplication going on here. Squashing that is for > a larger rework in our hpd handling though. > > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch> Reviewed-by: Paulo Zanoni <paulo.r.zanoni at intel.com> > --- > drivers/gpu/drm/i915/i915_irq.c | 36 ++++++++++++++++++------------------ > drivers/gpu/drm/i915/i915_reg.h | 28 +++++++++------------------- > drivers/gpu/drm/i915/intel_dp.c | 12 ++++++------ > drivers/gpu/drm/i915/intel_hdmi.c | 10 +++++----- > 4 files changed, 38 insertions(+), 48 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 13bb8d3..b27ffdb 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -2137,12 +2137,12 @@ static void valleyview_hpd_irq_setup(struct drm_device *dev) > u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN); > > /* Note HDMI and DP share bits */ > - if (dev_priv->hotplug_supported_mask & HDMIB_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMIB_HOTPLUG_INT_EN; > - if (dev_priv->hotplug_supported_mask & HDMIC_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMIC_HOTPLUG_INT_EN; > - if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMID_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTB_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTB_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTC_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTC_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTD_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTD_HOTPLUG_INT_EN; > if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_I915) > hotplug_en |= SDVOC_HOTPLUG_INT_EN; > if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_I915) > @@ -2408,12 +2408,12 @@ static void i915_hpd_irq_setup(struct drm_device *dev) > if (I915_HAS_HOTPLUG(dev)) { > hotplug_en = I915_READ(PORT_HOTPLUG_EN); > > - if (dev_priv->hotplug_supported_mask & HDMIB_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMIB_HOTPLUG_INT_EN; > - if (dev_priv->hotplug_supported_mask & HDMIC_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMIC_HOTPLUG_INT_EN; > - if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMID_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTB_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTB_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTC_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTC_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTD_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTD_HOTPLUG_INT_EN; > if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_I915) > hotplug_en |= SDVOC_HOTPLUG_INT_EN; > if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS_I915) > @@ -2642,12 +2642,12 @@ static void i965_hpd_irq_setup(struct drm_device *dev) > > /* Note HDMI and DP share hotplug bits */ > hotplug_en = 0; > - if (dev_priv->hotplug_supported_mask & HDMIB_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMIB_HOTPLUG_INT_EN; > - if (dev_priv->hotplug_supported_mask & HDMIC_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMIC_HOTPLUG_INT_EN; > - if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS) > - hotplug_en |= HDMID_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTB_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTB_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTC_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTC_HOTPLUG_INT_EN; > + if (dev_priv->hotplug_supported_mask & PORTD_HOTPLUG_INT_STATUS) > + hotplug_en |= PORTD_HOTPLUG_INT_EN; > if (IS_G4X(dev)) { > if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS_G4X) > hotplug_en |= SDVOC_HOTPLUG_INT_EN; > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index 8754f91..b9fdc99 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -1625,12 +1625,9 @@ > > /* Hotplug control (945+ only) */ > #define PORT_HOTPLUG_EN (dev_priv->info->display_mmio_offset + 0x61110) > -#define HDMIB_HOTPLUG_INT_EN (1 << 29) > -#define DPB_HOTPLUG_INT_EN (1 << 29) > -#define HDMIC_HOTPLUG_INT_EN (1 << 28) > -#define DPC_HOTPLUG_INT_EN (1 << 28) > -#define HDMID_HOTPLUG_INT_EN (1 << 27) > -#define DPD_HOTPLUG_INT_EN (1 << 27) > +#define PORTB_HOTPLUG_INT_EN (1 << 29) > +#define PORTC_HOTPLUG_INT_EN (1 << 28) > +#define PORTD_HOTPLUG_INT_EN (1 << 27) > #define SDVOB_HOTPLUG_INT_EN (1 << 26) > #define SDVOC_HOTPLUG_INT_EN (1 << 25) > #define TV_HOTPLUG_INT_EN (1 << 18) > @@ -1653,19 +1650,12 @@ > > #define PORT_HOTPLUG_STAT (dev_priv->info->display_mmio_offset + 0x61114) > /* HDMI/DP bits are gen4+ */ > -#define DPB_HOTPLUG_LIVE_STATUS (1 << 29) > -#define DPC_HOTPLUG_LIVE_STATUS (1 << 28) > -#define DPD_HOTPLUG_LIVE_STATUS (1 << 27) > -#define DPD_HOTPLUG_INT_STATUS (3 << 21) > -#define DPC_HOTPLUG_INT_STATUS (3 << 19) > -#define DPB_HOTPLUG_INT_STATUS (3 << 17) > -/* HDMI bits are shared with the DP bits */ > -#define HDMIB_HOTPLUG_LIVE_STATUS (1 << 29) > -#define HDMIC_HOTPLUG_LIVE_STATUS (1 << 28) > -#define HDMID_HOTPLUG_LIVE_STATUS (1 << 27) > -#define HDMID_HOTPLUG_INT_STATUS (3 << 21) > -#define HDMIC_HOTPLUG_INT_STATUS (3 << 19) > -#define HDMIB_HOTPLUG_INT_STATUS (3 << 17) > +#define PORTB_HOTPLUG_LIVE_STATUS (1 << 29) > +#define PORTC_HOTPLUG_LIVE_STATUS (1 << 28) > +#define PORTD_HOTPLUG_LIVE_STATUS (1 << 27) > +#define PORTD_HOTPLUG_INT_STATUS (3 << 21) > +#define PORTC_HOTPLUG_INT_STATUS (3 << 19) > +#define PORTB_HOTPLUG_INT_STATUS (3 << 17) > /* CRT/TV common between gen3+ */ > #define CRT_HOTPLUG_INT_STATUS (1 << 11) > #define TV_HOTPLUG_INT_STATUS (1 << 10) > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index 56e408b..7b8bfe8 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -2302,13 +2302,13 @@ g4x_dp_detect(struct intel_dp *intel_dp) > > switch (intel_dig_port->port) { > case PORT_B: > - bit = DPB_HOTPLUG_LIVE_STATUS; > + bit = PORTB_HOTPLUG_LIVE_STATUS; > break; > case PORT_C: > - bit = DPC_HOTPLUG_LIVE_STATUS; > + bit = PORTC_HOTPLUG_LIVE_STATUS; > break; > case PORT_D: > - bit = DPD_HOTPLUG_LIVE_STATUS; > + bit = PORTD_HOTPLUG_LIVE_STATUS; > break; > default: > return connector_status_unknown; > @@ -2838,15 +2838,15 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port, > name = "DPDDC-A"; > break; > case PORT_B: > - dev_priv->hotplug_supported_mask |= DPB_HOTPLUG_INT_STATUS; > + dev_priv->hotplug_supported_mask |= PORTB_HOTPLUG_INT_STATUS; > name = "DPDDC-B"; > break; > case PORT_C: > - dev_priv->hotplug_supported_mask |= DPC_HOTPLUG_INT_STATUS; > + dev_priv->hotplug_supported_mask |= PORTC_HOTPLUG_INT_STATUS; > name = "DPDDC-C"; > break; > case PORT_D: > - dev_priv->hotplug_supported_mask |= DPD_HOTPLUG_INT_STATUS; > + dev_priv->hotplug_supported_mask |= PORTD_HOTPLUG_INT_STATUS; > name = "DPDDC-D"; > break; > default: > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c > index 5b4efd6..5a6138c 100644 > --- a/drivers/gpu/drm/i915/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/intel_hdmi.c > @@ -802,10 +802,10 @@ static bool g4x_hdmi_connected(struct intel_hdmi *intel_hdmi) > > switch (intel_dig_port->port) { > case PORT_B: > - bit = HDMIB_HOTPLUG_LIVE_STATUS; > + bit = PORTB_HOTPLUG_LIVE_STATUS; > break; > case PORT_C: > - bit = HDMIC_HOTPLUG_LIVE_STATUS; > + bit = PORTC_HOTPLUG_LIVE_STATUS; > break; > default: > bit = 0; > @@ -1022,15 +1022,15 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port, > switch (port) { > case PORT_B: > intel_hdmi->ddc_bus = GMBUS_PORT_DPB; > - dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; > + dev_priv->hotplug_supported_mask |= PORTB_HOTPLUG_INT_STATUS; > break; > case PORT_C: > intel_hdmi->ddc_bus = GMBUS_PORT_DPC; > - dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; > + dev_priv->hotplug_supported_mask |= PORTC_HOTPLUG_INT_STATUS; > break; > case PORT_D: > intel_hdmi->ddc_bus = GMBUS_PORT_DPD; > - dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; > + dev_priv->hotplug_supported_mask |= PORTD_HOTPLUG_INT_STATUS; > break; > case PORT_A: > /* Internal port only for eDP. */ > -- > 1.7.10.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Paulo Zanoni