• Lyude Paul's avatar
    drm/nouveau/kms/nv50-: Add support for DP_SINK_COUNT · a4efad35
    Lyude Paul authored
    This is another bit that we never implemented for nouveau: dongle
    detection. When a "dongle", e.g. an active display adaptor, is hooked up
    to the system and causes an HPD to be fired, we don't actually know
    whether or not there's anything plugged into the dongle without checking
    the sink count. As a result, plugging in a dongle without anything
    plugged into it currently results in a bogus EDID retrieval error in the kernel log.
    
    Additionally, most dongles won't send another long HPD signal if the
    user suddenly plugs something in, they'll only send a short HPD IRQ with
    the expectation that the source will check the sink count and reprobe
    the connector if it's changed - something we don't actually do. As a
    result, nothing will happen if the user plugs the dongle in before
    plugging something into the dongle.
    
    So, let's fix this by checking the sink count in both
    nouveau_dp_probe_dpcd() and nouveau_dp_irq(), and reprobing the
    connector if things change.
    Signed-off-by: default avatarLyude Paul <lyude@redhat.com>
    Reviewed-by: default avatarBen Skeggs <bskeggs@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200826182456.322681-18-lyude@redhat.com
    a4efad35
nouveau_encoder.h 4.12 KB