Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2019-01-04 Thread Guang Bai
On Fri, 4 Jan 2019 12:02:34 +0800
Chris Chiu  wrote:

> On Thu, Jan 3, 2019 at 1:50 AM Guang Bai  wrote:
> >
> > On Wed, 2 Jan 2019 17:29:46 +0800
> > Chris Chiu  wrote:
> >  
> > > Happy New Year.
> > > Sorry for bothering you guys again, I don't really want to make
> > > myself a nuisance.
> > > Is there any better idea for fixing this issue?  
> > I've already back ported this change into the kernel 4.18.17 and
> > sent it to our customer for integration test - So far so good.
> > Thanks,
> > -Guang  
> 
> Thanks, Guang.
> Can I expect to see it in next kernel release? Or we need to wait
> until more positive results coming?

- I'm not sure if and when my changes will pass the review and merged
  into the upstream kernel. I'm stuck on re-testing my fix with all
  those claimed failures from HDMI port live status checking happened
  sometimes before. I don't have any background info on those failures
  simply because I stepped into DRM/i915 area in recent one or two
  years after working on other OS/platform's gfx driver for more than
  two decades
- My customer can't wait for this long, endless review time-period and
  just go ahead on proactive integration testing. They'll update us the
  results in a couple of days
Thanks,
-Guang
> 
> > >
> > > Chris
> > >
> > > On Mon, Dec 3, 2018 at 6:38 PM Chris Chiu 
> > > wrote:  
> > > >
> > > > On Fri, Nov 30, 2018 at 1:15 AM Guang Bai 
> > > > wrote:  
> > > > >
> > > > > On Thu, 29 Nov 2018 10:17:49 +0200
> > > > > Jani Nikula  wrote:
> > > > >  
> > > > > > On Wed, 28 Nov 2018, Guang Bai 
> > > > > > wrote:  
> > > > > > > On some GEN9 platforms, slowly unplugging (wiggling) the
> > > > > > > HDMI cable makes the kernel to believe the HDMI display
> > > > > > > is still connected. This is because the HDMI DDC lines are
> > > > > > > disconnected a little bit later after the hot-plug
> > > > > > > interrupt triggered thus an immediate edid fetch can be
> > > > > > > made. This problem has been identified by more than one
> > > > > > > customer recently. Use digital port live states to
> > > > > > > authorize the edid read at HDMI detection point will
> > > > > > > ensure most of the display related software states
> > > > > > > updated and rest of them will be renewed accordingly when
> > > > > > > the port is connected.
> > > > > > >
> > > > > > > v2: Fix the formatting issue
> > > > > > > v3: Use digital port states to authorize the edid read
> > > > > > > v4: Add comments on issue histories and rationale of the
> > > > > > > fix (Chris W)  
> > > > > >
> > > > > > You're not answering Chris Wilson's question.
> > > > > >
> > > > > > Why do you think the problems we've historically had with
> > > > > > live status are no longer a problem? We've tried and
> > > > > > reverted live status checks at least twice before because
> > > > > > of regressions. Why do you think this time there won't be
> > > > > > regressions? Why do you think this patch makes forward
> > > > > > progress?  
> > > > > Jani,
> > > > > I'm still new to kernel developments compared with all of you
> > > > > working in this area for many years - Haven't got any
> > > > > feedbacks on how exactly the HDMI live statue *not* fit for
> > > > > HDMI hot-plug related port status checking, neither had time
> > > > > to track all upstream bugzilla, plus not working directly
> > > > > with Intel OTC teams
> > > > > - What are those failing cases/regressions you mentioned
> > > > > above?
> > > > > - what were the kernel versions related with those
> > > > > developments?
> > > > > - Given the fact i915 architecture and implementation are
> > > > > constantly evolving - Should we re-visit those issues with
> > > > > current kernel implementation?
> > > > > - Fundamentally, do you think the edid fetch is still *valid*
> > > > > when the HDMI is unplugged (status either from PCH or DE)? Or
> > > > > other platform configurations may present more complexities
> > > > > such as kvm switches are used along with HDMI?
> > > > > Again, if you could provide me more historical issue details,
> > > > > I'd like to have some reviews/re-investigation for those
> > > > > cases with current 4.20 kernel.
> > > > > Thanks,
> > > > > -Guang  
> > > >
> > > > Hi Jani,
> > > > I don't know the history and what kind of painful regression
> > > > that you had run into. Could you maybe provide a test plan or
> > > > some test cases for the regression verification? I can follow
> > > > steps to try to verify whether if the patch can work on all
> > > > cases.
> > > >
> > > > Chris
> > > >  
> > > > > >
> > > > > > I've *repeatedly* said from the beginning that I am very
> > > > > > sceptical of using live status because we've been burned by
> > > > > > it so many times before. I don't much care to repeat this
> > > > > > anymore.
> > > > > >
> > > > > >
> > > > > > BR,
> > > > > > Jani.
> > > > > >
> > > > > >  
> > > > > > >
> > > > > > > Cc: Jani Nikula 
> > > > > > > Cc: Chris Chiu 
> > > > > > > Cc: Chris Wilson 

Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2019-01-03 Thread Chris Chiu
On Thu, Jan 3, 2019 at 1:50 AM Guang Bai  wrote:
>
> On Wed, 2 Jan 2019 17:29:46 +0800
> Chris Chiu  wrote:
>
> > Happy New Year.
> > Sorry for bothering you guys again, I don't really want to make myself
> > a nuisance.
> > Is there any better idea for fixing this issue?
> I've already back ported this change into the kernel 4.18.17 and sent
> it to our customer for integration test - So far so good.
> Thanks,
> -Guang

Thanks, Guang.
Can I expect to see it in next kernel release? Or we need to wait until more
positive results coming?

> >
> > Chris
> >
> > On Mon, Dec 3, 2018 at 6:38 PM Chris Chiu  wrote:
> > >
> > > On Fri, Nov 30, 2018 at 1:15 AM Guang Bai 
> > > wrote:
> > > >
> > > > On Thu, 29 Nov 2018 10:17:49 +0200
> > > > Jani Nikula  wrote:
> > > >
> > > > > On Wed, 28 Nov 2018, Guang Bai  wrote:
> > > > > > On some GEN9 platforms, slowly unplugging (wiggling) the HDMI
> > > > > > cable makes the kernel to believe the HDMI display is still
> > > > > > connected. This is because the HDMI DDC lines are
> > > > > > disconnected a little bit later after the hot-plug interrupt
> > > > > > triggered thus an immediate edid fetch can be made. This
> > > > > > problem has been identified by more than one customer
> > > > > > recently. Use digital port live states to authorize the edid
> > > > > > read at HDMI detection point will ensure most of the display
> > > > > > related software states updated and rest of them will be
> > > > > > renewed accordingly when the port is connected.
> > > > > >
> > > > > > v2: Fix the formatting issue
> > > > > > v3: Use digital port states to authorize the edid read
> > > > > > v4: Add comments on issue histories and rationale of the fix
> > > > > > (Chris W)
> > > > >
> > > > > You're not answering Chris Wilson's question.
> > > > >
> > > > > Why do you think the problems we've historically had with live
> > > > > status are no longer a problem? We've tried and reverted live
> > > > > status checks at least twice before because of regressions. Why
> > > > > do you think this time there won't be regressions? Why do you
> > > > > think this patch makes forward progress?
> > > > Jani,
> > > > I'm still new to kernel developments compared with all of you
> > > > working in this area for many years - Haven't got any feedbacks
> > > > on how exactly the HDMI live statue *not* fit for HDMI hot-plug
> > > > related port status checking, neither had time to track all
> > > > upstream bugzilla, plus not working directly with Intel OTC teams
> > > > - What are those failing cases/regressions you mentioned above?
> > > > - what were the kernel versions related with those developments?
> > > > - Given the fact i915 architecture and implementation are
> > > > constantly evolving - Should we re-visit those issues with
> > > > current kernel implementation?
> > > > - Fundamentally, do you think the edid fetch is still *valid*
> > > > when the HDMI is unplugged (status either from PCH or DE)? Or
> > > > other platform configurations may present more complexities such
> > > > as kvm switches are used along with HDMI?
> > > > Again, if you could provide me more historical issue details, I'd
> > > > like to have some reviews/re-investigation for those cases with
> > > > current 4.20 kernel.
> > > > Thanks,
> > > > -Guang
> > >
> > > Hi Jani,
> > > I don't know the history and what kind of painful regression
> > > that you had run into. Could you maybe provide a test plan or some
> > > test cases for the regression verification? I can follow steps to
> > > try to verify whether if the patch can work on all cases.
> > >
> > > Chris
> > >
> > > > >
> > > > > I've *repeatedly* said from the beginning that I am very
> > > > > sceptical of using live status because we've been burned by it
> > > > > so many times before. I don't much care to repeat this anymore.
> > > > >
> > > > >
> > > > > BR,
> > > > > Jani.
> > > > >
> > > > >
> > > > > >
> > > > > > Cc: Jani Nikula 
> > > > > > Cc: Chris Chiu 
> > > > > > Cc: Chris Wilson 
> > > > > > Signed-off-by: Guang Bai 
> > > > > > ---
> > > > > >  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
> > > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > >
> > > > > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c
> > > > > > b/drivers/gpu/drm/i915/intel_hdmi.c index e2c6a2b..8cf7c78
> > > > > > 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > > > > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > > > > > @@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector
> > > > > > *connector, bool force)
> > > > > > intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
> > > > > >
> > > > > > -   if (IS_ICELAKE(dev_priv) &&
> > > > > > +   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
> > > > > > !intel_digital_port_connected(encoder))
> > > > > > goto out;
> > > > >
> > > >
>
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org

Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2019-01-02 Thread Guang Bai
On Wed, 2 Jan 2019 17:29:46 +0800
Chris Chiu  wrote:

