diff mbox

external screen goes black

Message ID CAKMK7uErVYN8SXpL0aeNNjQ2tveS-kW1rmdTuB5bbnLM7++52g@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Jan. 20, 2013, 11:52 a.m. UTC
Hm, it's a DP screen which I've suspected (those are the kind who can
lose sync and go black). But somehow we don't get any hotplug event
when this happens - so the driver has no idea that the link went bad
and that we need to retrain. Can you please test this with this
snippet:

Also please check whether yanking and re-plugging the DP cable will
restore the display - it should.
-Daniel

On Sun, Jan 20, 2013 at 5:45 AM, Jonathan Adamczewski
<jonathan.adamczewski@gmail.com> wrote:
> Thanks for the reply, Daniel.
>
> Full traces are attached. I booted the system, ran dmesg after logging in
> through kdm.
>
> (Then I left the system while doing some other errands, hence the gap in
> time)
>
> I then started firefox, went to youtube and started watching some 4K
> resolution videos. The external screen went black in less than a minute.
> Second file is dmesg run after that - there doesn't appear to be much to
> see...
>
> There was nothing in dmesg that correlated directly with the screen going
> black. I've validated this by triggering the screen going black several
> times (that's not in the attached log, though) - there was never anything in
> dmesg that happened at the same time or that happened for tens of seconds
> thereafter.
>
>
> What's the next step for gathering information here?
>
> Many thanks
>
> Jonathan.
>
>
>
>
>
> On Sat, Jan 19, 2013 at 5:39 PM, Daniel Vetter <daniel@ffwll.ch> wrote:
>>
>> Hi Jonathan,
>>
>> Can you please boot with drm.debug=0xe and then attach the complete
>> dmesg once right after boot, and once after the screen went black?
>>
>> Thanks, Daniel
>>
>> On Sun, Jan 20, 2013 at 1:38 AM, Jonathan Adamczewski
>> <jonathan.adamczewski@gmail.com> wrote:
>> > Hardware is a Dell XPS laptop, xorg log reports "Integrated Graphics
>> > Chipset: Intel(R) Sandybridge Mobile (GT2)"
>> >
>> > Running a custom configured 3.7.2 based kernel,
>> > xf86-video-intel-2.20.17.
>> >
>> > I'm running the internal LVDS screen at 1080p and a Dell 2713HM monitor
>> > at
>> > 2560x1440 connected via display port.
>> >
>> > Both screens run fine when X starts, but at some point the external
>> > monitor
>> > will go black. The system doesn't recognize it as being disconnected -
>> > no
>> > KDE popup asking if I want to change the monitor config as happens when
>> > pulling the DP or power on the monitor.
>> >
>> > Sometimes it will return to life after a short amount of time, most of
>> > the
>> > time it stays black indefinitely. A full power cycle of the monitor
>> > (pulling
>> > the plug) will usually bring it back to life, but typically not for
>> > long.
>> >
>> > The screen usually goes black while there's a high degree of display
>> > activity - a video playing, moving large windows around the screen,
>> > looking
>> > around in google streetview, etc. It doesn't seem to matter which screen
>> > the
>> > activity is on.
>> >
>> > It *seems* to be less likely if I run the external display at a lower
>> > resolution.
>> >
>> > There's nothing that coincides with the screen going black in dmesg or
>> > the
>> > xorg log.
>> >
>> > I've had no problems with this monitor under Windows 7 (gaming, videos,
>> > etc).
>> >
>> > What I'm looking for: ideally a simple fix :) Otherwise, any suggestions
>> > about where to look to gather more information on what could be
>> > happening
>> > here - or other places to ask for help.
>> >
>> > Many thanks
>> >
>> > jonathan.
>> >
>> > _______________________________________________
>> > Intel-gfx mailing list
>> > Intel-gfx@lists.freedesktop.org
>> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>> >
>>
>>
>>
>> --
>> Daniel Vetter
>> Software Engineer, Intel Corporation
>> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>
>

Comments

Jonathan Adamczewski Jan. 20, 2013, 9:17 p.m. UTC | #1
Yanking and re-plugging the DP cable did work when I tried it. My
recollection is that there have been times when it hasn't worked, though
it's possible there was something else going on (user error, etc...)

