lkml.org 
[lkml]   [2016]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [REGRESSION] i915: No HDMI output with 4.4
    On Fri, Feb 12, 2016 at 09:52:03AM +0200, Oleksandr Natalenko wrote:
    > Ville,
    >
    > I've applied patch you've provided and did couple of replugging with
    > intel_reg in between. Here are the results.
    >
    > I used additional VGA cable to see what actually I type in console :).
    >

    My life would have been a bit easier if you had included
    the reg dumps in the mail. Copy paste manually this time.

    > Both HDMI and VGA cables plugged: [1]
    (0x000c4000): 0x00080000
    (0x000c4004): 0xf1b5ffff
    (0x000c4008): 0x00000000
    (0x000c400c): 0xffffffff
    (0x000c4030): 0x00101010
    > Both HDMI and VGA cables unplugged: [2]
    (0x000c4000): 0x00000000
    (0x000c4004): 0xf1b5ffff
    (0x000c4008): 0x00000000
    (0x000c400c): 0xffffffff
    (0x000c4030): 0x00101010
    > Only HDMI cable plugged: [3]
    (0x000c4000): 0x00000000
    (0x000c4004): 0xf1b5ffff
    (0x000c4008): 0x00000000
    (0x000c400c): 0xffffffff
    (0x000c4030): 0x00101010
    > Only VGA cable plugged: [4]
    (0x000c4000): 0x00080000
    (0x000c4004): 0xf1b4ffff
    (0x000c4008): 0x00000000
    (0x000c400c): 0xffffffff
    (0x000c4030): 0x00101010

    What these show is that the live status for the digital ports never
    goes to 1, which is rather wtf. VGA gets reported correctly. Everything
    else looks normal to me.

    > And here goes dmesg with all the stuff logged: [5]

    лют 12 09:37:01 pfactum.lanet kernel: port C live status
    __________________________________________________
    __________________________________________________
    __________________________________________________
    __________________________________________________
    __________________________________________________

    Same deal here. The live status never indicates anything being
    present during the 250ms that we poll it.

    Few other ideas:
    - Was the monitor sleeping when you tried this? Can you maybe push
    some button on it and then immediately run the intel_reg read command
    again?
    - Do you have another monitor to try?
    - Do you have another cable to try?
    - Maybe the pullup/down on the hpd line is misconfigured or something.
    Any chance of updating the BIOS on the machine?
    - What does 'intel_reg read 0xc2000 0xc2004 0xc2020' say?
    - The spec claims the TMDS vs. SDVO select has something to do with
    hpd generation. I can't see any difference on my IVB though, so not
    sure it's really true.

    What does 'intel_reg read 0xe1140 0xe1150 0xe1160' tell us?

    Let's try these anyway (with the cable plugged in):

    intel_reg write 0xe1140 0x0
    intel_reg write 0xe1150 0x0
    intel_reg write 0xe1160 0x0
    sleep 1
    intel_reg read 0xc4000

    intel_reg write 0xe1140 0x800
    intel_reg write 0xe1150 0x800
    intel_reg write 0xe1160 0x800
    sleep 1
    intel_reg read 0xc4000

    intel_reg write 0xe1140 0x800800
    intel_reg write 0xe1150 0x800800
    intel_reg write 0xe1160 0x800800
    sleep 1
    intel_reg read 0xc4000

    intel_reg write 0xe1140 0x800000
    intel_reg write 0xe1150 0x800000
    intel_reg write 0xe1160 0x800000
    sleep 1
    intel_reg read 0xc4000

    >
    > Hope this helps.
    >
    > [1] https://gist.github.com/58a0eb50dcf84e104555
    > [2] https://gist.github.com/7e8749a3e2cc58ea8aac
    > [3] https://gist.github.com/9d76930da7380634b845
    > [4] https://gist.github.com/c0d2e2f64242ad4f01f2
    > [5] https://gist.github.com/fda3b9fed3ca4d31cd20
    >
    > 11.02.2016 16:01, Ville Syrjälä wrote:
    > > OK, so the hpd interrupt does happen, and yet the live status
    > > supposedly
    > > claims that nothing is there. Port C live status definitely works here
    > > on my IVB, so not sure what the deal is.
    > >
    > > Can you grab intel-gpu-tools and run
    > > intel_reg read 0xc4000 0xc4004 0xc4008 0xc400c 0xc4030
    > > a couple of times after plugging the monitor in, and also run it when
    > > nothing is plugged in.
    > >
    > > Also you could try something like the following patch so we might
    > > observe the live status with a bit more detail. Though the fact that it
    > > doesn't seem to work for you even when the monitor was already plugged
    > > in is somewhat troubling:
    > >
    > > --- a/drivers/gpu/drm/i915/intel_hdmi.c
    > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
    > > @@ -1392,12 +1392,17 @@ intel_hdmi_detect(struct drm_connector
    > > *connector, bool force)
    > >
    > > intel_display_power_get(dev_priv, POWER_DOMAIN_GMBUS);
    > >
    > > - for (try = 0; !live_status && try < 9; try++) {
    > > - if (try)
    > > - msleep(10);
    > > - live_status = intel_digital_port_connected(dev_priv,
    > > + printk("port %c live status\n ",
    > > port_name(hdmi_to_dig_port(intel_hdmi)->port));
    > > + for (try = 0; try < 250; try++) {
    > > + bool status = intel_digital_port_connected(dev_priv,
    > > hdmi_to_dig_port(intel_hdmi));
    > > + live_status |= status;
    > > + printk("%c", status ? '#' : '_');
    > > + if (try % 50 == 49)
    > > + printk("\n ");
    > > + usleep_range(1000, 1000);
    > > }
    > > + printk("\n");
    > >
    > > if (!live_status)
    > > DRM_DEBUG_KMS("Live status not up!");
    > > --
    > > 2.4.10
    > >
    > > Oh, and if you have another cable you can try, might be a good idea to
    > > see if it behaves any better.
    > >

    --
    Ville Syrjälä
    Intel OTC

    \
     
     \ /
      Last update: 2016-02-13 01:01    [W:5.317 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site