> Happy New Year.
> Sorry for bothering you guys again, I don't really want to make myself
> a nuisance.
> Is there any better idea for fixing this issue?
I've already back ported this change into the kernel 4.18.17 and sent
it to our customer for integration test - So far so good.
Thanks,
-Guang
> 
> Chris
> 
> On Mon, Dec 3, 2018 at 6:38 PM Chris Chiu  wrote:
> >
> > On Fri, Nov 30, 2018 at 1:15 AM Guang Bai 
> > wrote:  
> > >
> > > On Thu, 29 Nov 2018 10:17:49 +0200
> > > Jani Nikula  wrote:
> > >  
> > > > On Wed, 28 Nov 2018, Guang Bai  wrote:  
> > > > > On some GEN9 platforms, slowly unplugging (wiggling) the HDMI
> > > > > cable makes the kernel to believe the HDMI display is still
> > > > > connected. This is because the HDMI DDC lines are
> > > > > disconnected a little bit later after the hot-plug interrupt
> > > > > triggered thus an immediate edid fetch can be made. This
> > > > > problem has been identified by more than one customer
> > > > > recently. Use digital port live states to authorize the edid
> > > > > read at HDMI detection point will ensure most of the display
> > > > > related software states updated and rest of them will be
> > > > > renewed accordingly when the port is connected.
> > > > >
> > > > > v2: Fix the formatting issue
> > > > > v3: Use digital port states to authorize the edid read
> > > > > v4: Add comments on issue histories and rationale of the fix
> > > > > (Chris W)  
> > > >
> > > > You're not answering Chris Wilson's question.
> > > >
> > > > Why do you think the problems we've historically had with live
> > > > status are no longer a problem? We've tried and reverted live
> > > > status checks at least twice before because of regressions. Why
> > > > do you think this time there won't be regressions? Why do you
> > > > think this patch makes forward progress?  
> > > Jani,
> > > I'm still new to kernel developments compared with all of you
> > > working in this area for many years - Haven't got any feedbacks
> > > on how exactly the HDMI live statue *not* fit for HDMI hot-plug
> > > related port status checking, neither had time to track all
> > > upstream bugzilla, plus not working directly with Intel OTC teams
> > > - What are those failing cases/regressions you mentioned above?
> > > - what were the kernel versions related with those developments?
> > > - Given the fact i915 architecture and implementation are
> > > constantly evolving - Should we re-visit those issues with
> > > current kernel implementation?
> > > - Fundamentally, do you think the edid fetch is still *valid*
> > > when the HDMI is unplugged (status either from PCH or DE)? Or
> > > other platform configurations may present more complexities such
> > > as kvm switches are used along with HDMI?
> > > Again, if you could provide me more historical issue details, I'd
> > > like to have some reviews/re-investigation for those cases with
> > > current 4.20 kernel.
> > > Thanks,
> > > -Guang  
> >
> > Hi Jani,
> > I don't know the history and what kind of painful regression
> > that you had run into. Could you maybe provide a test plan or some
> > test cases for the regression verification? I can follow steps to
> > try to verify whether if the patch can work on all cases.
> >
> > Chris
> >  
> > > >
> > > > I've *repeatedly* said from the beginning that I am very
> > > > sceptical of using live status because we've been burned by it
> > > > so many times before. I don't much care to repeat this anymore.
> > > >
> > > >
> > > > BR,
> > > > Jani.
> > > >
> > > >  
> > > > >
> > > > > Cc: Jani Nikula 
> > > > > Cc: Chris Chiu 
> > > > > Cc: Chris Wilson 
> > > > > Signed-off-by: Guang Bai 
> > > > > ---
> > > > >  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
> > > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c
> > > > > b/drivers/gpu/drm/i915/intel_hdmi.c index e2c6a2b..8cf7c78
> > > > > 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > > > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > > > > @@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector
> > > > > *connector, bool force)
> > > > > intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
> > > > >
> > > > > -   if (IS_ICELAKE(dev_priv) &&
> > > > > +   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
> > > > > !intel_digital_port_connected(encoder))
> > > > > goto out;  
> > > >  
> > >  

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2019-01-02 Thread Chris Chiu
Happy New Year.
Sorry for bothering you guys again, I don't really want to make myself
a nuisance.
Is there any better idea for fixing this issue?

Chris

