diff --git a/HdmiCecSink/HdmiCecSink.cpp b/HdmiCecSink/HdmiCecSink.cpp index b5150cf8..ecb5415e 100644 --- a/HdmiCecSink/HdmiCecSink.cpp +++ b/HdmiCecSink/HdmiCecSink.cpp @@ -3531,15 +3531,25 @@ namespace WPEFramework { int err; dsGetHDMIARCPortIdParam_t param; - err = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, - (char *)IARM_BUS_DSMGR_API_dsGetHDMIARCPortId, - (void *)¶m, - sizeof(param)); - if (IARM_RESULT_SUCCESS == err) - { - LOGINFO("HDMI ARC port ID HdmiArcPortID=[%d] \n", param.portId); - HdmiArcPortID = param.portId; - } + unsigned int retryCount = 1; + do { + usleep(50000); // Sleep for 50ms before retrying + param.portId = -1; // Initialize to an invalid port ID + err = IARM_Bus_Call(IARM_BUS_DSMGR_NAME, + (char *)IARM_BUS_DSMGR_API_dsGetHDMIARCPortId, + (void *)¶m, + sizeof(param)); + if (IARM_RESULT_SUCCESS == err) + { + LOGINFO("HDMI ARC port ID HdmiArcPortID[%d] on retry count[%d]", param.portId, retryCount); + HdmiArcPortID = param.portId; + break; + } + else + { + LOGWARN("IARM_Bus_Call failed with error[%d], retry count[%d]", err, retryCount); + } + } while(retryCount++ <= 6); } void HdmiCecSink::getCecVersion() diff --git a/Tests/L1Tests/tests/test_HdmiCecSink.cpp b/Tests/L1Tests/tests/test_HdmiCecSink.cpp index 38631077..22df165c 100755 --- a/Tests/L1Tests/tests/test_HdmiCecSink.cpp +++ b/Tests/L1Tests/tests/test_HdmiCecSink.cpp @@ -23,8 +23,6 @@ #include -#include "HdmiCecSinkImplementation.h" -#include "HdmiCecSinkMock.h" #include "HdmiCecSink.h" #include "FactoriesImplementation.h" #include "IarmBusMock.h"