Re: [PATCH 3/3] drm/i915/bxt: add support for HPD long/short pulse detection on HPD_PORT_A pin

Sivakumar Thulasimani
2015-07-22T08:31:02Z

[-- Attachment #1.1: Type: text/plain, Size: 2440 bytes --]

On 7/21/2015 3:13 AM, Imre Deak wrote:
> This is a requirement for enabling display port HPD support on the port
> A HPD pin. This support is to be added by follow-up patches.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/i915_irq.c | 18 +++++++++++++++++-
> drivers/gpu/drm/i915/i915_reg.h | 5 +++++
> 2 files changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 4ad7a31..02b9e73 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -1227,6 +1227,22 @@ static irqreturn_t gen8_gt_irq_handler(struct drm_i915_private *dev_priv,
> return ret;
> }
>
> +static bool bxt_port_hotplug_long_detect(enum port port, u32 val)
> +{
> + switch (port) {
> + case PORT_A:
> + return val & BXT_PORTA_HOTPLUG_LONG_DETECT;
> + case PORT_B:
> + return val & PORTB_HOTPLUG_LONG_DETECT;
> + case PORT_C:
> + return val & PORTC_HOTPLUG_LONG_DETECT;
> + case PORT_D:
> + return val & PORTD_HOTPLUG_LONG_DETECT;
> + default:
> + return false;
> + }
> +}
> +
> static bool pch_port_hotplug_long_detect(enum port port, u32 val)
> {
> switch (port) {
> @@ -1961,7 +1977,7 @@ static void bxt_hpd_handler(struct drm_device *dev, uint32_t iir_status)
> I915_WRITE(BXT_HOTPLUG_CTL, hp_control);
>
> intel_get_hpd_pins(&pin_mask, &long_mask, hp_trigger, hp_control,
> - hpd_bxt, pch_port_hotplug_long_detect);
> + hpd_bxt, bxt_port_hotplug_long_detect);
> intel_hpd_irq_handler(dev, pin_mask, long_mask);
> }
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index fc70035..be166b3 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -5942,6 +5942,11 @@ enum skl_disp_power_wells {
>
> /* digital port hotplug */
> #define PCH_PORT_HOTPLUG 0xc4030 /* SHOTPLUG_CTL */
> +#define BXT_PORTA_HOTPLUG_ENABLE (1 << 28)
> +#define BXT_PORTA_HOTPLUG_STATUS_MASK (0x3 << 24)
> +#define BXT_PORTA_HOTPLUG_NO_DETECT (0 << 24)
> +#define BXT_PORTA_HOTPLUG_SHORT_DETECT (1 << 24)
> +#define BXT_PORTA_HOTPLUG_LONG_DETECT (2 << 24)
> #define PORTD_HOTPLUG_ENABLE (1 << 20)
> #define PORTD_PULSE_DURATION_2ms (0)
> #define PORTD_PULSE_DURATION_4_5ms (1 << 18)

Reviewed-by: Sivakumar Thulasimani <sivakumar.thulasimani@intel.com>

--
regards,
Sivakumar

[-- Attachment #1.2: Type: text/html, Size: 3199 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]