On Mon, Dec 3, 2018 at 6:38 PM Chris Chiu  wrote:
>
> On Fri, Nov 30, 2018 at 1:15 AM Guang Bai  wrote:
> >
> > On Thu, 29 Nov 2018 10:17:49 +0200
> > Jani Nikula  wrote:
> >
> > > On Wed, 28 Nov 2018, Guang Bai  wrote:
> > > > On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable
> > > > makes the kernel to believe the HDMI display is still connected.
> > > > This is because the HDMI DDC lines are disconnected a little bit
> > > > later after the hot-plug interrupt triggered thus an immediate edid
> > > > fetch can be made. This problem has been identified by more than
> > > > one customer recently. Use digital port live states to authorize
> > > > the edid read at HDMI detection point will ensure most of the
> > > > display related software states updated and rest of them will be
> > > > renewed accordingly when the port is connected.
> > > >
> > > > v2: Fix the formatting issue
> > > > v3: Use digital port states to authorize the edid read
> > > > v4: Add comments on issue histories and rationale of the fix (Chris
> > > > W)
> > >
> > > You're not answering Chris Wilson's question.
> > >
> > > Why do you think the problems we've historically had with live status
> > > are no longer a problem? We've tried and reverted live status checks
> > > at least twice before because of regressions. Why do you think this
> > > time there won't be regressions? Why do you think this patch makes
> > > forward progress?
> > Jani,
> > I'm still new to kernel developments compared with all of you working
> > in this area for many years - Haven't got any feedbacks on how
> > exactly the HDMI live statue *not* fit for HDMI hot-plug related port
> > status checking, neither had time to track all upstream bugzilla, plus
> > not working directly with Intel OTC teams
> > - What are those failing cases/regressions you mentioned above?
> > - what were the kernel versions related with those developments?
> > - Given the fact i915 architecture and implementation are constantly
> >   evolving - Should we re-visit those issues with current kernel
> >   implementation?
> > - Fundamentally, do you think the edid fetch is still *valid* when the
> >   HDMI is unplugged (status either from PCH or DE)? Or other platform
> >   configurations may present more complexities such as kvm switches are
> >   used along with HDMI?
> > Again, if you could provide me more historical issue details, I'd like
> > to have some reviews/re-investigation for those cases with current 4.20
> > kernel.
> > Thanks,
> > -Guang
>
> Hi Jani,
> I don't know the history and what kind of painful regression that you
> had run into. Could you maybe provide a test plan or some test cases
> for the regression verification? I can follow steps to try to verify whether
> if the patch can work on all cases.
>
> Chris
>
> > >
> > > I've *repeatedly* said from the beginning that I am very sceptical of
> > > using live status because we've been burned by it so many times
> > > before. I don't much care to repeat this anymore.
> > >
> > >
> > > BR,
> > > Jani.
> > >
> > >
> > > >
> > > > Cc: Jani Nikula 
> > > > Cc: Chris Chiu 
> > > > Cc: Chris Wilson 
> > > > Signed-off-by: Guang Bai 
> > > > ---
> > > >  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
> > > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c
> > > > b/drivers/gpu/drm/i915/intel_hdmi.c index e2c6a2b..8cf7c78 100644
> > > > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > > > @@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector
> > > > *connector, bool force)
> > > > intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
> > > >
> > > > -   if (IS_ICELAKE(dev_priv) &&
> > > > +   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
> > > > !intel_digital_port_connected(encoder))
> > > > goto out;
> > >
> >
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2018-12-03 Thread Chris Chiu
On Fri, Nov 30, 2018 at 1:15 AM Guang Bai  wrote:
>
> On Thu, 29 Nov 2018 10:17:49 +0200
> Jani Nikula  wrote:
>
> > On Wed, 28 Nov 2018, Guang Bai  wrote:
> > > On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable
> > > makes the kernel to believe the HDMI display is still connected.
> > > This is because the HDMI DDC lines are disconnected a little bit
> > > later after the hot-plug interrupt triggered thus an immediate edid
> > > fetch can be made. This problem has been identified by more than
> > > one customer recently. Use digital port live states to authorize
> > > the edid read at HDMI detection point will ensure most of the
> > > display related software states updated and rest of them will be
> > > renewed accordingly when the port is connected.
> > >
> > > v2: Fix the formatting issue
> > > v3: Use digital port states to authorize the edid read
> > > v4: Add comments on issue histories and rationale of the fix (Chris
> > > W)
> >
> > You're not answering Chris Wilson's question.
> >
> > Why do you think the problems we've historically had with live status
> > are no longer a problem? We've tried and reverted live status checks
> > at least twice before because of regressions. Why do you think this
> > time there won't be regressions? Why do you think this patch makes
> > forward progress?
> Jani,
> I'm still new to kernel developments compared with all of you working
> in this area for many years - Haven't got any feedbacks on how
> exactly the HDMI live statue *not* fit for HDMI hot-plug related port
> status checking, neither had time to track all upstream bugzilla, plus
> not working directly with Intel OTC teams
> - What are those failing cases/regressions you mentioned above?
> - what were the kernel versions related with those developments?
> - Given the fact i915 architecture and implementation are constantly
>   evolving - Should we re-visit those issues with current kernel
>   implementation?
> - Fundamentally, do you think the edid fetch is still *valid* when the
>   HDMI is unplugged (status either from PCH or DE)? Or other platform
>   configurations may present more complexities such as kvm switches are
>   used along with HDMI?
> Again, if you could provide me more historical issue details, I'd like
> to have some reviews/re-investigation for those cases with current 4.20
> kernel.
> Thanks,
> -Guang

Hi Jani,
I don't know the history and what kind of painful regression that you
had run into. Could you maybe provide a test plan or some test cases
for the regression verification? I can follow steps to try to verify whether
if the patch can work on all cases.

Chris

> >
> > I've *repeatedly* said from the beginning that I am very sceptical of
> > using live status because we've been burned by it so many times
> > before. I don't much care to repeat this anymore.
> >
> >
> > BR,
> > Jani.
> >
> >
> > >
> > > Cc: Jani Nikula 
> > > Cc: Chris Chiu 
> > > Cc: Chris Wilson 
> > > Signed-off-by: Guang Bai 
> > > ---
> > >  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c
> > > b/drivers/gpu/drm/i915/intel_hdmi.c index e2c6a2b..8cf7c78 100644
> > > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > > @@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector
> > > *connector, bool force)
> > > intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
> > >
> > > -   if (IS_ICELAKE(dev_priv) &&
> > > +   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
> > > !intel_digital_port_connected(encoder))
> > > goto out;
> >
>
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2018-11-29 Thread Guang Bai
On Thu, 29 Nov 2018 10:17:49 +0200
Jani Nikula  wrote:

> On Wed, 28 Nov 2018, Guang Bai  wrote:
> > On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable
> > makes the kernel to believe the HDMI display is still connected.
> > This is because the HDMI DDC lines are disconnected a little bit
> > later after the hot-plug interrupt triggered thus an immediate edid
> > fetch can be made. This problem has been identified by more than
> > one customer recently. Use digital port live states to authorize
> > the edid read at HDMI detection point will ensure most of the
> > display related software states updated and rest of them will be
> > renewed accordingly when the port is connected.
> >
> > v2: Fix the formatting issue
> > v3: Use digital port states to authorize the edid read
> > v4: Add comments on issue histories and rationale of the fix (Chris
> > W)  
> 
> You're not answering Chris Wilson's question.
> 
> Why do you think the problems we've historically had with live status
> are no longer a problem? We've tried and reverted live status checks
> at least twice before because of regressions. Why do you think this
> time there won't be regressions? Why do you think this patch makes
> forward progress?
Jani,
I'm still new to kernel developments compared with all of you working
in this area for many years - Haven't got any feedbacks on how
exactly the HDMI live statue *not* fit for HDMI hot-plug related port
status checking, neither had time to track all upstream bugzilla, plus
not working directly with Intel OTC teams
- What are those failing cases/regressions you mentioned above?
- what were the kernel versions related with those developments?
- Given the fact i915 architecture and implementation are constantly
  evolving - Should we re-visit those issues with current kernel
  implementation?
- Fundamentally, do you think the edid fetch is still *valid* when the
  HDMI is unplugged (status either from PCH or DE)? Or other platform
  configurations may present more complexities such as kvm switches are
  used along with HDMI?
Again, if you could provide me more historical issue details, I'd like
to have some reviews/re-investigation for those cases with current 4.20
kernel.
Thanks,
-Guang
> 
> I've *repeatedly* said from the beginning that I am very sceptical of
> using live status because we've been burned by it so many times
> before. I don't much care to repeat this anymore.
> 
> 
> BR,
> Jani.
> 
> 
> >
> > Cc: Jani Nikula 
> > Cc: Chris Chiu 
> > Cc: Chris Wilson 
> > Signed-off-by: Guang Bai 
> > ---
> >  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c
> > b/drivers/gpu/drm/i915/intel_hdmi.c index e2c6a2b..8cf7c78 100644
> > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > @@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector
> > *connector, bool force) 
> > intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
> >  
> > -   if (IS_ICELAKE(dev_priv) &&
> > +   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
> > !intel_digital_port_connected(encoder))
> > goto out;  
> 

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2018-11-29 Thread Chris Chiu
On Thu, Nov 29, 2018 at 9:52 AM Guang Bai  wrote:

