diff --git a/XilinxProcessorIPLib/drivers/dptx/src/xdptx.c b/XilinxProcessorIPLib/drivers/dptx/src/xdptx.c index 6f9a2d23..66244f38 100644 --- a/XilinxProcessorIPLib/drivers/dptx/src/xdptx.c +++ b/XilinxProcessorIPLib/drivers/dptx/src/xdptx.c @@ -414,6 +414,7 @@ u32 XDptx_CfgMainLinkMax(XDptx *InstancePtr) u32 XDptx_EstablishLink(XDptx *InstancePtr) { u32 Status; + u32 ReenableMainLink; /* Verify arguments. */ Xil_AssertNonvoid(InstancePtr != NULL); @@ -433,6 +434,9 @@ u32 XDptx_EstablishLink(XDptx *InstancePtr) XDptx_ResetPhy(InstancePtr, XDPTX_PHY_CONFIG_PHY_RESET_MASK); + ReenableMainLink = XDptx_ReadReg(InstancePtr->Config.BaseAddr, + XDPTX_ENABLE_MAIN_STREAM); + XDptx_DisableMainLink(InstancePtr); /* Train main link. */ @@ -441,7 +445,9 @@ u32 XDptx_EstablishLink(XDptx *InstancePtr) return XST_FAILURE; } - XDptx_EnableMainLink(InstancePtr); + if (ReenableMainLink != 0) { + XDptx_EnableMainLink(InstancePtr); + } return XST_SUCCESS; }