From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/i915: Ignore long hpds on eDP ports Date: Fri, 17 Oct 2014 12:00:53 +0300 Message-ID: <20141017090053.GP4284@intel.com> References: <1413481570-18288-1-git-send-email-ville.syrjala@linux.intel.com> <1413481570-18288-2-git-send-email-ville.syrjala@linux.intel.com> <87d29rm66l.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D5956E310 for ; Fri, 17 Oct 2014 02:01:05 -0700 (PDT) Content-Disposition: inline In-Reply-To: <87d29rm66l.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Fri, Oct 17, 2014 at 11:49:54AM +0300, Jani Nikula wrote: > On Thu, 16 Oct 2014, ville.syrjala@linux.intel.com wrote: > > From: Ville Syrj=E4l=E4 > > > > Turning vdd on/off can generate a long hpd pulse on eDP ports. In order > > to handle hpd we would need to turn on vdd to perform aux transfers. > > This would lead to an endless cycle of > > "vdd off -> long hpd -> vdd on -> detect -> vdd off -> ..." > > > > So ignore long hpd pulses on eDP ports. eDP panels should be physically > > tied to the machine anyway so they should not actually disappear and > > thus don't need long hpd handling. Short hpds are still needed for link > > re-train and whatnot so we can't just turn off the hpd interrupt > > entirely for eDP ports. Perhaps we could turn it off whenever the panel > > is disabled, but just ignoring the long hpd seems sufficient. > = > Did you test this with my short vs. long hpd fix applied? Yes. Well, with my own version of it :) Now someone should go and implement HPD support for port A. > = > In any case, makes sense, > = > Reviewed-by: Jani Nikula > = > = > = > = > = > > > > Signed-off-by: Ville Syrj=E4l=E4 > > --- > > drivers/gpu/drm/i915/intel_dp.c | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/int= el_dp.c > > index f07f02c..4455009 100644 > > --- a/drivers/gpu/drm/i915/intel_dp.c > > +++ b/drivers/gpu/drm/i915/intel_dp.c > > @@ -4611,6 +4611,18 @@ intel_dp_hpd_pulse(struct intel_digital_port *in= tel_dig_port, bool long_hpd) > > if (intel_dig_port->base.type !=3D INTEL_OUTPUT_EDP) > > intel_dig_port->base.type =3D INTEL_OUTPUT_DISPLAYPORT; > > = > > + if (long_hpd && intel_dig_port->base.type =3D=3D INTEL_OUTPUT_EDP) { > > + /* > > + * vdd off can generate a long pulse on eDP which > > + * would require vdd on to handle it, and thus we > > + * would end up in an endless cycle of > > + * "vdd off -> long hpd -> vdd on -> detect -> vdd off -> ..." > > + */ > > + DRM_DEBUG_KMS("ignoring long hpd on eDP port %c\n", > > + port_name(intel_dig_port->port)); > > + return false; > > + } > > + > > DRM_DEBUG_KMS("got hpd irq on port %c - %s\n", > > port_name(intel_dig_port->port), > > long_hpd ? "long" : "short"); > > -- = > > 2.0.4 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > = > -- = > Jani Nikula, Intel Open Source Technology Center -- = Ville Syrj=E4l=E4 Intel OTC