summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c')
-rw-r--r--arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c b/arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c
index 498436a717..d3c7ba52aa 100644
--- a/arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c
+++ b/arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c
@@ -614,7 +614,7 @@ static unsigned int cec_handle_message(void)
dest = cec_msg.buf[cec_msg.rx_read_pos].msg[0] & 0xf;
if (((hdmi_cec_func_config >> CEC_FUNC_MASK) & 0x1) &&
((hdmi_cec_func_config >> AUTO_POWER_ON_MASK) & 0x1) &&
- (dest == CEC_TV_ADDR)) {
+ (source == CEC_TV_ADDR)) {
/* request active source needed */
phy_addr = 0xffff;
cec_msg.cec_power = 0x1;
@@ -630,7 +630,7 @@ static unsigned int cec_handle_message(void)
(cec_msg.buf[cec_msg.rx_read_pos].msg[3] << 0);
if (((hdmi_cec_func_config >> CEC_FUNC_MASK) & 0x1) &&
((hdmi_cec_func_config >> AUTO_POWER_ON_MASK) & 0x1) &&
- (dest == CEC_TV_ADDR && check_addr(phy_addr))) {
+ (source == CEC_TV_ADDR && (dest == CEC_BROADCAST_ADDR || check_addr(phy_addr)))) {
cec_msg.cec_power = 0x1;
wake = (phy_addr << 0) |
(source << 16);