Regarding the "hotplug interrupt for DP" message: that /does not/ fire when
the screen goes black. It did fire when yanking the cable, and again when
re-plugging.

fwiw, when the screen goes blank, it does not appear to drop to a low power
or no-sync state: the power light remains solid (if I disable the monitor
with xrandr etc, the power light will pulse). Sometimes the picture will
return with no intervention required and there is no apparent delay while
the monitor "resyncs", it's instant off, instant on. The screen can go
black for periods <1 second. If video is still playing, it's likely to go
black a second time and to not return.

Many thanks for you help so far - what's my next course of action?

j.



On Sun, Jan 20, 2013 at 3:52 AM, Daniel Vetter <daniel@ffwll.ch> wrote:

> Hm, it's a DP screen which I've suspected (those are the kind who can
> lose sync and go black). But somehow we don't get any hotplug event
> when this happens - so the driver has no idea that the link went bad
> and that we need to retrain. Can you please test this with this
> snippet:
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c
> b/drivers/gpu/drm/i915/intel_dp.c
> index 1492706..5e91242 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -2580,6 +2580,8 @@ intel_dp_hot_plug(struct intel_encoder
> *intel_encoder)
>  {
>         struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);
>
> +       printk("hotplug interrupt for DP\n");
> +
>         intel_dp_check_link_status(intel_dp);
>  }
>
> Also please check whether yanking and re-plugging the DP cable will
> restore the display - it should.
> -Daniel
>
> On Sun, Jan 20, 2013 at 5:45 AM, Jonathan Adamczewski
> <jonathan.adamczewski@gmail.com> wrote:
> > Thanks for the reply, Daniel.
> >
> > Full traces are attached. I booted the system, ran dmesg after logging in
> > through kdm.
> >
> > (Then I left the system while doing some other errands, hence the gap in
> > time)
> >
> > I then started firefox, went to youtube and started watching some 4K
> > resolution videos. The external screen went black in less than a minute.
> > Second file is dmesg run after that - there doesn't appear to be much to
> > see...
> >
> > There was nothing in dmesg that correlated directly with the screen going
> > black. I've validated this by triggering the screen going black several
> > times (that's not in the attached log, though) - there was never
> anything in
> > dmesg that happened at the same time or that happened for tens of seconds
> > thereafter.
> >
> >
> > What's the next step for gathering information here?
> >
> > Many thanks
> >
> > Jonathan.
> >
> >
> >
> >
> >
> > On Sat, Jan 19, 2013 at 5:39 PM, Daniel Vetter <daniel@ffwll.ch> wrote:
> >>
> >> Hi Jonathan,
> >>
> >> Can you please boot with drm.debug=0xe and then attach the complete
> >> dmesg once right after boot, and once after the screen went black?
> >>
> >> Thanks, Daniel
> >>
> >> On Sun, Jan 20, 2013 at 1:38 AM, Jonathan Adamczewski
> >> <jonathan.adamczewski@gmail.com> wrote:
> >> > Hardware is a Dell XPS laptop, xorg log reports "Integrated Graphics
> >> > Chipset: Intel(R) Sandybridge Mobile (GT2)"
> >> >
> >> > Running a custom configured 3.7.2 based kernel,
> >> > xf86-video-intel-2.20.17.
> >> >
> >> > I'm running the internal LVDS screen at 1080p and a Dell 2713HM
> monitor
> >> > at
> >> > 2560x1440 connected via display port.
> >> >
> >> > Both screens run fine when X starts, but at some point the external
> >> > monitor
> >> > will go black. The system doesn't recognize it as being disconnected -
> >> > no
> >> > KDE popup asking if I want to change the monitor config as happens
> when
> >> > pulling the DP or power on the monitor.
> >> >
> >> > Sometimes it will return to life after a short amount of time, most of
> >> > the
> >> > time it stays black indefinitely. A full power cycle of the monitor
> >> > (pulling
> >> > the plug) will usually bring it back to life, but typically not for
> >> > long.
> >> >
> >> > The screen usually goes black while there's a high degree of display
> >> > activity - a video playing, moving large windows around the screen,
> >> > looking
> >> > around in google streetview, etc. It doesn't seem to matter which
> screen
> >> > the
> >> > activity is on.
> >> >
> >> > It *seems* to be less likely if I run the external display at a lower
> >> > resolution.
> >> >
> >> > There's nothing that coincides with the screen going black in dmesg or
> >> > the
> >> > xorg log.
> >> >
> >> > I've had no problems with this monitor under Windows 7 (gaming,
> videos,
> >> > etc).
> >> >
> >> > What I'm looking for: ideally a simple fix :) Otherwise, any
> suggestions
> >> > about where to look to gather more information on what could be
> >> > happening
> >> > here - or other places to ask for help.
> >> >
> >> > Many thanks
> >> >
> >> > jonathan.
> >> >
> >> > _______________________________________________
> >> > Intel-gfx mailing list
> >> > Intel-gfx@lists.freedesktop.org
> >> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> >> >
> >>
> >>
> >>
> >> --
> >> Daniel Vetter
> >> Software Engineer, Intel Corporation
> >> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
> >
> >
>
>
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>
Jonathan Adamczewski Jan. 24, 2013, 8:16 p.m. UTC | #2
Any further thoughts on this issue?


