Commit graph

43 commits

Author SHA1 Message Date
Andrei-Liviu Simion
fff069f3e4 dptx: Reduced the RX capability read to 16 bytes.
No need to read and store unused capability information by the driver.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:31:35 +05:30
Andrei-Liviu Simion
de578f8a0e dptx: Synchronized argument naming between function declarations/definitions.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:31:34 +05:30
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
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
136b180907 dptx: Added a function that retrieves the Tiled Display Topology of a sink.
Given a sink, the function will attempt to retrieve the Tiled Display Topology
section data block which is part of the DisplayID structure.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:45 +05:30
Andrei-Liviu Simion
9437435007 dptx: Added a function to retrieve a specified data block from the DisplayId.
Search for a section data block that matched a specified section tag.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:44 +05:30
Andrei-Liviu Simion
394de11837 dptx: Added a function that fetches a DisplayID EDID extension block.
Given a sink, the function will attempt to retrieve an EDID extension block of
type DisplayID.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:43 +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
f2ad8b171d dptx: Added EDID utility file and functions for fetching an EDID block.
Created a file containing utility functions related to the Extended Display
Identification Information (EDID).
The initial functions included are used to fetch EDID blocks.

Block numbering starts with 0 being the base EDID block, and extension block
starting at 1.

EDID blocks are 128 bytes in size.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:41 +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
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
d796348e29 dptx: Made the I2C read function more robust.
- Changed the offset from type u8 to u16.
- In order to accomodate offsets greater than 255, a segment pointer is used.
	- The I2C read funciton is now able to access blocks other than the
	block 0 and 1 at a given address. E.g., EDID extension blocks may now be
	accessed by reading from I2C address 0x50 (raw=0xA0/0xA1) and writing
	the appropriate segment pointer and offset.
		- Input offset=0.
			- EDID block 0: I2C read on offset=0 and segptr=0.
		- Input offset=128.
			- EDID block 1: I2C read on offset=128 and segptr=0.
		- Input offset=256.
			- EDID block 2: I2C read on offset=0 and segptr=1.
		- Input offset=384.
			- EDID block 3: I2C read on offset=128 and segptr=1.
		- etc.
	- Writing to the I2C address 0x30 (raw=0x60/0x61) sets the segment
	pointer.
	- Writing to an I2C address sets the offset that will be read from that
	address. E.g., a read of the EDID, starting at offset 128 would be done
	by writing 128 to 0x50, then reading from 0x50.
	- Offsets that cross a 256-byte boundary requiring increment of the
	segment pointer is also handled. E.g. A 16 byte read on input offset 500
	results in the the returned 16 byte array having the first 11 bytes from
	segptr=1 (bytes 244-255) and the last 5 bytes from segptr=2 (bytes 0-4).

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:35 +05:30
Andrei-Liviu Simion
8e3f3c9863 dptx: I2C writes do not use an offset.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:34 +05:30
Andrei-Liviu Simion
d8f1ad28d3 dptx: Renamed some arguments to be more consistent among functions.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:34 +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
24a0758d5d dptx: Updated header comments to reflect status of testing.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:13 +05:30
Andrei-Liviu Simion
4b7667f2c8 dptx: Updated revision history.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:12 +05:30
Andrei-Liviu Simion
3974e30158 dptx: Added retry when checking if a connection exists.
It was observed that in MST mode, some of the sideband message were failing
due to the first check not showing a connected device.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:10 +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
a448e98992 dptx: Added a method for overriding the user pixel width of the MSA structure.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:25 +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
2ebd71bd56 dptx: Exporting additional IP configuration parameters.
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
ee6966c323 dptx: Removed EDID structure from Dptx structure.
Instead, moved it to the application level and functions operating on the Edid
take a pointer to the Edid as an argument.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:22 +05:30
Andrei-Liviu Simion
701b2bca5f dptx: Added user control of custom voltage swing and pre-emphasis TX levels.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:22 +05:30
Andrei-Liviu Simion
62bab1fb77 dptx: MST: Added some missed documentation for some struct members.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:22 +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
32b81aa075 dptx: Removed trailing whitespace.
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
Andrei-Liviu Simion
c4154510b8 dptx: Initial commit for multi-stream transport (MST) functionality.
- Now supporting up to 4 streams.
- Separate set of main stream attributes (MSA) for each stream.
- New MST calculations for payload bandwidth number (PBN) and time slot
allocation.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:19 +05:30
Andrei-Liviu Simion
808d1b79f6 dptx: More documentation for Doxygen.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:12 +05:30
Andrei-Liviu Simion
8a5fe55ba2 dptx: Using tabs instead of 8 spaces.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:12 +05:30
Andrei-Liviu Simion
653c4624dd dptx: Added an audio example.
The user needs to implement Dptx_ConfigureAudioSrc and Dptx_AudioSendInfoFrame
as these functions are application-specific.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:11 +05:30
Andrei-Liviu Simion
94cf07d9a9 dptx: Clean-up and commenting.
- General clean-up and commenting.
- Added comment documentation to the examples, as well as some general
information in xdptx.h.
- Examples now identify the CPU architecture using the existence of
XPAR_INTC_0_DEVICE_ID from the xparameters.h instead of the __MICROBLAZE__
macro.
- Added and renamed some files for improved integration into SDK.
- Cleaned-up documentation and code for readability.
- No longer returning XST_INVALID_PARAMETER in lieu of asserts.
- Renamed TxConfig member of the XDptx structure to Config.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:11 +05:30
Andrei-Liviu Simion
b94a087ad1 dptx: AUX transaction improvements for multiple read/writes.
AUX read and writes greater than 16 data bytes require multiple transactions.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:10 +05:30
Andrei Simion
faa2628852 dptx: Intial commit.
Initial DisplayPort TX driver submission. Currently, only supporting SST.

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