<div dir="ltr"><div><div class="gmail_quote"><div dir="ltr">On Thu, Oct 11, 2018 at 2:04 AM Guang Bai <<a href="mailto:guang.bai@intel.com">guang.bai@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, 8 Oct 2018 08:56:20 -0700<br>
Guang Bai <<a href="mailto:guang.bai@intel.com" target="_blank">guang.bai@intel.com</a>> wrote:<br>
<br>
> On Mon, 8 Oct 2018 22:35:34 +0800<br>
> Chris Chiu <<a href="mailto:chiu@endlessm.com" target="_blank">chiu@endlessm.com</a>> wrote:<br>
> <br>
> > Thanks! I have no problem with this patch.  <br>
> <br>
> There are Fi.CI.BAT failures with the v2 (only with formatting fix<br>
> added) while the previous patch had passing results.<br>
> Now trying to identify why the failures happened with trybot<br>
> Thanks,<br>
> Guang<br>
The tribot run my patch twice and passes the tests without any error<br>
however I'm recommended to chase down root causes of Patchwork Fi.CI.BAT<br>
test errors still - WIP on that.<br>
Thanks,<br>
Guang<br></blockquote><div><br></div><div>Gentle ping. Any good news on this?</div><div><br></div><div>Chris </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> <br>
> > <br>
> > On Thu, Oct 4, 2018 at 2:08 AM Guang Bai <<a href="mailto:guang.bai@intel.com" target="_blank">guang.bai@intel.com</a>><br>
> > wrote: <br>
> > > On some platforms, slowly unplugging (wiggling) the HDMI cable<br>
> > > makes the kernel to believe the HDMI display still connected.<br>
> > > This is because the HDMI DDC lines are disconnected sometimes<br>
> > > later after the hot-plug interrupt triggered. Use the hot plug<br>
> > > live states to honor HDMI hot plug status in addtion to access<br>
> > > the DDC channels.<br>
> > ><br>
> > > v2: Fix the formatting issue<br>
> > ><br>
> > > Cc: Jani Nikula <<a href="mailto:jani.nikula@intel.com" target="_blank">jani.nikula@intel.com</a>><br>
> > > Cc: Chris Chiu <<a href="mailto:chiu@endlessm.com" target="_blank">chiu@endlessm.com</a>><br>
> > > Signed-off-by: Guang Bai <<a href="mailto:guang.bai@intel.com" target="_blank">guang.bai@intel.com</a>><br>
> > > ---<br>
> > >  drivers/gpu/drm/i915/intel_hotplug.c | 32<br>
> > > +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+),<br>
> > > 3 deletions(-)<br>
> > ><br>
> > > diff --git a/drivers/gpu/drm/i915/intel_hotplug.c<br>
> > > b/drivers/gpu/drm/i915/intel_hotplug.c<br>
> > > index 648a13c..98ab1ab 100644<br>
> > > --- a/drivers/gpu/drm/i915/intel_hotplug.c<br>
> > > +++ b/drivers/gpu/drm/i915/intel_hotplug.c<br>
> > > @@ -246,17 +246,43 @@ static void<br>
> > > intel_hpd_irq_storm_reenable_work(struct work_struct *work)<br>
> > >         intel_runtime_pm_put(dev_priv);<br>
> > >  }<br>
> > ><br>
> > > +#define MAX_SHORT_PULSE_MS     100<br>
> > > +#define PORT_CHECK_LOOP_COUNT  3<br>
> > > +<br>
> > >  bool intel_encoder_hotplug(struct intel_encoder *encoder,<br>
> > >                            struct intel_connector *connector)<br>
> > >  {<br>
> > >         struct drm_device *dev = connector->base.dev;<br>
> > > -       enum drm_connector_status old_status;<br>
> > > +       enum drm_connector_status old_status, new_status;<br>
> > > +       enum hpd_pin pin = encoder->hpd_pin;<br>
> > > +       struct drm_i915_private *dev_priv =<br>
> > > to_i915(encoder->base.dev);<br>
> > > +       u32 count = 0;<br>
> > ><br>
> > >         WARN_ON(!mutex_is_locked(&dev->mode_config.mutex));<br>
> > >         old_status = connector->base.status;<br>
> > ><br>
> > > -       connector->base.status =<br>
> > > -               drm_helper_probe_detect(&connector->base, NULL,<br>
> > > false);<br>
> > > +       /*<br>
> > > +        * Set HDMI connection status based on hot-plug live<br>
> > > states and<br>
> > > +        * display probe results.<br>
> > > +        */<br>
> > > +       if ((encoder->type == INTEL_OUTPUT_HDMI ||<br>
> > > +            encoder->type == INTEL_OUTPUT_DDI) &&<br>
> > > +           dev_priv->hotplug.stats[pin].state == HPD_ENABLED) {<br>
> > > +               do {<br>
> > > +                       new_status =<br>
> > > connector_status_disconnected;<br>
> > > +                       msleep(MAX_SHORT_PULSE_MS);<br>
> > > +<br>
> > > +                       if (intel_digital_port_connected(encoder))<br>
> > > +                               new_status =<br>
> > > drm_helper_probe_detect(&connector->base,<br>
> > > +<br>
> > > NULL, false);<br>
> > > +                       if (new_status ==<br>
> > > connector_status_connected)<br>
> > > +                               break;<br>
> > > +               } while (++count <= PORT_CHECK_LOOP_COUNT);<br>
> > > +               connector->base.status = new_status;<br>
> > > +       } else {<br>
> > > +               connector->base.status =<br>
> > > +                       drm_helper_probe_detect(&connector->base,<br>
> > > NULL, false);<br>
> > > +       }<br>
> > ><br>
> > >         if (old_status == connector->base.status)<br>
> > >                 return false;<br>
> > > --<br>
> > > 2.7.4<br>
> > ><br>
> > >    <br>
> <br>
> _______________________________________________<br>
> Intel-gfx mailing list<br>
> <a href="mailto:Intel-gfx@lists.freedesktop.org" target="_blank">Intel-gfx@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/intel-gfx" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/intel-gfx</a><br>
<br>
</blockquote></div></div></div>