Commit graph

34 commits

Author SHA1 Message Date
Andrei-Liviu Simion
d98aa35095 dptx: Fixed some documentation for Doxygen.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:48 +05:30
Andrei-Liviu Simion
89ececd8d1 dptx: Improved sink reordering.
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>
2014-11-25 21:38:47 +05:30
Andrei-Liviu Simion
9fc3a2bd3e dptx: Added function header comments describing new functionality.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:47 +05:30
Andrei-Liviu Simion
7c47ed85dd dptx: Added functions that reorder the sink numbering of the topology.
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>
2014-11-25 21:38:46 +05:30
Andrei-Liviu Simion
d49f9f84fc dptx: Moved functions related to retrieval of EDID information into xdptx_edid.c
Consolidated the functions that obtain the base EDID block into the EDID utility
file.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:41 +05:30
Andrei-Liviu Simion
ba2c1ce602 dptx: Reorganized and commented I2C and DPCD reads/writes.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:39 +05:30
Andrei-Liviu Simion
64efde0148 dptx: Add and update the function header comments for I2C and DPCD reads/writes.
- 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>
2014-11-25 21:38:38 +05:30
Andrei-Liviu Simion
9fe0c8ca59 dptx: Define the I2C segment pointer address (0x30).
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:37 +05:30
Andrei-Liviu Simion
52ebe1260c dptx: Improved remote IIC reads/writes to automatically work on 16-byte chunks.
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>
2014-11-25 21:38:37 +05:30
Andrei-Liviu Simion
3a23a15f09 dptx: Optimize read/write GUID functions to use new remote reads/writes.
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>
2014-11-25 21:38:36 +05:30
Andrei-Liviu Simion
518eb68d03 dptx: Improved remote DPCD reads/writes to automatically work on 16-byte chunks.
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>
2014-11-25 21:38:35 +05:30
Andrei-Liviu Simion
e7216fd45f dptx: Update configuration structure when MST is enabled/disabled in hardware.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:32 +05:30
Andrei-Liviu Simion
6b9640569f dptx: Clear the ACT event received bit upon successfully receiving it.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:32 +05:30
Andrei-Liviu Simion
db13a8bdf4 dptx: Reuse common allocation function for clearing streams.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:31 +05:30
Andrei-Liviu Simion
c98c7e2ee5 dptx: Made the allocation of streams function more flexible.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:31 +05:30
Andrei-Liviu Simion
c24a77a245 dptx: Added an offset argument for remote I2C reads.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:30 +05:30
Andrei-Liviu Simion
73a66c85ff dptx: Added remote IIC write sideband message.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:30 +05:30
Andrei-Liviu Simion
2d318f6d74 dptx: Broadcast messages need to have an LCR of 6.
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>
2014-11-25 21:38:19 +05:30
Andrei-Liviu Simion
0572fea2ca dptx: MST: Minor tweaks to sideband messaging.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:11 +05:30
Andrei-Liviu Simion
116079118c dptx: MST: Clear any lingering responses before sending a sideband message.
In case the RX device fell into a weird state.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:10 +05:30
Andrei-Liviu Simion
37d4046df4 dptx: MST: Modified number of iterations before timing out.
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>
2014-11-25 21:38:09 +05:30
Andrei-Liviu Simion
414d35c52e dptx: Improved stack size usage for topology discovery.
Reduced the stack size required by the topology discovery algorithm
significantly.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:08 +05:30
Andrei-Liviu Simion
91575b5dc2 dptx: Changed stream indices to start from 0 instead of 1.
Next IP documentation release will follow this convention as well.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:24 +05:30
Andrei-Liviu Simion
d2697a6631 dptx: Update examples.
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>
2014-09-02 11:21:24 +05:30
Andrei-Liviu Simion
adc89fae61 dptx: Allow introduction of AUX and sideband message latency delays.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:24 +05:30
Andrei-Liviu Simion
d3a9371163 dptx: Fixed a Doxygen parameter comment.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:23 +05:30
Andrei-Liviu Simion
51622b762f dptx: MST: Added remote EDID read function.
Also, rearranged/grouped the GUID functions with the EDID read function as
"utility" functions.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:22 +05:30
Andrei-Liviu Simion
be98293a83 dptx: Fixed some bugs introduced with asserts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:22 +05:30
Andrei-Liviu Simion
c45033d802 dptx: MST: Optimized I2C and AUX read.
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>
2014-09-02 11:21:21 +05:30
Andrei-Liviu Simion
71f96698d0 dptx: MST: Added check for MST capabilities before enabling.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:21 +05:30
Andrei-Liviu Simion
6e222812f1 dptx: MST: Added asserts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:20 +05:30
Andrei-Liviu Simion
16172f3743 dptx: MST: Added an MST example and updated existing examples.
Also added more MST comments.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:19 +05:30
Andrei-Liviu Simion
3d6faf54b3 dptx: MST: Clean-up, documentation, and general organization.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:19 +05:30
Andrei-Liviu Simion
14f491934d dptx: Multi-stream transport (MST) addition.
Main chunk of MST code added.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:19 +05:30