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:
Andrei-Liviu Simion 2015-01-13 15:57:25 -08:00 committed by Nava kishore Manne
parent a8370240c4
commit 55889d1a8d

View file

@ -420,6 +420,7 @@ u32 XDptx_CfgMainLinkMax(XDptx *InstancePtr)
u32 XDptx_EstablishLink(XDptx *InstancePtr)
{
u32 Status;
u32 Status2;
u32 ReenableMainLink;
/* Verify arguments. */
@ -440,21 +441,26 @@ u32 XDptx_EstablishLink(XDptx *InstancePtr)
XDptx_ResetPhy(InstancePtr, XDPTX_PHY_CONFIG_PHY_RESET_MASK);
/* Disable main link during training. */
ReenableMainLink = XDptx_ReadReg(InstancePtr->Config.BaseAddr,
XDPTX_ENABLE_MAIN_STREAM);
XDptx_DisableMainLink(InstancePtr);
/* Train main link. */
Status = XDptx_RunTraining(InstancePtr);
if (Status != XST_SUCCESS) {
return XST_FAILURE;
}
/* Reenable main link after training if required. */
if (ReenableMainLink != 0) {
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;
}
@ -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. */
Status = XDptx_CheckLinkStatus(InstancePtr,
InstancePtr->LinkConfig.LaneCount);