From 26bdc1bd633956b3f056b7e6bae1bed49f2f0359 Mon Sep 17 00:00:00 2001 From: Andrei-Liviu Simion Date: Fri, 16 Jan 2015 10:28:22 -0800 Subject: [PATCH] dp: rx: Added function to override the DPCD link rate value. Signed-off-by: Andrei-Liviu Simion --- XilinxProcessorIPLib/drivers/dp/src/xdprx.c | 13 +++++++++++++ XilinxProcessorIPLib/drivers/dp/src/xdprx.h | 1 + 2 files changed, 14 insertions(+) diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c index 59ae0e37..3b936f83 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c @@ -203,6 +203,19 @@ void XDprx_DtgDis(XDprx *InstancePtr) XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_SOFT_RESET, 0x00); } +void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate) +{ + InstancePtr->LinkConfig.LinkRate = LinkRate; + + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x01); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_LINK_BW_SET, + LinkRate); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x00); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_LOCAL_EDID_VIDEO, + 0x01); +} /******************************************************************************/ /** diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h index cc2974eb..7dfd01a4 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h @@ -93,6 +93,7 @@ u32 XDprx_InitializeRx(XDprx *InstancePtr); /* xdprx.c: General usage functions. */ void XDprx_DtgEn(XDprx *InstancePtr); void XDprx_DtgDis(XDprx *InstancePtr); +void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate); void XDprx_SetUserTimerHandler(XDprx *InstancePtr, XDp_TimerHandler CallbackFunc, void *CallbackRef); void XDprx_WaitUs(XDprx *InstancePtr, u32 MicroSeconds);