Skip to content

Commit a2c515b

Browse files
RDKEMW-6230: Retry logic used dsGetHDMIARCPortId in HdmiCecSink (#196)
* RDKEMW-6230: Retry logic used dsGetHDMIARCPortId in HdmiCecSink Signed-off-by: yuvaramachandran_gurusamy <[email protected]> * RDKEMW-6230: Increase retry count to 6 Signed-off-by: yuvaramachandran_gurusamy <[email protected]> --------- Signed-off-by: yuvaramachandran_gurusamy <[email protected]>
1 parent 902e128 commit a2c515b

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

HdmiCecSink/HdmiCecSink.cpp

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3531,15 +3531,25 @@ namespace WPEFramework
35313531
{
35323532
int err;
35333533
dsGetHDMIARCPortIdParam_t param;
3534-
err = IARM_Bus_Call(IARM_BUS_DSMGR_NAME,
3535-
(char *)IARM_BUS_DSMGR_API_dsGetHDMIARCPortId,
3536-
(void *)&param,
3537-
sizeof(param));
3538-
if (IARM_RESULT_SUCCESS == err)
3539-
{
3540-
LOGINFO("HDMI ARC port ID HdmiArcPortID=[%d] \n", param.portId);
3541-
HdmiArcPortID = param.portId;
3542-
}
3534+
unsigned int retryCount = 1;
3535+
do {
3536+
usleep(50000); // Sleep for 50ms before retrying
3537+
param.portId = -1; // Initialize to an invalid port ID
3538+
err = IARM_Bus_Call(IARM_BUS_DSMGR_NAME,
3539+
(char *)IARM_BUS_DSMGR_API_dsGetHDMIARCPortId,
3540+
(void *)&param,
3541+
sizeof(param));
3542+
if (IARM_RESULT_SUCCESS == err)
3543+
{
3544+
LOGINFO("HDMI ARC port ID HdmiArcPortID[%d] on retry count[%d]", param.portId, retryCount);
3545+
HdmiArcPortID = param.portId;
3546+
break;
3547+
}
3548+
else
3549+
{
3550+
LOGWARN("IARM_Bus_Call failed with error[%d], retry count[%d]", err, retryCount);
3551+
}
3552+
} while(retryCount++ <= 6);
35433553
}
35443554

35453555
void HdmiCecSink::getCecVersion()

0 commit comments

Comments
 (0)