]> git.baikalelectronics.ru Git - kernel.git/commit
drm/mst: rework payload table allocation to conform better.
authorDave Airlie <airlied@redhat.com>
Wed, 6 Aug 2014 06:26:21 +0000 (16:26 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 13 Oct 2014 04:40:53 +0000 (14:40 +1000)
commit369f81f0edf291857749984b30cf859e1992eb6a
tree240106fe1072aeae2917c3c3c5fca83ba4f8a641
parent9797a375d270a6cd40eab6b9bcdb47e894b0dce1
drm/mst: rework payload table allocation to conform better.

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: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_dp_mst_topology.c
include/drm/drm_dp_mst_helper.h