• Dave Airlie's avatar
    drm/mst: rework payload table allocation to conform better. · dfda0df3
    Dave Airlie authored
    The old code has problems with the Dell MST monitors due to some
    assumptions I made that weren't true.
    
    I initially thought the Virtual Channel Payload IDs had to be in
    the DPCD table in ascending order, however it appears that assumption
    is bogus.
    
    The old code also assumed it was possible to insert a member
    into the table and it would move other members up, like it does
    when you remove table entries, however reality has shown this
    isn't true.
    
    So the new code allocates VCPIs separate from entries in the payload
    tracking table, and when we remove an entry from the DPCD table,
    I shuffle the tracking payload entries around in the struct.
    
    This appears to make VT switch more robust (still not perfect)
    with an MST enabled Dell monitor.
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    dfda0df3
drm_dp_mst_topology.c 73.8 KB