[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