From c658c8e53ed199f0041225e02ad8274a88a585a2 Mon Sep 17 00:00:00 2001 From: Andrei-Liviu Simion Date: Sat, 25 Oct 2014 12:50:18 -0700 Subject: [PATCH] dptx: Added an offset argument for remote I2C reads. Signed-off-by: Andrei-Liviu Simion --- XilinxProcessorIPLib/drivers/dptx/src/xdptx.h | 3 ++- XilinxProcessorIPLib/drivers/dptx/src/xdptx_mst.c | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/XilinxProcessorIPLib/drivers/dptx/src/xdptx.h b/XilinxProcessorIPLib/drivers/dptx/src/xdptx.h index 640aa28b..741f3f74 100644 --- a/XilinxProcessorIPLib/drivers/dptx/src/xdptx.h +++ b/XilinxProcessorIPLib/drivers/dptx/src/xdptx.h @@ -847,7 +847,8 @@ u32 XDptx_SendSbMsgRemoteDpcdRead(XDptx *InstancePtr, u8 LinkCountTotal, u32 XDptx_SendSbMsgRemoteIicWrite(XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, u8 IicDeviceId, u8 BytesToWrite, u8 *WriteData); u32 XDptx_SendSbMsgRemoteIicRead(XDptx *InstancePtr, u8 LinkCountTotal, - u8 *RelativeAddress, u8 IicDeviceId, u8 BytesToRead, u8 *ReadData); + u8 *RelativeAddress, u8 IicDeviceId, u8 Offset, u8 BytesToRead, + u8 *ReadData); u32 XDptx_SendSbMsgLinkAddress(XDptx *InstancePtr, u8 LinkCountTotal, u8 *RelativeAddress, XDptx_SbMsgLinkAddressReplyDeviceInfo *DeviceInfo); u32 XDptx_SendSbMsgEnumPathResources(XDptx *InstancePtr, u8 LinkCountTotal, diff --git a/XilinxProcessorIPLib/drivers/dptx/src/xdptx_mst.c b/XilinxProcessorIPLib/drivers/dptx/src/xdptx_mst.c index 5c741feb..e72a2705 100644 --- a/XilinxProcessorIPLib/drivers/dptx/src/xdptx_mst.c +++ b/XilinxProcessorIPLib/drivers/dptx/src/xdptx_mst.c @@ -1254,7 +1254,8 @@ u32 XDptx_SendSbMsgRemoteIicWrite(XDptx *InstancePtr, u8 LinkCountTotal, * *******************************************************************************/ u32 XDptx_SendSbMsgRemoteIicRead(XDptx *InstancePtr, u8 LinkCountTotal, - u8 *RelativeAddress, u8 IicDeviceId, u8 BytesToRead, u8 *ReadData) + u8 *RelativeAddress, u8 IicDeviceId, u8 Offset, u8 BytesToRead, + u8 *ReadData) { u32 Status; XDptx_SidebandMsg Msg; @@ -1290,7 +1291,7 @@ u32 XDptx_SendSbMsgRemoteIicRead(XDptx *InstancePtr, u8 LinkCountTotal, 4) | 1; Msg.Body.MsgData[2] = IicDeviceId; /* Write I2C device ID. */ Msg.Body.MsgData[3] = 1; /* Number of bytes to write. */ - Msg.Body.MsgData[4] = 0; /* Write byte[0]. */ + Msg.Body.MsgData[4] = Offset; Msg.Body.MsgData[5] = (0 << 4) | 0; Msg.Body.MsgData[6] = IicDeviceId; /* Read I2C device ID. */ Msg.Body.MsgData[7] = BytesToRead; @@ -1780,7 +1781,7 @@ u32 XDptx_GetRemoteEdid(XDptx *InstancePtr, u8 LinkCountTotal, else { Status = XDptx_SendSbMsgRemoteIicRead(InstancePtr, LinkCountTotal, RelativeAddress, - XDPTX_EDID_ADDR, XDPTX_EDID_SIZE, Edid); + XDPTX_EDID_ADDR, 0, XDPTX_EDID_SIZE, Edid); } return Status;