From 3b2d898c44fb1b0da639df07f30b2410f0932adf Mon Sep 17 00:00:00 2001 From: Andrei-Liviu Simion Date: Fri, 16 Jan 2015 10:30:52 -0800 Subject: [PATCH] dp: rx: Added function to override the DPCD lane count value. Signed-off-by: Andrei-Liviu Simion --- XilinxProcessorIPLib/drivers/dp/src/xdprx.c | 14 ++++++++++++++ XilinxProcessorIPLib/drivers/dp/src/xdprx.h | 1 + 2 files changed, 15 insertions(+) diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c index 3b936f83..050e77b0 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.c +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.c @@ -217,6 +217,20 @@ void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate) 0x01); } +void XDprx_SetLaneCount(XDprx *InstancePtr, u8 LaneCount) +{ + InstancePtr->LinkConfig.LaneCount = LaneCount; + + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x01); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_LANE_COUNT_SET, + LaneCount); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_OVER_CTRL_DPCD, + 0x00); + XDprx_WriteReg(InstancePtr->Config.BaseAddr, XDPRX_LOCAL_EDID_VIDEO, + 0x01); +} + /******************************************************************************/ /** * This function installs a custom delay/sleep function to be used by the XDprx diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h index 7dfd01a4..401591fd 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h @@ -94,6 +94,7 @@ u32 XDprx_InitializeRx(XDprx *InstancePtr); void XDprx_DtgEn(XDprx *InstancePtr); void XDprx_DtgDis(XDprx *InstancePtr); void XDprx_SetLinkRate(XDprx *InstancePtr, u8 LinkRate); +void XDprx_SetLaneCount(XDprx *InstancePtr, u8 LaneCount); void XDprx_SetUserTimerHandler(XDprx *InstancePtr, XDp_TimerHandler CallbackFunc, void *CallbackRef); void XDprx_WaitUs(XDprx *InstancePtr, u32 MicroSeconds);