Commit graph

101 commits

Author SHA1 Message Date
Nava kishore Manne
3f3559318d Drivers:standalone drivers license changes. 2015-06-24 14:56:48 +05:30
Andrei-Liviu Simion
db75f68f1f dp: rx: Capture interrupt status from INTERRUPT_CAUSE bits 8 to 31.
Previously, INTERRUPT_CAUSE bits 8 to 31 were being lost due to the variables
assigned having type u8.

This fix now uses masking on the interrupts as the condition to run an interrupt
handler rather than assigning the mask result to a new variable and using the
variable as a boolean condition.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-27 12:57:08 +05:30
Andrei-Liviu Simion
7619fa4f90 dp: Handle new PHY_CONFIG bit for 8b10b encoding.
Bit 21 of DPTX register PHY_CONFIG (0x200) enables 8b10b encoding.

In v6.0 of the DPTX core, the default value is '1'.
Current driver should keep this value untouched when writing to the PHY_CONFIG
register.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-27 12:56:51 +05:30
Kishore Kumar Korathaluri
3ceaccc416 dp : added hsi namespace to xdefine procs.
Signed-off-by: Kishore Kumar Korathaluri <kkorath@xilinx.com>
2015-04-26 10:35:19 +05:30
Andrei-Liviu Simion
3b2961139d dp: Only increment segment pointer if required.
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>
2015-04-26 10:34:49 +05:30
Andrei-Liviu Simion
57a0c64dd0 dp: tx: Don't write voltage swing and pre-emphasis values when writing TP0.
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>
2015-04-26 10:34:44 +05:30
Andrei-Liviu Simion
a36b777a40 dp: tx: When downshifting during link training, always issue training pattern 0.
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>
2015-04-26 10:34:43 +05:30
Andrei-Liviu Simion
45e5fabd1b dp: Update Doxygen documentation.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:41 +05:30
Andrei-Liviu Simion
b45d77cbe5 dp: rx: Added audio info and extension packet received interrupt handlers.
XDp_RxSetIntrInfoPktHandler and XDp_RxSetIntrExtPktHandler.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:40 +05:30
Andrei-Liviu Simion
74cef5fbbb dp: rx: Added audio control.
Enable, disable, and reset of audio stream packets on the main link.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:39 +05:30
Andrei-Liviu Simion
7368c8e1c9 dp: tx: Added function header to XDp_TxSendSbMsgRemoteIicWrite.
Added function description.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:38 +05:30
Andrei-Liviu Simion
83f6fe1f77 dp: rx: example: Set up handlers after core configuration has complete.
Since the RX handler initialization functions assert that the core is of type
RX, the configuration initialization function must be called prior to the
handlers being set.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:38 +05:30
Andrei-Liviu Simion
80eb9a43cd dp: Added TX/RX assertions on all API functions.
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>
2015-04-26 10:34:37 +05:30
Andrei-Liviu Simion
09b2ef3c26 dp: Enumerated the 2 modes of DisplayPort operation.
XDP_TX for Displayport transmitters (sources) XDP_RX for DisplayPort receivers
(sinks).

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:36 +05:30
Andrei-Liviu Simion
7b382d036f dp: TX/RX core type should operate on the XDp structure pointer.
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>
2015-04-26 10:34:35 +05:30
Andrei-Liviu Simion
e394c31035 dp: Added initial modification history comment.
Added note to the initial release that the TX code was taken from the dptx
driver.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:34 +05:30
Andrei-Liviu Simion
64a4f5378a dp: XDptx->XDp and XDprx->XDp.
XDp is used as an argument for all API functions. If a user application uses a
deprecated structure, it is automatically converted to the top-level XDp
structure which contains either a XDp_Tx or XDp_Rx structure which corresponds
to the previous XDptx and XDprx.
This is done for back-wards compatability with the dptx driver to minimize user
effort in migrating to the new dp driver.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:33 +05:30
Andrei-Liviu Simion
a13413ec39 dp: tx: Removed redundant condition.
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>
2015-04-26 10:34:32 +05:30
Andrei-Liviu Simion
05f71ab631 dp: rx: Waiting for PHY to be ready based on number of lanes.
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>
2015-04-26 10:34:32 +05:30
Andrei-Liviu Simion
e81ba1fde6 dp: Clean-up.
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>
2015-04-26 10:34:31 +05:30
Andrei-Liviu Simion
2a662e6f48 dp: tx: Added PHY polarity inversion option.
Both for all lanes and for individual lane PHY polarity setting.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:30 +05:30
Andrei-Liviu Simion
fdc058a91a dp: tx: Register space has 3 hex digits.
Clean-up.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:29 +05:30
Andrei-Liviu Simion
97b327b727 dp: Added Doxygen documentation.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:26 +05:30
Andrei-Liviu Simion
1a280fdfc7 dp: Unified naming of xdptx and xdprx to xdp.
As per Xilinx standalone coding guidelines.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:21 +05:30
Andrei-Liviu Simion
4d686c08e0 dp: Check for ARM first for usleep.
Zynq systems may have both MicroBlaze and ARM. If this is the case, assume that
the application is running on an ARM processor.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:03 +05:30
Andrei-Liviu Simion
aa72195688 dp: rx: Use definitions instead of hard-coded values.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:02 +05:30
Andrei-Liviu Simion
01658a8c12 dp: rx: Updated some of the modification history.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:01 +05:30
Andrei-Liviu Simion
085e8da6cd dp: rx: Added interrupt with timer example.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:01 +05:30
Andrei-Liviu Simion
37dd178424 dp: rx: Fixed names of some incorrectly used definitions.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:34:00 +05:30
Andrei-Liviu Simion
574034b189 dp: rx: Added selftest function.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:59 +05:30
Andrei-Liviu Simion
a5359d4c2d dp: tcl: Generate dp_g.c instead of dptx_g.c.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:58 +05:30
Andrei-Liviu Simion
e0d0e0c1e7 dp: rx: Added core masks, shifts, and register values.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:57 +05:30
Andrei-Liviu Simion
178a11326e dp: rx: Added assertions on function arguments.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:56 +05:30
Andrei-Liviu Simion
835c8acbab dp: rx: Added modification history.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:56 +05:30
Andrei-Liviu Simion
249af540c6 dp: rx: Added file header documentation.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:55 +05:30
Andrei-Liviu Simion
ff3f15acbb dp: rx: Added function header comments for interrupt related functions.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:54 +05:30
Andrei-Liviu Simion
9463358c28 dp: rx: Added function header comments for primary source file.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:53 +05:30
Andrei-Liviu Simion
13e6880ff5 dp: rx: Added a function to enable a specified interrupt.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:51 +05:30
Andrei-Liviu Simion
3748170590 dp: rx: Added a function to disable a specified interrupt.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:51 +05:30
Andrei-Liviu Simion
8593e4f84a dp: rx: Added a function to generate an HPD.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:50 +05:30
Andrei-Liviu Simion
f588c504e9 dp: rx: Added interrupt handler.
The interrupt handler arbitrates interrupts to appropriate handlers.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:49 +05:30
Andrei-Liviu Simion
7f0b844897 dp: rx: Fixed naming of interrupt handlers.
Mislabeled TX instead of RX.

Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:48 +05:30
Andrei-Liviu Simion
de3fbb4466 dp: rx: Added callback for training pattern interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:47 +05:30
Andrei-Liviu Simion
1b613594e3 dp: rx: Added callback for bandwidth change interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:46 +05:30
Andrei-Liviu Simion
26829905a9 dp: rx: Added callback for training done interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:46 +05:30
Andrei-Liviu Simion
134b32d770 dp: rx: Added callback for valid video interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:45 +05:30
Andrei-Liviu Simion
937ccc287c dp: rx: Added callback for training lost interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:44 +05:30
Andrei-Liviu Simion
fba443ffde dp: rx: Added callback for vertical blanking interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:43 +05:30
Andrei-Liviu Simion
2a79d28de6 dp: rx: Added callback for no video interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:42 +05:30
Andrei-Liviu Simion
c5b9fdac16 dp: rx: Added callback for power state change interrupts.
Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
2015-04-26 10:33:41 +05:30