From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "R, Durgadoss" <durgadoss.r@intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 6/6] drm/i915/bxt: Fix irq_port for eDP
Date: Thu, 10 Sep 2015 16:35:57 +0300 [thread overview]
Message-ID: <20150910133557.GG29811@intel.com> (raw)
In-Reply-To: <4D68720C2E767A4AA6A8796D42C8EB590925249B@BGSMSX101.gar.corp.intel.com>
On Thu, Sep 10, 2015 at 01:07:30PM +0000, R, Durgadoss wrote:
> Hi Rodrigo,
>
> I had to add this to get HDMI hotplug working on BXT.
> As you might already know, we have the HPD pins A & B
> swapped in BXT. And, we are using HPD_PORT_A as
> 'intel_encoder->hpd_pin' for HDMI on port B.
People keep saying that, but according to the spec it's not
even true. A and B are not swapped, but instead all the pins
are sort of shifted by one position.
HPD A = DDI0 / port B
HPD B = DDI1 / port C
HPD C = DDI2 / port A
If the code actually did the remapping in a way that matches
the spec, things would be a lot less confusing.
>
> Without this, When an HPD on HDMI (port B) happens, the interrupt
> is handled as an eDP (port A) interrupt in 'intel_hpd_irq_handler',
> since hpd_pin for HDMI port B is set as PIN A.
>
> Snippet:
> ---
> is_dig_port = intel_hpd_pin_to_port(i, &port) &&
> dev_priv->hotplug.irq_port[port];
>
> ---
>
> The issue occurs only when we have eDP + HDMI combination.
> MIPI + HDMI works well without this fix also.
>
> And all these workarounds, are due to pin swap in
> BXT A0/A1. We have this fix enclosed with that check as well.
>
> I tried to few other changes, but this one was less intrusive
> and easy to change (and notice the change).
> Kindly let us know if you have better ideas.
>
> Thanks,
> Durga
>
> From: Intel-gfx [mailto:intel-gfx-bounces@lists.freedesktop.org] On Behalf Of Rodrigo Vivi
> Sent: Thursday, September 10, 2015 12:54 AM
> To: Jindal, Sonika; intel-gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH 6/6] drm/i915/bxt: Fix irq_port for eDP
>
> Nak: I don't believe we need this... Actually I believe we need the opposite... we need to enable HPD on port A for eDP errors handling...
>
>
>
>
> On Fri, Sep 4, 2015 at 6:38 AM Sonika Jindal <sonika.jindal@intel.com> wrote:
> From: Durgadoss R <durgadoss.r@intel.com>
>
> Currently, HDMI hotplug with eDP as local panel is failing
> because the HDMI hpd is detected as a long hpd for eDP; and is
> thus rightfully ignored. But, it should really be handled as
> an interrupt on port B for HDMI (due to BXT A1 platform having
> HPD pins A and B swapped). This patch sets the irq_port[PORT_A]
> to NULL in case eDP is on port A so that irq handler does not
> treat it as a 'dig_port' interrupt.
>
> Signed-off-by: Durgadoss R <durgadoss.r@intel.com>
> ---
> drivers/gpu/drm/i915/intel_ddi.c | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
> index 4823184..fec51df 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -3218,15 +3218,20 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
> goto err;
>
> intel_dig_port->hpd_pulse = intel_dp_hpd_pulse;
> + dev_priv->hotplug.irq_port[port] = intel_dig_port;
> /*
> * On BXT A0/A1, sw needs to activate DDIA HPD logic and
> * interrupts to check the external panel connection.
> + * If eDP is connected on port A, set irq_port to NULL
> + * so that we do not assume an interrupt here as a
> + * 'dig_port' interrupt.
> */
> - if (IS_BROXTON(dev_priv) && (INTEL_REVID(dev) < BXT_REVID_B0)
> - && port == PORT_B)
> - dev_priv->hotplug.irq_port[PORT_A] = intel_dig_port;
> - else
> - dev_priv->hotplug.irq_port[port] = intel_dig_port;
> + if (IS_BROXTON(dev) && (INTEL_REVID(dev) < BXT_REVID_B0)) {
> + if (port == PORT_B)
> + dev_priv->hotplug.irq_port[PORT_A] = intel_dig_port;
> + else if (intel_encoder->type == INTEL_OUTPUT_EDP)
> + dev_priv->hotplug.irq_port[port] = NULL;
> + }
> }
>
> /* In theory we don't need the encoder->type check, but leave it just in
> --
> 1.7.10.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-09-10 13:36 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-04 13:26 [PATCH 0/6] HDMI optimization series Sonika Jindal
2015-09-04 13:26 ` [PATCH 1/6] drm/i915: add attached connector to hdmi container Sonika Jindal
2015-09-09 18:54 ` Rodrigo Vivi
2015-09-10 15:24 ` Daniel Vetter
2015-09-04 13:26 ` [PATCH 2/6] drm/i915: Add HDMI probe function Sonika Jindal
2015-09-04 14:48 ` Daniel Vetter
2015-09-09 18:55 ` Rodrigo Vivi
2015-09-11 10:45 ` Jindal, Sonika
2015-09-14 8:30 ` Daniel Vetter
2015-09-14 9:55 ` Sharma, Shashank
2015-09-14 13:07 ` Daniel Vetter
2015-09-14 13:45 ` Sharma, Shashank
2015-09-28 8:56 ` [PATCH] drm/i915: Add hot_plug hook for hdmi encoder Sonika Jindal
2015-09-28 13:34 ` Daniel Vetter
2015-09-29 4:13 ` Jindal, Sonika
2015-09-29 9:04 ` Daniel Vetter
2015-10-05 11:13 ` [PATCH 1/2] drm/i915: Call encoder hotplug for init and resume cases Sonika Jindal
2015-10-05 11:13 ` [PATCH 2/2] drm/i915: Add hot_plug hook for hdmi encoder Sonika Jindal
2015-10-06 8:28 ` Daniel Vetter
2015-12-10 4:30 ` Sonika Jindal
2015-12-10 4:45 ` [PATCH] " Sonika Jindal
2015-12-10 8:29 ` Daniel Vetter
2015-12-10 8:35 ` Jindal, Sonika
2015-12-10 8:53 ` Daniel Vetter
2015-12-10 9:04 ` Jindal, Sonika
2015-10-08 13:35 ` [PATCH 1/2] drm/i915: Call encoder hotplug for init and resume cases Ville Syrjälä
2015-10-08 14:38 ` Jani Nikula
2015-10-08 19:54 ` Daniel Vetter
2015-10-09 4:31 ` Jindal, Sonika
2015-12-10 4:27 ` Sonika Jindal
2015-10-12 12:24 ` Sharma, Shashank
2015-10-15 1:32 ` Jindal, Sonika
2015-09-04 13:26 ` [PATCH 3/6] drm/i915: Make intel_digital_port_connected global Sonika Jindal
2015-09-09 18:57 ` Rodrigo Vivi
2015-09-11 11:28 ` [PATCH] drm/i915/bxt: Use intel_encoder->hpd_pin to check live status Sonika Jindal
2015-09-11 18:00 ` Rodrigo Vivi
2015-09-12 12:02 ` Jindal, Sonika
2015-09-14 8:34 ` Daniel Vetter
2015-09-14 8:38 ` Jindal, Sonika
2015-09-14 9:15 ` Daniel Vetter
2015-09-04 13:26 ` [PATCH 4/6] drm/i915: drm/i915: Check live status before reading edid Sonika Jindal
2015-09-04 14:49 ` Daniel Vetter
2015-09-07 5:02 ` [PATCH] " Sonika Jindal
2015-09-08 11:21 ` Sonika Jindal
2015-09-09 19:11 ` [PATCH 4/6] drm/i915: " Rodrigo Vivi
2015-09-11 11:26 ` [PATCH] " Sonika Jindal
2015-09-11 17:56 ` Rodrigo Vivi
2015-09-14 8:42 ` Daniel Vetter
2015-09-14 9:14 ` Jindal, Sonika
2015-09-14 9:36 ` Daniel Vetter
2015-09-15 4:14 ` Sonika Jindal
2015-09-23 8:18 ` Daniel Vetter
2016-03-08 21:03 ` Chris Wilson
2016-03-09 5:52 ` Jindal, Sonika
2016-03-09 5:55 ` Sharma, Shashank
2016-03-10 11:37 ` Sharma, Shashank
2015-09-04 13:26 ` [PATCH 5/6] drm/i915: drm/i915: Process hpd only for hdmi inside hotplug_work_func Sonika Jindal
2015-09-04 14:47 ` Daniel Vetter
2015-09-06 4:31 ` Jindal, Sonika
2015-09-07 5:04 ` [PATCH] drm/i915: Call encoder hot_plug hook only for hdmi Sonika Jindal
2015-09-07 16:26 ` Daniel Vetter
2015-09-08 4:42 ` Jindal, Sonika
2015-09-08 11:38 ` Jindal, Sonika
2015-09-09 15:17 ` Daniel Vetter
2015-09-10 1:07 ` Jindal, Sonika
2015-09-10 14:47 ` Daniel Vetter
2015-09-09 19:20 ` [PATCH 5/6] drm/i915: drm/i915: Process hpd only for hdmi inside hotplug_work_func Rodrigo Vivi
2015-09-09 23:37 ` Jindal, Sonika
2015-09-04 13:26 ` [PATCH 6/6] drm/i915/bxt: Fix irq_port for eDP Sonika Jindal
2015-09-09 19:24 ` Rodrigo Vivi
2015-09-10 10:49 ` Jindal, Sonika
2015-09-10 13:07 ` R, Durgadoss
2015-09-10 13:35 ` Ville Syrjälä [this message]
2015-09-10 14:51 ` Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150910133557.GG29811@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=durgadoss.r@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.