[Intel-gfx] [PATCH 1/4] drm/i915: parameterize south hpd macros

Matt Roper matthew.d.roper at intel.com
Thu Aug 29 22:47:05 UTC 2019


On Thu, Aug 29, 2019 at 02:15:23PM -0700, José Roberto de Souza wrote:
> From: Lucas De Marchi <lucas.demarchi at intel.com>
> 
> South, follow the north.
> 
> Instead of defining separate macros for each port, make them take port
> as parameter as done for TC ports and for north engine. This will allow
> us to easily extend this as needed.
> 
> tgp_ddi_port_hotplug_long_detect() is also removed as after the EHL
> introduction the tgp variant is an exact copy of icp.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

> ---
>  drivers/gpu/drm/i915/i915_irq.c | 22 ++++----------------
>  drivers/gpu/drm/i915/i915_reg.h | 36 +++++++++++----------------------
>  2 files changed, 16 insertions(+), 42 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 3f1b6ee157ba..084e322ec15b 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1401,11 +1401,11 @@ static bool icp_ddi_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
>  {
>  	switch (pin) {
>  	case HPD_PORT_A:
> -		return val & ICP_DDIA_HPD_LONG_DETECT;
> +		return val & SHOTPLUG_CTL_DDI_HPD_LONG_DETECT(PORT_A);
>  	case HPD_PORT_B:
> -		return val & ICP_DDIB_HPD_LONG_DETECT;
> +		return val & SHOTPLUG_CTL_DDI_HPD_LONG_DETECT(PORT_B);
>  	case HPD_PORT_C:
> -		return val & TGP_DDIC_HPD_LONG_DETECT;
> +		return val & SHOTPLUG_CTL_DDI_HPD_LONG_DETECT(PORT_C);
>  	default:
>  		return false;
>  	}
> @@ -1427,20 +1427,6 @@ static bool icp_tc_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
>  	}
>  }
>  
> -static bool tgp_ddi_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
> -{
> -	switch (pin) {
> -	case HPD_PORT_A:
> -		return val & ICP_DDIA_HPD_LONG_DETECT;
> -	case HPD_PORT_B:
> -		return val & ICP_DDIB_HPD_LONG_DETECT;
> -	case HPD_PORT_C:
> -		return val & TGP_DDIC_HPD_LONG_DETECT;
> -	default:
> -		return false;
> -	}
> -}
> -
>  static bool tgp_tc_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
>  {
>  	switch (pin) {
> @@ -2318,7 +2304,7 @@ static void tgp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
>  		intel_get_hpd_pins(dev_priv, &pin_mask, &long_mask,
>  				   ddi_hotplug_trigger,
>  				   dig_hotplug_reg, hpd_tgp,
> -				   tgp_ddi_port_hotplug_long_detect);
> +				   icp_ddi_port_hotplug_long_detect);
>  	}
>  
>  	if (tc_hotplug_trigger) {
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 02e1ef10c47e..a3f87115da0a 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -7928,26 +7928,13 @@ enum {
>   * SHOTPLUG_CTL_DDI and SHOTPLUG_CTL_TC.
>   */
>  
> -#define SHOTPLUG_CTL_DDI			_MMIO(0xc4030)
> -#define   TGP_DDIC_HPD_ENABLE			(1 << 11)
> -#define   TGP_DDIC_HPD_STATUS_MASK		(3 << 8)
> -#define   TGP_DDIC_HPD_NO_DETECT		(0 << 8)
> -#define   TGP_DDIC_HPD_SHORT_DETECT		(1 << 8)
> -#define   TGP_DDIC_HPD_LONG_DETECT		(2 << 8)
> -#define   TGP_DDIC_HPD_SHORT_LONG_DETECT	(3 << 8)
> -#define   ICP_DDIB_HPD_ENABLE			(1 << 7)
> -#define   ICP_DDIB_HPD_STATUS_MASK		(3 << 4)
> -#define   ICP_DDIB_HPD_NO_DETECT		(0 << 4)
> -#define   ICP_DDIB_HPD_SHORT_DETECT		(1 << 4)
> -#define   ICP_DDIB_HPD_LONG_DETECT		(2 << 4)
> -#define   ICP_DDIB_HPD_SHORT_LONG_DETECT	(3 << 4)
> -#define   ICP_DDIA_HPD_ENABLE			(1 << 3)
> -#define   ICP_DDIA_HPD_OP_DRIVE_1		(1 << 2)
> -#define   ICP_DDIA_HPD_STATUS_MASK		(3 << 0)
> -#define   ICP_DDIA_HPD_NO_DETECT		(0 << 0)
> -#define   ICP_DDIA_HPD_SHORT_DETECT		(1 << 0)
> -#define   ICP_DDIA_HPD_LONG_DETECT		(2 << 0)
> -#define   ICP_DDIA_HPD_SHORT_LONG_DETECT	(3 << 0)
> +#define SHOTPLUG_CTL_DDI				_MMIO(0xc4030)
> +#define   SHOTPLUG_CTL_DDI_HPD_ENABLE(port)		(0x8 << (4 * (port)))
> +#define   SHOTPLUG_CTL_DDI_HPD_STATUS_MASK(port)	(0x3 << (4 * (port)))
> +#define   SHOTPLUG_CTL_DDI_HPD_NO_DETECT(port)		(0x0 << (4 * (port)))
> +#define   SHOTPLUG_CTL_DDI_HPD_SHORT_DETECT(port)	(0x1 << (4 * (port)))
> +#define   SHOTPLUG_CTL_DDI_HPD_LONG_DETECT(port)	(0x2 << (4 * (port)))
> +#define   SHOTPLUG_CTL_DDI_HPD_SHORT_LONG_DETECT(port)	(0x3 << (4 * (port)))
>  
>  #define SHOTPLUG_CTL_TC				_MMIO(0xc4034)
>  #define   ICP_TC_HPD_ENABLE(tc_port)		(8 << (tc_port) * 4)
> @@ -8058,14 +8045,15 @@ enum {
>  #define   ICP_TC_HPD_LONG_DETECT(tc_port)	(2 << (tc_port) * 4)
>  #define   ICP_TC_HPD_SHORT_DETECT(tc_port)	(1 << (tc_port) * 4)
>  
> -#define ICP_DDI_HPD_ENABLE_MASK		(ICP_DDIB_HPD_ENABLE |	\
> -					 ICP_DDIA_HPD_ENABLE)
> +#define ICP_DDI_HPD_ENABLE_MASK		(SHOTPLUG_CTL_DDI_HPD_ENABLE(PORT_B) | \
> +					 SHOTPLUG_CTL_DDI_HPD_ENABLE(PORT_A))
>  #define ICP_TC_HPD_ENABLE_MASK		(ICP_TC_HPD_ENABLE(PORT_TC4) | \
>  					 ICP_TC_HPD_ENABLE(PORT_TC3) | \
>  					 ICP_TC_HPD_ENABLE(PORT_TC2) | \
>  					 ICP_TC_HPD_ENABLE(PORT_TC1))
> -#define TGP_DDI_HPD_ENABLE_MASK		(TGP_DDIC_HPD_ENABLE |	\
> -					 ICP_DDI_HPD_ENABLE_MASK)
> +#define TGP_DDI_HPD_ENABLE_MASK		(SHOTPLUG_CTL_DDI_HPD_ENABLE(PORT_C) | \
> +					 SHOTPLUG_CTL_DDI_HPD_ENABLE(PORT_B) | \
> +					 SHOTPLUG_CTL_DDI_HPD_ENABLE(PORT_A))
>  #define TGP_TC_HPD_ENABLE_MASK		(ICP_TC_HPD_ENABLE(PORT_TC6) | \
>  					 ICP_TC_HPD_ENABLE(PORT_TC5) | \
>  					 ICP_TC_HPD_ENABLE_MASK)
> -- 
> 2.23.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Matt Roper
Graphics Software Engineer
VTT-OSGC Platform Enablement
Intel Corporation
(916) 356-2795


More information about the Intel-gfx mailing list