Commit graph

27 commits

Author SHA1 Message Date
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
63001153f7 dptx: Optimized immediate I2C read transaction.
The 16-byte chunking is already done by XDptx_AuxCommon, so there is no need to
do it in XDptx_IicRead.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:40 +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
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
7cc072277c dptx: Reset video streams and AUX logic upon core initialization.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-11-25 21:38:33 +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
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
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
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
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
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
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
e3f77d9867 dptx: Changed the self test function and example to check register reset values.
This function will now pass without a DisplayPort cable connected.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2014-09-02 11:21:11 +05:30
Andrei-Liviu Simion
57cd141001 dptx: Iterate on max voltage swing during training.
Required for compliance.

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