The sink reordering would fail on retrieval of tiling information from a sink
that does not have a Tiled Display Topology (TDT) data block. This behavior is
incorrect since subsequent sinks may be a part of a tiled display.
Modified the function to be void.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Added functionality that reorders the sink list such that topologies containing
tiled display(s) will have the contained sinks reordered in a consistent manner.
The need for such functionality exists because not all tiled displays will have
the same internal topologies.
It was observed that two 4k2k MST based monitors (tiled display, 2 sinks) from
different manufacturers would have the left and right images swapped using
identical stream-to-sink mappings.
Thus, the need to obtain the tiled display topology information of all sinks and
their relative tile location is required to send the correct stream to the
desired sink.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
- Added function header comments for the remote I2C and remote DPCD read and
write functions.
- Updated the function header comments for immediate I2C and AUX read and write
functions.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Some monitors don't support sideband messages with IIC reads greater than 16
bytes. This improvement breaks up the higher-level read/write request into
multiple reads/writes that work with up to 16 bytes in size.
These higher-level remote IIC read/write functions also serve as a wrapper for
an IIC read/write in case that the link count total is equal to 1 (a read/write
request to the RX device directly connected to the TX (not "remote")).
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
The remote read/write functions serve as a wrapper in case the target RX device
is directly connected to the TX (link count total is equal to 1).
These functions may be called instead of the read/write GUID functions doing the
same thing.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Some monitors don't support sideband messages with AUX reads greater than 16
bytes. This improvement breaks up the higher-level read/write request into
multiple reads/writes that work with up to 16 bytes in size.
These higher-level remote DPCD read/write functions also serve as a wrapper for
an AUX read/write in case that the link count total is equal to 1 (a read/write
request to the RX device directly connected to the TX (not "remote")).
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
An LCR (link count remaining) value of 6 is used to protect against loops.
If the LCR isn't processed at each node and attempted to be broadcasted on all
ports, waiting for a reply, a loop in the topology will result in the broadcast
message being forwarded infinitely.
Because of this, an LCR of 0 will prevent the message from being forwarded to
subsequent DP nodes.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Increased waiting for a response to a sideband message before timing out.
Reduced number of reads to check that the RX device received an ACT event.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Testing with the new IP configuration parameter (payload data width) required
some changes to the examples.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Also, rearranged/grouped the GUID functions with the EDID read function as
"utility" functions.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
ReadData is now filled only with actually data instead of sideband message reply
data (reply code, port number, etc) + data.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>