dp: dptx: Set training pattern to 0 even if training fails.
Required for DisplayPort compliance. Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com>
This commit is contained in:
parent
a8370240c4
commit
55889d1a8d
1 changed files with 10 additions and 11 deletions
|
@ -420,6 +420,7 @@ u32 XDptx_CfgMainLinkMax(XDptx *InstancePtr)
|
||||||
u32 XDptx_EstablishLink(XDptx *InstancePtr)
|
u32 XDptx_EstablishLink(XDptx *InstancePtr)
|
||||||
{
|
{
|
||||||
u32 Status;
|
u32 Status;
|
||||||
|
u32 Status2;
|
||||||
u32 ReenableMainLink;
|
u32 ReenableMainLink;
|
||||||
|
|
||||||
/* Verify arguments. */
|
/* Verify arguments. */
|
||||||
|
@ -440,21 +441,26 @@ u32 XDptx_EstablishLink(XDptx *InstancePtr)
|
||||||
|
|
||||||
XDptx_ResetPhy(InstancePtr, XDPTX_PHY_CONFIG_PHY_RESET_MASK);
|
XDptx_ResetPhy(InstancePtr, XDPTX_PHY_CONFIG_PHY_RESET_MASK);
|
||||||
|
|
||||||
|
/* Disable main link during training. */
|
||||||
ReenableMainLink = XDptx_ReadReg(InstancePtr->Config.BaseAddr,
|
ReenableMainLink = XDptx_ReadReg(InstancePtr->Config.BaseAddr,
|
||||||
XDPTX_ENABLE_MAIN_STREAM);
|
XDPTX_ENABLE_MAIN_STREAM);
|
||||||
|
|
||||||
XDptx_DisableMainLink(InstancePtr);
|
XDptx_DisableMainLink(InstancePtr);
|
||||||
|
|
||||||
/* Train main link. */
|
/* Train main link. */
|
||||||
Status = XDptx_RunTraining(InstancePtr);
|
Status = XDptx_RunTraining(InstancePtr);
|
||||||
if (Status != XST_SUCCESS) {
|
|
||||||
return XST_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/* Reenable main link after training if required. */
|
||||||
if (ReenableMainLink != 0) {
|
if (ReenableMainLink != 0) {
|
||||||
XDptx_EnableMainLink(InstancePtr);
|
XDptx_EnableMainLink(InstancePtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Turn off the training pattern and enable scrambler. */
|
||||||
|
Status2 = XDptx_SetTrainingPattern(InstancePtr,
|
||||||
|
XDPTX_TRAINING_PATTERN_SET_OFF);
|
||||||
|
if ((Status != XST_SUCCESS) || (Status2 != XST_SUCCESS)) {
|
||||||
|
return XST_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
return XST_SUCCESS;
|
return XST_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1458,13 +1464,6 @@ static u32 XDptx_RunTraining(XDptx *InstancePtr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Turn off the training pattern and enable scrambler. */
|
|
||||||
Status = XDptx_SetTrainingPattern(InstancePtr,
|
|
||||||
XDPTX_TRAINING_PATTERN_SET_OFF);
|
|
||||||
if (Status != XST_SUCCESS) {
|
|
||||||
return XST_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Final status check. */
|
/* Final status check. */
|
||||||
Status = XDptx_CheckLinkStatus(InstancePtr,
|
Status = XDptx_CheckLinkStatus(InstancePtr,
|
||||||
InstancePtr->LinkConfig.LaneCount);
|
InstancePtr->LinkConfig.LaneCount);
|
||||||
|
|
Loading…
Add table
Reference in a new issue