On Sun, Jan 20, 2013 at 1:17 PM, Jonathan Adamczewski <
jonathan.adamczewski@gmail.com> wrote:

> Yanking and re-plugging the DP cable did work when I tried it. My
> recollection is that there have been times when it hasn't worked, though
> it's possible there was something else going on (user error, etc...)
>
> Regarding the "hotplug interrupt for DP" message: that /does not/ fire
> when the screen goes black. It did fire when yanking the cable, and again
> when re-plugging.
>
> fwiw, when the screen goes blank, it does not appear to drop to a low
> power or no-sync state: the power light remains solid (if I disable the
> monitor with xrandr etc, the power light will pulse). Sometimes the picture
> will return with no intervention required and there is no apparent delay
> while the monitor "resyncs", it's instant off, instant on. The screen can
> go black for periods <1 second. If video is still playing, it's likely to
> go black a second time and to not return.
>
> Many thanks for you help so far - what's my next course of action?
>
> j.
>
>
>
> On Sun, Jan 20, 2013 at 3:52 AM, Daniel Vetter <daniel@ffwll.ch> wrote:
>
>> Hm, it's a DP screen which I've suspected (those are the kind who can
>> lose sync and go black). But somehow we don't get any hotplug event
>> when this happens - so the driver has no idea that the link went bad
>> and that we need to retrain. Can you please test this with this
>> snippet:
>>
>> diff --git a/drivers/gpu/drm/i915/intel_dp.c
>> b/drivers/gpu/drm/i915/intel_dp.c
>> index 1492706..5e91242 100644
>> --- a/drivers/gpu/drm/i915/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/intel_dp.c
>> @@ -2580,6 +2580,8 @@ intel_dp_hot_plug(struct intel_encoder
>> *intel_encoder)
>>  {
>>         struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);
>>
>> +       printk("hotplug interrupt for DP\n");
>> +
>>         intel_dp_check_link_status(intel_dp);
>>  }
>>
>> Also please check whether yanking and re-plugging the DP cable will
>> restore the display - it should.
>> -Daniel
>>
>> On Sun, Jan 20, 2013 at 5:45 AM, Jonathan Adamczewski
>> <jonathan.adamczewski@gmail.com> wrote:
>> > Thanks for the reply, Daniel.
>> >
>> > Full traces are attached. I booted the system, ran dmesg after logging
>> in
>> > through kdm.
>> >
>> > (Then I left the system while doing some other errands, hence the gap in
>> > time)
>> >
>> > I then started firefox, went to youtube and started watching some 4K
>> > resolution videos. The external screen went black in less than a minute.
>> > Second file is dmesg run after that - there doesn't appear to be much to
>> > see...
>> >
>> > There was nothing in dmesg that correlated directly with the screen
>> going
>> > black. I've validated this by triggering the screen going black several
>> > times (that's not in the attached log, though) - there was never
>> anything in
>> > dmesg that happened at the same time or that happened for tens of
>> seconds
>> > thereafter.
>> >
>> >
>> > What's the next step for gathering information here?
>> >
>> > Many thanks
>> >
>> > Jonathan.
>> >
>> >
>> >
>> >
>> >
>> > On Sat, Jan 19, 2013 at 5:39 PM, Daniel Vetter <daniel@ffwll.ch> wrote:
>> >>
>> >> Hi Jonathan,
>> >>
>> >> Can you please boot with drm.debug=0xe and then attach the complete
>> >> dmesg once right after boot, and once after the screen went black?
>> >>
>> >> Thanks, Daniel
>> >>
>> >> On Sun, Jan 20, 2013 at 1:38 AM, Jonathan Adamczewski
>> >> <jonathan.adamczewski@gmail.com> wrote:
>> >> > Hardware is a Dell XPS laptop, xorg log reports "Integrated Graphics
>> >> > Chipset: Intel(R) Sandybridge Mobile (GT2)"
>> >> >
>> >> > Running a custom configured 3.7.2 based kernel,
>> >> > xf86-video-intel-2.20.17.
>> >> >
>> >> > I'm running the internal LVDS screen at 1080p and a Dell 2713HM
>> monitor
>> >> > at
>> >> > 2560x1440 connected via display port.
>> >> >
>> >> > Both screens run fine when X starts, but at some point the external
>> >> > monitor
>> >> > will go black. The system doesn't recognize it as being disconnected
>> -
>> >> > no
>> >> > KDE popup asking if I want to change the monitor config as happens
>> when
>> >> > pulling the DP or power on the monitor.
>> >> >
>> >> > Sometimes it will return to life after a short amount of time, most
>> of
>> >> > the
>> >> > time it stays black indefinitely. A full power cycle of the monitor
>> >> > (pulling
>> >> > the plug) will usually bring it back to life, but typically not for
>> >> > long.
>> >> >
>> >> > The screen usually goes black while there's a high degree of display
>> >> > activity - a video playing, moving large windows around the screen,
>> >> > looking
>> >> > around in google streetview, etc. It doesn't seem to matter which
>> screen
>> >> > the
>> >> > activity is on.
>> >> >
>> >> > It *seems* to be less likely if I run the external display at a lower
>> >> > resolution.
>> >> >
>> >> > There's nothing that coincides with the screen going black in dmesg
>> or
>> >> > the
>> >> > xorg log.
>> >> >
>> >> > I've had no problems with this monitor under Windows 7 (gaming,
>> videos,
>> >> > etc).
>> >> >
>> >> > What I'm looking for: ideally a simple fix :) Otherwise, any
>> suggestions
>> >> > about where to look to gather more information on what could be
>> >> > happening
>> >> > here - or other places to ask for help.
>> >> >
>> >> > Many thanks
>> >> >
>> >> > jonathan.
>> >> >
>> >> > _______________________________________________
>> >> > Intel-gfx mailing list
>> >> > Intel-gfx@lists.freedesktop.org
>> >> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Daniel Vetter
>> >> Software Engineer, Intel Corporation
>> >> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>> >
>> >
>>
>>
>>
>> --
>> Daniel Vetter
>> Software Engineer, Intel Corporation
>> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>>
>
>
Daniel Vetter Jan. 24, 2013, 8:43 p.m. UTC | #3
On Thu, Jan 24, 2013 at 9:16 PM, Jonathan Adamczewski
<jonathan.adamczewski@gmail.com> wrote:
> Any further thoughts on this issue?

Please file a bug report about your issue on bugs.freedesktop.org
against DRI -> DRM/Intel with a summary of the findings thus far. We
know that we don't yet have perfect DP training code, but getting
there will take some time.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 1492706..5e91242 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -2580,6 +2580,8 @@  intel_dp_hot_plug(struct intel_encoder *intel_encoder)
 {
        struct intel_dp *intel_dp = enc_to_intel_dp(&intel_encoder->base);

+       printk("hotplug interrupt for DP\n");
+
        intel_dp_check_link_status(intel_dp);
 }