> On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable makes
> the kernel to believe the HDMI display is still connected. This is because
> the HDMI DDC lines are disconnected a little bit later after the hot-plug
> interrupt triggered thus an immediate edid fetch can be made. This problem
> has been identified by more than one customer recently. Use digital
> port live states to authorize the edid read at HDMI detection point will
> ensure most of the display related software states updated and rest of them
> will be renewed accordingly when the port is connected.
>
> v2: Fix the formatting issue
> v3: Use digital port states to authorize the edid read
> v4: Add comments on issue histories and rationale of the fix (Chris W)
>
> Cc: Jani Nikula 
> Cc: Chris Chiu 
> Cc: Chris Wilson 
> Signed-off-by: Guang Bai 
> ---
>  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c
> b/drivers/gpu/drm/i915/intel_hdmi.c
> index e2c6a2b..8cf7c78 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector *connector,
> bool force)
>
> intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
>
> -   if (IS_ICELAKE(dev_priv) &&
> +   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
> !intel_digital_port_connected(encoder))
> goto out;
>
> --
> 2.7.4
>
>
I've tried on my problematic ASUS X705FD, seems no problem on my test
scenarios (100% pass). I can reproduce with very slow unplug on previous
versions but can't reproduce anymore on this one. I tried slow unplgug with
few finds of HDMI jack I have in hand, it responds as expected.

Don't know if there's any tough test case I should try, but I think it
pretty
much solve the problem. Thanks.

Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2018-11-29 Thread Jani Nikula
On Wed, 28 Nov 2018, Guang Bai  wrote:
> On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable makes
> the kernel to believe the HDMI display is still connected. This is because
> the HDMI DDC lines are disconnected a little bit later after the hot-plug
> interrupt triggered thus an immediate edid fetch can be made. This problem
> has been identified by more than one customer recently. Use digital
> port live states to authorize the edid read at HDMI detection point will
> ensure most of the display related software states updated and rest of them
> will be renewed accordingly when the port is connected.
>
> v2: Fix the formatting issue
> v3: Use digital port states to authorize the edid read
> v4: Add comments on issue histories and rationale of the fix (Chris W)

You're not answering Chris Wilson's question.

Why do you think the problems we've historically had with live status
are no longer a problem? We've tried and reverted live status checks at
least twice before because of regressions. Why do you think this time
there won't be regressions? Why do you think this patch makes forward
progress?

I've *repeatedly* said from the beginning that I am very sceptical of
using live status because we've been burned by it so many times
before. I don't much care to repeat this anymore.


BR,
Jani.


>
> Cc: Jani Nikula 
> Cc: Chris Chiu 
> Cc: Chris Wilson 
> Signed-off-by: Guang Bai 
> ---
>  drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
> b/drivers/gpu/drm/i915/intel_hdmi.c
> index e2c6a2b..8cf7c78 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool 
> force)
>  
>   intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
>  
> - if (IS_ICELAKE(dev_priv) &&
> + if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
>   !intel_digital_port_connected(encoder))
>   goto out;

-- 
Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v4)

2018-11-28 Thread Guang Bai
On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable makes
the kernel to believe the HDMI display is still connected. This is because
the HDMI DDC lines are disconnected a little bit later after the hot-plug
interrupt triggered thus an immediate edid fetch can be made. This problem
has been identified by more than one customer recently. Use digital
port live states to authorize the edid read at HDMI detection point will
ensure most of the display related software states updated and rest of them
will be renewed accordingly when the port is connected.

v2: Fix the formatting issue
v3: Use digital port states to authorize the edid read
v4: Add comments on issue histories and rationale of the fix (Chris W)

Cc: Jani Nikula 
Cc: Chris Chiu 
Cc: Chris Wilson 
Signed-off-by: Guang Bai 
---
 drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index e2c6a2b..8cf7c78 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool 
force)
 
intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-   if (IS_ICELAKE(dev_priv) &&
+   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
!intel_digital_port_connected(encoder))
goto out;
 
-- 
2.7.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-11-28 Thread Guang Bai
On Tue, 13 Nov 2018 13:07:46 +0200
Jani Nikula  wrote:

> On Mon, 12 Nov 2018, Guang Bai  wrote:
> > Actually I'm still working on it right now with
> > DRM_MODE_CONNECTOR_HDMIA/HDMIB, recommended by James, I'm able to
> > differentiate the HDMI or DP even the encoder type is the
> > "INTEL_OUTPUT_DDI", I still have the "trybot" intermittent test
> > failures with new DRM connector types. Even worse, there is phantom
> > "intel_encoder_hotplug()" call following the correct one:
> > When connecting both DP and HDMI on the platform, unplug the DP, the
> > "i915_hotplug_work_func()" first calls the "intel_encoder_hotplug()"
> > with DP encoder, then calls again with HDMI encoder.
> > I haven't identified if the work function get queued twice or itself
> > is incorrectly identifying wrong encoder hotplut status. Will try to
> > get everything cleaned up ASAP.  
> 
> Frankly I liked the simplicity of [1] over the patch in this thread.
> It fixed the real-world use case Chris Chiu has, but I understand
> that it still failed the slow unplug HDMI test case you have. The
> problem is, we have zero visibility to the test case you have. Is it
> automated or manual? Can we see the specs or source code for the test
> case?
> 
> If we have to consider the live status unreliable, it's possible to
> devise a pathological test case that will always fail, regardless of
> what we do in the driver. Does the test case reflect real world usage?
> 
> Also Cc: Ville for input.
> 
> BR,
> Jani.
> 
Hi Jani, Ville & Chris (Chiu):
Sorry for the late reply as I have beening bumping around different
projects and also spent sometime to investigate [v2] failures with
testing the codes on trybot
1. My testcase: I have one+ customer KBL laptop and uBuntu16.04
running, slowly unplug the HDMI cable (wiggling), the issue can be
reproduced very easily - Just check kernel HDMI-A-1 connecting states
2. I belive Chris is using roughly the same test case?
3. I don't like the [v2] solution either since it's *not* clean and
have intermittent trybot/patchwork failures
4. with latest drm-tip codes, I'm able to workout a very clean solution
[v3] today and it passes the patchwork tests - Would you like to try it
out and also review the change?
Thanks,
Guang
> 
> 
> [1]
> http://patchwork.freedesktop.org/patch/msgid/20180925071836.24711-1-jani.nik...@intel.com
> 
> 

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v3)

2018-11-28 Thread Chris Wilson
Quoting Guang Bai (2018-11-28 21:18:13)
> On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable makes
> the kernel to believe the HDMI display is still connected. This is because
> the HDMI DDC lines are disconnected a little bit later after the hot-plug
> interrupt triggered thus an immediate edid fetch can be made. Use digital
> port live states to authorize the edid read.

You should at least comment upon why we don't historically do this and
why you now believe that it is safe.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v3)

2018-11-28 Thread Guang Bai
On some GEN9 platforms, slowly unplugging (wiggling) the HDMI cable makes
the kernel to believe the HDMI display is still connected. This is because
the HDMI DDC lines are disconnected a little bit later after the hot-plug
interrupt triggered thus an immediate edid fetch can be made. Use digital
port live states to authorize the edid read.

v2: Fix the formatting issue
v3: Use digital port states to authorize the edid read

Cc: Jani Nikula 
Cc: Chris Chiu 
Signed-off-by: Guang Bai 
---
 drivers/gpu/drm/i915/intel_hdmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_hdmi.c 
b/drivers/gpu/drm/i915/intel_hdmi.c
index e2c6a2b3e8f2..8cf7c78b8cdd 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1929,7 +1929,7 @@ intel_hdmi_detect(struct drm_connector *connector, bool 
force)
 
intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
 
