From 022c26cbbfc746e59d849578795dc2bf34c1e16b Mon Sep 17 00:00:00 2001 From: yuvaramachandran_gurusamy Date: Mon, 21 Jul 2025 09:36:44 +0000 Subject: [PATCH 1/2] RDKEMW-6230: Retry logic used dsGetHDMIARCPortId in HdmiCecSink Signed-off-by: yuvaramachandran_gurusamy --- HdmiCecSink/HdmiCecSink.cpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/HdmiCecSink/HdmiCecSink.cpp b/HdmiCecSink/HdmiCecSink.cpp index 26aef24c..d877dcc7 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++ <= 4); } void HdmiCecSink::getCecVersion() From 3fb4cbf4d6de5925c21b6a9a42284677cc8b26b1 Mon Sep 17 00:00:00 2001 From: Yuvaramachandran Gurusamy <123441336+yuvaramachandran-gurusamy@users.noreply.github.com> Date: Mon, 21 Jul 2025 22:15:04 +0530 Subject: [PATCH 2/2] RDKEMW-6230: Increase retry count to 6 Signed-off-by: yuvaramachandran_gurusamy --- HdmiCecSink/HdmiCecSink.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HdmiCecSink/HdmiCecSink.cpp b/HdmiCecSink/HdmiCecSink.cpp index d877dcc7..202e0b63 100644 --- a/HdmiCecSink/HdmiCecSink.cpp +++ b/HdmiCecSink/HdmiCecSink.cpp @@ -3549,7 +3549,7 @@ namespace WPEFramework { LOGWARN("IARM_Bus_Call failed with error[%d], retry count[%d]", err, retryCount); } - } while(retryCount++ <= 4); + } while(retryCount++ <= 6); } void HdmiCecSink::getCecVersion()