summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--arch/arm64/boot/dts/amlogic/gxl_p212_1g.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/gxl_p212_2g.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/gxl_p231_1g.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/gxl_p231_2g.dts2
-rw-r--r--drivers/amlogic/cec/hdmi_ao_cec.c14
-rw-r--r--drivers/amlogic/cec/hdmi_ao_cec.h2
6 files changed, 17 insertions, 7 deletions
diff --git a/drivers/amlogic/cec/hdmi_ao_cec.c b/drivers/amlogic/cec/hdmi_ao_cec.c
index aa2b4fe..e2245f7 100644
--- a/drivers/amlogic/cec/hdmi_ao_cec.c
+++ b/drivers/amlogic/cec/hdmi_ao_cec.c
@@ -775,10 +775,20 @@ static inline bool is_feature_abort_msg(const unsigned char *msg, int len)
return false;
}
+static inline bool is_report_phy_addr_msg(const unsigned char *msg, int len)
+{
+ if (!msg || len < 4)
+ return false;
+ if (msg[1] == CEC_OC_REPORT_PHYSICAL_ADDRESS)
+ return true;
+ return false;
+}
+
static bool need_nack_repeat_msg(const unsigned char *msg, int len, int t)
{
if (len == last_cec_msg->len &&
- (is_poll_message(msg[0]) || is_feature_abort_msg(msg, len)) &&
+ (is_poll_message(msg[0]) || is_feature_abort_msg(msg, len) ||
+ is_report_phy_addr_msg(msg, len)) &&
last_cec_msg->last_result == CEC_FAIL_NACK &&
jiffies - last_cec_msg->last_jiffies < t) {
return true;
@@ -1039,7 +1049,7 @@ int cec_ll_tx(const unsigned char *msg, unsigned char len)
mutex_lock(&cec_dev->cec_mutex);
/* make sure we got valid physical address */
if (len >= 2 && msg[1] == CEC_OC_REPORT_PHYSICAL_ADDRESS)
- check_physical_addr_valid(20);
+ check_physical_addr_valid(3);
try_again:
reinit_completion(&cec_dev->tx_ok);