• Lyude Paul's avatar
    drm/nouveau/kms: Search for encoders' connectors properly · 09838c4e
    Lyude Paul authored
    While the way we find the associated connector for an encoder is just
    fine for legacy modesetting, it's not correct for nv50+ since that uses
    atomic modesetting. For reference, see the drm_encoder kdocs.
    
    Fix this by removing nouveau_encoder_connector_get(), and replacing it
    with nv04_encoder_get_connector(), nv50_outp_get_old_connector(), and
    nv50_outp_get_new_connector().
    
    v2:
    * Don't line-wrap for_each_(old|new)_connector_in_state in
      nv50_outp_get_(old|new)_connector() - sravn
    v3:
    * Fix potential uninitialized usage of nv_connector (needs to be
      initialized to NULL at the start). Thanks kernel test robot!
    v4:
    * Actually fix uninitialized nv_connector usage in
      nv50_audio_component_get_eld(). The previous fix wouldn't have worked
      since we would have started out with nv_connector == NULL, but
      wouldn't clear it after a single drm_for_each_encoder() iteration.
      Thanks again Kernel bot!
    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-7-lyude@redhat.com
    09838c4e
tvnv04.c 7.41 KB