It seems that monitors capable of MST, upon switching to SST mode in the monitor
options menu, respond with NACK when the segment pointer is written.
These same monitors ACK segment pointer writes when running in MST mode.
Tested monitors that are SST only monitors also ACK segment pointer writes.
The issue here is that MST monitors running in SST mode will error out when the
I2C read function is called because the segment pointer is always being written
to 0 (segment pointer is reset), and thus receives a NACK.
This patch prevents this from happening.
From now on, if the user changes the segment pointer, it is up to them to reset
it to 0.
The I2C read will only increment the segment pointer when required to do a read
outside of the base EDID block.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
For compliance, training pattern 0 should be written without using a burst write
for voltage swing and pre-emphasis values.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
For compliance purposes, training pattern 0 needs to be sent between
downshifting of lane count and link rates.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Functions now assert the core context upon which they operate.
XDp_Tx* functions are meant to be used with the DisplayPort core in the TX mode
of operation.
XDp_Rx* functions are meant to be used with the DisplayPort core in the RX mode
of operation.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Rather than on the configuration structure pointer.
This makes it cleaner and easier to use as this function is an API function.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
If link does not need to be re-enabled, then it is already disabled. Don't need
to disable the link again.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
If the DisplayPort core is configured for 1 or 2 maximum lanes, wait for PHY to
be ready only on those lanes rather than waiting on all 4 lanes.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
Lines should not exceed 80 characters in length.
The pre-processor only replaces full names, so prefixes cannot be altered using
macros (#define XDPTX_ XDP_TX_).
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>