• Ville Syrjälä's avatar
    drm/i915: Get rid of the gm45 HPD live state nonsense · 4b736ed4
    Ville Syrjälä authored
    The idea that ctg uses different HPD live state bits is
    total nonsense, at least on my machine (Dell Latitude
    E5400).
    
    The only reason DP-B even works on my ctg is that DP-D
    live state is stuck high, even though there is no physical
    DP-D port. So when the detect checks DP-B live state it
    sees the stuck live state of DP-D instead. If I hack
    the driver to not register DP-D at all, and thus we never
    enabe DP-D HPD, DP-B stops working as well.
    
    Just to put some conclusive evidence into this mess,
    here are the actual hotplug register values for each port:
     Everything disconnected:
                        PORT_HOTPLUG_EN (0x00061110): 0x00000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x00000000
                        PORT_HOTPLUG_EN (0x00061110): 0x08000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x08000000
                        PORT_HOTPLUG_EN (0x00061110): 0x10000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x00000000
                        PORT_HOTPLUG_EN (0x00061110): 0x20000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x00000000
     Only port B connected:
                        PORT_HOTPLUG_EN (0x00061110): 0x00000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x00000000
                        PORT_HOTPLUG_EN (0x00061110): 0x08000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x08000000
                        PORT_HOTPLUG_EN (0x00061110): 0x10000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x00000000
                        PORT_HOTPLUG_EN (0x00061110): 0x20000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x20000000
     Only port C connected:
                        PORT_HOTPLUG_EN (0x00061110): 0x00000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x00000000
                        PORT_HOTPLUG_EN (0x00061110): 0x08000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x08000000
                        PORT_HOTPLUG_EN (0x00061110): 0x10000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x10000000
                        PORT_HOTPLUG_EN (0x00061110): 0x20000000
                      PORT_HOTPLUG_STAT (0x00061114): 0x00000000
    
    So the enable bit and live state bit always match 1:1.
    Acked-by: default avatarJani Nikula <jani.nikula@intel.com>
    Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230302161013.29213-4-ville.syrjala@linux.intel.com
    4b736ed4
g4x_dp.c 40.5 KB