-   if (IS_ICELAKE(dev_priv) &&
+   if ((IS_ICELAKE(dev_priv) || IS_GEN9_BC(dev_priv)) &&
!intel_digital_port_connected(encoder))
goto out;
 
-- 
2.17.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-11-19 Thread Chris Chiu
On Tue, Nov 13, 2018 at 1:18 PM Guang Bai  wrote:

> On Tue, 13 Nov 2018 09:04:37 +0800
> Chris Chiu  wrote:
>
> > Gentle ping. Just want to know if you have time for this so far.
> > Thanks
> >
> > Chris
> Actually I'm still working on it right now with
> DRM_MODE_CONNECTOR_HDMIA/HDMIB, recommended by James, I'm able to
> differentiate the HDMI or DP even the encoder type is the
> "INTEL_OUTPUT_DDI", I still have the "trybot" intermittent test failures
> with new DRM connector types. Even worse, there is phantom
> "intel_encoder_hotplug()" call following the correct one:
> When connecting both DP and HDMI on the platform, unplug the DP, the
> "i915_hotplug_work_func()" first calls the "intel_encoder_hotplug()"
> with DP encoder, then calls again with HDMI encoder.
> I haven't identified if the work function get queued twice or itself
> is incorrectly identifying wrong encoder hotplut status. Will try to
> get everything cleaned up ASAP.
> Thanks,
> Guang
> >
> >


Anything I can help? Maybe test in a more complicated use case? I have lots
of different laptops/AIOs/Desktops if you need.

Chris


> On Tue, Oct 30, 2018 at 1:24 AM Guang Bai  wrote:
> >
> > > On Tue, 23 Oct 2018 17:14:34 +0800
> > > Chris Chiu  wrote:
> > >
> > > > On Thu, Oct 11, 2018 at 2:04 AM Guang Bai 
> > > > wrote:
> > > > > On Mon, 8 Oct 2018 08:56:20 -0700
> > > > > Guang Bai  wrote:
> > > > >
> > > > > > On Mon, 8 Oct 2018 22:35:34 +0800
> > > > > > Chris Chiu  wrote:
> > > > > >
> > > > > > > Thanks! I have no problem with this patch.
> > > > > >
> > > > > > There are Fi.CI.BAT failures with the v2 (only with
> > > > > > formatting fix added) while the previous patch had passing
> > > > > > results. Now trying to identify why the failures happened
> > > > > > with trybot Thanks,
> > > > > > Guang
> > > > > The tribot run my patch twice and passes the tests without any
> > > > > error however I'm recommended to chase down root causes of
> > > > > Patchwork Fi.CI.BAT test errors still - WIP on that.
> > > > > Thanks,
> > > > > Guang
> > > > >
> > > >
> > > > Gentle ping. Any good news on this?
> > > >
> > > > Chris
> > > >
> > > Sorry...was distracted by other dev taks...will get update ASAP.
> > > -Guang
> > > >
> > > > > >
> > > > > > >
> > > > > > > On Thu, Oct 4, 2018 at 2:08 AM Guang Bai
> > > > > > >  wrote:
> > > > > > > > On some platforms, slowly unplugging (wiggling) the HDMI
> > > > > > > > cable makes the kernel to believe the HDMI display still
> > > > > > > > connected. This is because the HDMI DDC lines are
> > > > > > > > disconnected sometimes later after the hot-plug interrupt
> > > > > > > > triggered. Use the hot plug live states to honor HDMI hot
> > > > > > > > plug status in addtion to access the DDC channels.
> > > > > > > >
> > > > > > > > v2: Fix the formatting issue
> > > > > > > >
> > > > > > > > Cc: Jani Nikula 
> > > > > > > > Cc: Chris Chiu 
> > > > > > > > Signed-off-by: Guang Bai 
> > > > > > > > ---
> > > > > > > >  drivers/gpu/drm/i915/intel_hotplug.c | 32
> > > > > > > > +--- 1 file changed, 29
> > > > > > > > insertions(+), 3 deletions(-)
> > > > > > > >
> > > > > > > > diff --git a/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > > b/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > > index 648a13c..98ab1ab 100644
> > > > > > > > --- a/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > > +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > > @@ -246,17 +246,43 @@ static void
> > > > > > > > intel_hpd_irq_storm_reenable_work(struct work_struct
> > > > > > > > *work) intel_runtime_pm_put(dev_priv);
> > > > > > > >  }
> > > > > > > >
> > > > > > > > +#define MAX_SHORT_PULSE_MS 100
> > > > > > > > +#define PORT_CHECK_LOOP_COUNT  3
> > > > > > > > +
> > > > > > > >  bool intel_encoder_hotplug(struct intel_encoder *encoder,
> > > > > > > >struct intel_connector
> > > > > > > > *connector) {
> > > > > > > > struct drm_device *dev = connector->base.dev;
> > > > > > > > -   enum drm_connector_status old_status;
> > > > > > > > +   enum drm_connector_status old_status, new_status;
> > > > > > > > +   enum hpd_pin pin = encoder->hpd_pin;
> > > > > > > > +   struct drm_i915_private *dev_priv =
> > > > > > > > to_i915(encoder->base.dev);
> > > > > > > > +   u32 count = 0;
> > > > > > > >
> > > > > > > > WARN_ON(!mutex_is_locked(>mode_config.mutex));
> > > > > > > > old_status = connector->base.status;
> > > > > > > >
> > > > > > > > -   connector->base.status =
> > > > > > > > -   drm_helper_probe_detect(>base,
> > > > > > > > NULL, false);
> > > > > > > > +   /*
> > > > > > > > +* Set HDMI connection status based on hot-plug
> > > > > > > > live states and
> > > > > > > > +* display probe results.
> > > > > > > > +*/
> > > > > > > > +   if ((encoder->type == INTEL_OUTPUT_HDMI ||
> > > > > > > > +encoder->type == INTEL_OUTPUT_DDI) &&
> > > 

Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-11-13 Thread Jani Nikula
On Mon, 12 Nov 2018, Guang Bai  wrote:
> Actually I'm still working on it right now with
> DRM_MODE_CONNECTOR_HDMIA/HDMIB, recommended by James, I'm able to
> differentiate the HDMI or DP even the encoder type is the
> "INTEL_OUTPUT_DDI", I still have the "trybot" intermittent test failures
> with new DRM connector types. Even worse, there is phantom
> "intel_encoder_hotplug()" call following the correct one:
> When connecting both DP and HDMI on the platform, unplug the DP, the
> "i915_hotplug_work_func()" first calls the "intel_encoder_hotplug()"
> with DP encoder, then calls again with HDMI encoder.
> I haven't identified if the work function get queued twice or itself
> is incorrectly identifying wrong encoder hotplut status. Will try to
> get everything cleaned up ASAP.

Frankly I liked the simplicity of [1] over the patch in this thread. It
fixed the real-world use case Chris Chiu has, but I understand that it
still failed the slow unplug HDMI test case you have. The problem is, we
have zero visibility to the test case you have. Is it automated or
manual? Can we see the specs or source code for the test case?

If we have to consider the live status unreliable, it's possible to
devise a pathological test case that will always fail, regardless of
what we do in the driver. Does the test case reflect real world usage?

Also Cc: Ville for input.

BR,
Jani.



[1] 
http://patchwork.freedesktop.org/patch/msgid/20180925071836.24711-1-jani.nik...@intel.com


-- 
Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-11-12 Thread Guang Bai
On Tue, 13 Nov 2018 09:04:37 +0800
Chris Chiu  wrote:

> Gentle ping. Just want to know if you have time for this so far.
> Thanks
> 
> Chris
Actually I'm still working on it right now with
DRM_MODE_CONNECTOR_HDMIA/HDMIB, recommended by James, I'm able to
differentiate the HDMI or DP even the encoder type is the
"INTEL_OUTPUT_DDI", I still have the "trybot" intermittent test failures
with new DRM connector types. Even worse, there is phantom
"intel_encoder_hotplug()" call following the correct one:
When connecting both DP and HDMI on the platform, unplug the DP, the
"i915_hotplug_work_func()" first calls the "intel_encoder_hotplug()"
with DP encoder, then calls again with HDMI encoder.
I haven't identified if the work function get queued twice or itself
is incorrectly identifying wrong encoder hotplut status. Will try to
get everything cleaned up ASAP.
Thanks,
Guang
> 
> On Tue, Oct 30, 2018 at 1:24 AM Guang Bai  wrote:
> 
> > On Tue, 23 Oct 2018 17:14:34 +0800
> > Chris Chiu  wrote:
> >  
> > > On Thu, Oct 11, 2018 at 2:04 AM Guang Bai 
> > > wrote: 
> > > > On Mon, 8 Oct 2018 08:56:20 -0700
> > > > Guang Bai  wrote:
> > > >  
> > > > > On Mon, 8 Oct 2018 22:35:34 +0800
> > > > > Chris Chiu  wrote:
> > > > >  
> > > > > > Thanks! I have no problem with this patch.  
> > > > >
> > > > > There are Fi.CI.BAT failures with the v2 (only with
> > > > > formatting fix added) while the previous patch had passing
> > > > > results. Now trying to identify why the failures happened
> > > > > with trybot Thanks,
> > > > > Guang  
> > > > The tribot run my patch twice and passes the tests without any
> > > > error however I'm recommended to chase down root causes of
> > > > Patchwork Fi.CI.BAT test errors still - WIP on that.
> > > > Thanks,
> > > > Guang
> > > >  
> > >
> > > Gentle ping. Any good news on this?
> > >
> > > Chris
> > >  
> > Sorry...was distracted by other dev taks...will get update ASAP.
> > -Guang  
> > >  
> > > > >  
> > > > > >
> > > > > > On Thu, Oct 4, 2018 at 2:08 AM Guang Bai
> > > > > >  wrote:  
> > > > > > > On some platforms, slowly unplugging (wiggling) the HDMI
> > > > > > > cable makes the kernel to believe the HDMI display still
> > > > > > > connected. This is because the HDMI DDC lines are
> > > > > > > disconnected sometimes later after the hot-plug interrupt
> > > > > > > triggered. Use the hot plug live states to honor HDMI hot
> > > > > > > plug status in addtion to access the DDC channels.
> > > > > > >
> > > > > > > v2: Fix the formatting issue
> > > > > > >
> > > > > > > Cc: Jani Nikula 
> > > > > > > Cc: Chris Chiu 
> > > > > > > Signed-off-by: Guang Bai 
> > > > > > > ---
> > > > > > >  drivers/gpu/drm/i915/intel_hotplug.c | 32
> > > > > > > +--- 1 file changed, 29
> > > > > > > insertions(+), 3 deletions(-)
> > > > > > >
> > > > > > > diff --git a/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > b/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > index 648a13c..98ab1ab 100644
> > > > > > > --- a/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> > > > > > > @@ -246,17 +246,43 @@ static void
> > > > > > > intel_hpd_irq_storm_reenable_work(struct work_struct
> > > > > > > *work) intel_runtime_pm_put(dev_priv);
> > > > > > >  }
> > > > > > >
> > > > > > > +#define MAX_SHORT_PULSE_MS 100
> > > > > > > +#define PORT_CHECK_LOOP_COUNT  3
> > > > > > > +
> > > > > > >  bool intel_encoder_hotplug(struct intel_encoder *encoder,
> > > > > > >struct intel_connector
> > > > > > > *connector) {
> > > > > > > struct drm_device *dev = connector->base.dev;
> > > > > > > -   enum drm_connector_status old_status;
> > > > > > > +   enum drm_connector_status old_status, new_status;
> > > > > > > +   enum hpd_pin pin = encoder->hpd_pin;
> > > > > > > +   struct drm_i915_private *dev_priv =
> > > > > > > to_i915(encoder->base.dev);
> > > > > > > +   u32 count = 0;
> > > > > > >
> > > > > > > WARN_ON(!mutex_is_locked(>mode_config.mutex));
> > > > > > > old_status = connector->base.status;
> > > > > > >
> > > > > > > -   connector->base.status =
> > > > > > > -   drm_helper_probe_detect(>base,
> > > > > > > NULL, false);
> > > > > > > +   /*
> > > > > > > +* Set HDMI connection status based on hot-plug
> > > > > > > live states and
> > > > > > > +* display probe results.
> > > > > > > +*/
> > > > > > > +   if ((encoder->type == INTEL_OUTPUT_HDMI ||
> > > > > > > +encoder->type == INTEL_OUTPUT_DDI) &&
> > > > > > > +   dev_priv->hotplug.stats[pin].state ==
> > > > > > > HPD_ENABLED) {
> > > > > > > +   do {
> > > > > > > +   new_status =
> > > > > > > connector_status_disconnected;
> > > > > > > +   msleep(MAX_SHORT_PULSE_MS);
> > > > > > > +
> > > > > > > +   if
> > > > > > > 

Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-11-12 Thread Chris Chiu
Gentle ping. Just want to know if you have time for this so far. Thanks

Chris

On Tue, Oct 30, 2018 at 1:24 AM Guang Bai  wrote:

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

Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-10-29 Thread Guang Bai
On Tue, 23 Oct 2018 17:14:34 +0800
Chris Chiu  wrote:

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

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-10-23 Thread Chris Chiu
On Thu, Oct 11, 2018 at 2:04 AM Guang Bai  wrote:

> On Mon, 8 Oct 2018 08:56:20 -0700
> Guang Bai  wrote:
>
> > On Mon, 8 Oct 2018 22:35:34 +0800
> > Chris Chiu  wrote:
> >
> > > Thanks! I have no problem with this patch.
> >
> > There are Fi.CI.BAT failures with the v2 (only with formatting fix
> > added) while the previous patch had passing results.
> > Now trying to identify why the failures happened with trybot
> > Thanks,
> > Guang
> The tribot run my patch twice and passes the tests without any error
> however I'm recommended to chase down root causes of Patchwork Fi.CI.BAT
> test errors still - WIP on that.
> Thanks,
> Guang
>

Gentle ping. Any good news on this?

Chris


> >
> > >
> > > On Thu, Oct 4, 2018 at 2:08 AM Guang Bai 
> > > wrote:
> > > > On some platforms, slowly unplugging (wiggling) the HDMI cable
> > > > makes the kernel to believe the HDMI display still connected.
> > > > This is because the HDMI DDC lines are disconnected sometimes
> > > > later after the hot-plug interrupt triggered. Use the hot plug
> > > > live states to honor HDMI hot plug status in addtion to access
> > > > the DDC channels.
> > > >
> > > > v2: Fix the formatting issue
> > > >
> > > > Cc: Jani Nikula 
> > > > Cc: Chris Chiu 
> > > > Signed-off-by: Guang Bai 
> > > > ---
> > > >  drivers/gpu/drm/i915/intel_hotplug.c | 32
> > > > +--- 1 file changed, 29 insertions(+),
> > > > 3 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/intel_hotplug.c
> > > > b/drivers/gpu/drm/i915/intel_hotplug.c
> > > > index 648a13c..98ab1ab 100644
> > > > --- a/drivers/gpu/drm/i915/intel_hotplug.c
> > > > +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> > > > @@ -246,17 +246,43 @@ static void
> > > > intel_hpd_irq_storm_reenable_work(struct work_struct *work)
> > > > intel_runtime_pm_put(dev_priv);
> > > >  }
> > > >
> > > > +#define MAX_SHORT_PULSE_MS 100
> > > > +#define PORT_CHECK_LOOP_COUNT  3
> > > > +
> > > >  bool intel_encoder_hotplug(struct intel_encoder *encoder,
> > > >struct intel_connector *connector)
> > > >  {
> > > > struct drm_device *dev = connector->base.dev;
> > > > -   enum drm_connector_status old_status;
> > > > +   enum drm_connector_status old_status, new_status;
> > > > +   enum hpd_pin pin = encoder->hpd_pin;
> > > > +   struct drm_i915_private *dev_priv =
> > > > to_i915(encoder->base.dev);
> > > > +   u32 count = 0;
> > > >
> > > > WARN_ON(!mutex_is_locked(>mode_config.mutex));
> > > > old_status = connector->base.status;
> > > >
> > > > -   connector->base.status =
> > > > -   drm_helper_probe_detect(>base, NULL,
> > > > false);
> > > > +   /*
> > > > +* Set HDMI connection status based on hot-plug live
> > > > states and
> > > > +* display probe results.
> > > > +*/
> > > > +   if ((encoder->type == INTEL_OUTPUT_HDMI ||
> > > > +encoder->type == INTEL_OUTPUT_DDI) &&
> > > > +   dev_priv->hotplug.stats[pin].state == HPD_ENABLED) {
> > > > +   do {
> > > > +   new_status =
> > > > connector_status_disconnected;
> > > > +   msleep(MAX_SHORT_PULSE_MS);
> > > > +
> > > > +   if (intel_digital_port_connected(encoder))
> > > > +   new_status =
> > > > drm_helper_probe_detect(>base,
> > > > +
> > > > NULL, false);
> > > > +   if (new_status ==
> > > > connector_status_connected)
> > > > +   break;
> > > > +   } while (++count <= PORT_CHECK_LOOP_COUNT);
> > > > +   connector->base.status = new_status;
> > > > +   } else {
> > > > +   connector->base.status =
> > > > +   drm_helper_probe_detect(>base,
> > > > NULL, false);
> > > > +   }
> > > >
> > > > if (old_status == connector->base.status)
> > > > return false;
> > > > --
> > > > 2.7.4
> > > >
> > > >
> >
> > ___
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-10-10 Thread Guang Bai
On Mon, 8 Oct 2018 08:56:20 -0700
Guang Bai  wrote:

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

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-10-08 Thread Guang Bai
On Mon, 8 Oct 2018 22:35:34 +0800
Chris Chiu  wrote:

> Thanks! I have no problem with this patch.

There are Fi.CI.BAT failures with the v2 (only with formatting fix
added) while the previous patch had passing results.
Now trying to identify why the failures happened with trybot
Thanks,
Guang

> 
> On Thu, Oct 4, 2018 at 2:08 AM Guang Bai  wrote:
> 
> > On some platforms, slowly unplugging (wiggling) the HDMI cable makes
> > the kernel to believe the HDMI display still connected. This is
> > because the HDMI DDC lines are disconnected sometimes later after
> > the hot-plug interrupt triggered. Use the hot plug live states to
> > honor HDMI hot plug status in addtion to access the DDC channels.
> >
> > v2: Fix the formatting issue
> >
> > Cc: Jani Nikula 
> > Cc: Chris Chiu 
> > Signed-off-by: Guang Bai 
> > ---
> >  drivers/gpu/drm/i915/intel_hotplug.c | 32
> > +--- 1 file changed, 29 insertions(+),
> > 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_hotplug.c
> > b/drivers/gpu/drm/i915/intel_hotplug.c
> > index 648a13c..98ab1ab 100644
> > --- a/drivers/gpu/drm/i915/intel_hotplug.c
> > +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> > @@ -246,17 +246,43 @@ static void
> > intel_hpd_irq_storm_reenable_work(struct work_struct *work)
> > intel_runtime_pm_put(dev_priv);
> >  }
> >
> > +#define MAX_SHORT_PULSE_MS 100
> > +#define PORT_CHECK_LOOP_COUNT  3
> > +
> >  bool intel_encoder_hotplug(struct intel_encoder *encoder,
> >struct intel_connector *connector)
> >  {
> > struct drm_device *dev = connector->base.dev;
> > -   enum drm_connector_status old_status;
> > +   enum drm_connector_status old_status, new_status;
> > +   enum hpd_pin pin = encoder->hpd_pin;
> > +   struct drm_i915_private *dev_priv =
> > to_i915(encoder->base.dev);
> > +   u32 count = 0;
> >
> > WARN_ON(!mutex_is_locked(>mode_config.mutex));
> > old_status = connector->base.status;
> >
> > -   connector->base.status =
> > -   drm_helper_probe_detect(>base, NULL,
> > false);
> > +   /*
> > +* Set HDMI connection status based on hot-plug live states
> > and
> > +* display probe results.
> > +*/
> > +   if ((encoder->type == INTEL_OUTPUT_HDMI ||
> > +encoder->type == INTEL_OUTPUT_DDI) &&
> > +   dev_priv->hotplug.stats[pin].state == HPD_ENABLED) {
> > +   do {
> > +   new_status = connector_status_disconnected;
> > +   msleep(MAX_SHORT_PULSE_MS);
> > +
> > +   if (intel_digital_port_connected(encoder))
> > +   new_status =
> > drm_helper_probe_detect(>base,
> > +
> > NULL, false);
> > +   if (new_status ==
> > connector_status_connected)
> > +   break;
> > +   } while (++count <= PORT_CHECK_LOOP_COUNT);
> > +   connector->base.status = new_status;
> > +   } else {
> > +   connector->base.status =
> > +   drm_helper_probe_detect(>base,
> > NULL, false);
> > +   }
> >
> > if (old_status == connector->base.status)
> > return false;
> > --
> > 2.7.4
> >
> >  

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-10-08 Thread Chris Chiu
Thanks! I have no problem with this patch.

On Thu, Oct 4, 2018 at 2:08 AM Guang Bai  wrote:

> On some platforms, slowly unplugging (wiggling) the HDMI cable makes
> the kernel to believe the HDMI display still connected. This is because
> the HDMI DDC lines are disconnected sometimes later after the hot-plug
> interrupt triggered. Use the hot plug live states to honor HDMI hot plug
> status in addtion to access the DDC channels.
>
> v2: Fix the formatting issue
>
> Cc: Jani Nikula 
> Cc: Chris Chiu 
> Signed-off-by: Guang Bai 
> ---
>  drivers/gpu/drm/i915/intel_hotplug.c | 32 +---
>  1 file changed, 29 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c
> b/drivers/gpu/drm/i915/intel_hotplug.c
> index 648a13c..98ab1ab 100644
> --- a/drivers/gpu/drm/i915/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> @@ -246,17 +246,43 @@ static void intel_hpd_irq_storm_reenable_work(struct
> work_struct *work)
> intel_runtime_pm_put(dev_priv);
>  }
>
> +#define MAX_SHORT_PULSE_MS 100
> +#define PORT_CHECK_LOOP_COUNT  3
> +
>  bool intel_encoder_hotplug(struct intel_encoder *encoder,
>struct intel_connector *connector)
>  {
> struct drm_device *dev = connector->base.dev;
> -   enum drm_connector_status old_status;
> +   enum drm_connector_status old_status, new_status;
> +   enum hpd_pin pin = encoder->hpd_pin;
> +   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +   u32 count = 0;
>
> WARN_ON(!mutex_is_locked(>mode_config.mutex));
> old_status = connector->base.status;
>
> -   connector->base.status =
> -   drm_helper_probe_detect(>base, NULL, false);
> +   /*
> +* Set HDMI connection status based on hot-plug live states and
> +* display probe results.
> +*/
> +   if ((encoder->type == INTEL_OUTPUT_HDMI ||
> +encoder->type == INTEL_OUTPUT_DDI) &&
> +   dev_priv->hotplug.stats[pin].state == HPD_ENABLED) {
> +   do {
> +   new_status = connector_status_disconnected;
> +   msleep(MAX_SHORT_PULSE_MS);
> +
> +   if (intel_digital_port_connected(encoder))
> +   new_status =
> drm_helper_probe_detect(>base,
> +NULL,
> false);
> +   if (new_status == connector_status_connected)
> +   break;
> +   } while (++count <= PORT_CHECK_LOOP_COUNT);
> +   connector->base.status = new_status;
> +   } else {
> +   connector->base.status =
> +   drm_helper_probe_detect(>base, NULL,
> false);
> +   }
>
> if (old_status == connector->base.status)
> return false;
> --
> 2.7.4
>
>
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure (v2)

2018-10-03 Thread Guang Bai
On some platforms, slowly unplugging (wiggling) the HDMI cable makes
the kernel to believe the HDMI display still connected. This is because
the HDMI DDC lines are disconnected sometimes later after the hot-plug
interrupt triggered. Use the hot plug live states to honor HDMI hot plug
status in addtion to access the DDC channels.

v2: Fix the formatting issue

Cc: Jani Nikula 
Cc: Chris Chiu 
Signed-off-by: Guang Bai 
---
 drivers/gpu/drm/i915/intel_hotplug.c | 32 +---
 1 file changed, 29 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_hotplug.c 
b/drivers/gpu/drm/i915/intel_hotplug.c
index 648a13c..98ab1ab 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -246,17 +246,43 @@ static void intel_hpd_irq_storm_reenable_work(struct 
work_struct *work)
intel_runtime_pm_put(dev_priv);
 }
 
+#define MAX_SHORT_PULSE_MS 100
+#define PORT_CHECK_LOOP_COUNT  3
+
 bool intel_encoder_hotplug(struct intel_encoder *encoder,
   struct intel_connector *connector)
 {
struct drm_device *dev = connector->base.dev;
-   enum drm_connector_status old_status;
+   enum drm_connector_status old_status, new_status;
+   enum hpd_pin pin = encoder->hpd_pin;
+   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   u32 count = 0;
 
WARN_ON(!mutex_is_locked(>mode_config.mutex));
old_status = connector->base.status;
 
-   connector->base.status =
-   drm_helper_probe_detect(>base, NULL, false);
+   /*
+* Set HDMI connection status based on hot-plug live states and
+* display probe results.
+*/
+   if ((encoder->type == INTEL_OUTPUT_HDMI ||
+encoder->type == INTEL_OUTPUT_DDI) &&
+   dev_priv->hotplug.stats[pin].state == HPD_ENABLED) {
+   do {
+   new_status = connector_status_disconnected;
+   msleep(MAX_SHORT_PULSE_MS);
+
+   if (intel_digital_port_connected(encoder))
+   new_status = 
drm_helper_probe_detect(>base,
+NULL, 
false);
+   if (new_status == connector_status_connected)
+   break;
+   } while (++count <= PORT_CHECK_LOOP_COUNT);
+   connector->base.status = new_status;
+   } else {
+   connector->base.status =
+   drm_helper_probe_detect(>base, NULL, false);
+   }
 
if (old_status == connector->base.status)
return false;
-- 
2.7.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure

2018-10-03 Thread Chris Chiu
It works on my problematic laptops. Verified on X530UN and X560UD.
On Wed, Oct 3, 2018 at 1:23 PM Guang Bai  wrote:
>
> On some platforms, slowly unplugging (wiggling) the HDMI cable makes
> the kernel to believe the HDMI display still connected. This is because
> the HDMI DDC lines are disconnected sometimes later after the hot-plug
> interrupt triggered. Use the hot plug live states to honor HDMI hot plug
> status in addtion to access the DDC channels.
>
> Cc: Jani Nikula 
> Cc: Chris Chiu 
> Signed-off-by: Guang Bai 
> ---
>  drivers/gpu/drm/i915/intel_hotplug.c | 31 ---
>  1 file changed, 28 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_hotplug.c 
> b/drivers/gpu/drm/i915/intel_hotplug.c
> index 648a13c..db6288f 100644
> --- a/drivers/gpu/drm/i915/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/intel_hotplug.c
> @@ -246,17 +246,42 @@ static void intel_hpd_irq_storm_reenable_work(struct 
> work_struct *work)
> intel_runtime_pm_put(dev_priv);
>  }
>
> +#define MAX_SHORT_PULSE_MS 100
> +#define PORT_CHECK_LOOP_COUNT  3
> +
>  bool intel_encoder_hotplug(struct intel_encoder *encoder,
>struct intel_connector *connector)
>  {
> struct drm_device *dev = connector->base.dev;
> -   enum drm_connector_status old_status;
> +   enum drm_connector_status old_status, new_status;
> +   enum hpd_pin pin = encoder->hpd_pin;
> +   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +   u32 count = 0;
>
> WARN_ON(!mutex_is_locked(>mode_config.mutex));
> old_status = connector->base.status;
>
> -   connector->base.status =
> -   drm_helper_probe_detect(>base, NULL, false);
> +   /*
> +* Set HDMI connection status based on hot-plug live states and
> +* display probe results.
> +*/
> +   if ((encoder->type == INTEL_OUTPUT_HDMI ||
> +encoder->type == INTEL_OUTPUT_DDI) &&
> +   dev_priv->hotplug.stats[pin].state == HPD_ENABLED) {
> +   do {
> +   new_status = connector_status_disconnected;
> +   msleep(MAX_SHORT_PULSE_MS);
> +
> +   if (intel_digital_port_connected(encoder))
> +   new_status = 
> drm_helper_probe_detect(>base,
> +NULL, 
> false);
> +   if (new_status == connector_status_connected)
> +   break;
> +   } while (++count <= PORT_CHECK_LOOP_COUNT);
> +   connector->base.status = new_status;
> +   } else
> +   connector->base.status =
> +   drm_helper_probe_detect(>base, NULL, 
> false);
>
> if (old_status == connector->base.status)
> return false;
> --
> 2.7.4
>
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Fix the HDMI hot plug disconnection failure

2018-10-02 Thread Guang Bai
On some platforms, slowly unplugging (wiggling) the HDMI cable makes
the kernel to believe the HDMI display still connected. This is because
the HDMI DDC lines are disconnected sometimes later after the hot-plug
interrupt triggered. Use the hot plug live states to honor HDMI hot plug
status in addtion to access the DDC channels.

Cc: Jani Nikula 
Cc: Chris Chiu 
Signed-off-by: Guang Bai 
---
 drivers/gpu/drm/i915/intel_hotplug.c | 31 ---
 1 file changed, 28 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_hotplug.c 
b/drivers/gpu/drm/i915/intel_hotplug.c
index 648a13c..db6288f 100644
--- a/drivers/gpu/drm/i915/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/intel_hotplug.c
@@ -246,17 +246,42 @@ static void intel_hpd_irq_storm_reenable_work(struct 
work_struct *work)
intel_runtime_pm_put(dev_priv);
 }
 
+#define MAX_SHORT_PULSE_MS 100
+#define PORT_CHECK_LOOP_COUNT  3
+
 bool intel_encoder_hotplug(struct intel_encoder *encoder,
   struct intel_connector *connector)
 {
struct drm_device *dev = connector->base.dev;
-   enum drm_connector_status old_status;
+   enum drm_connector_status old_status, new_status;
+   enum hpd_pin pin = encoder->hpd_pin;
+   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+   u32 count = 0;
 
WARN_ON(!mutex_is_locked(>mode_config.mutex));
old_status = connector->base.status;
 
-   connector->base.status =
-   drm_helper_probe_detect(>base, NULL, false);
+   /*
+* Set HDMI connection status based on hot-plug live states and
+* display probe results.
+*/
+   if ((encoder->type == INTEL_OUTPUT_HDMI ||
+encoder->type == INTEL_OUTPUT_DDI) &&
+   dev_priv->hotplug.stats[pin].state == HPD_ENABLED) {
+   do {
+   new_status = connector_status_disconnected;
+   msleep(MAX_SHORT_PULSE_MS);
+
+   if (intel_digital_port_connected(encoder))
+   new_status = 
drm_helper_probe_detect(>base,
+NULL, 
false);
+   if (new_status == connector_status_connected)
+   break;
+   } while (++count <= PORT_CHECK_LOOP_COUNT);
+   connector->base.status = new_status;
+   } else
+   connector->base.status =
+   drm_helper_probe_detect(>base, NULL, false);
 
if (old_status == connector->base.status)
return false;
-- 
2.7.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx