summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPortisch <hugo.portisch@yahoo.de>2019-10-22 09:46:08 +0300
committerDongjin Kim <tobetter@gmail.com>2020-05-03 15:05:35 +0300
commit47fb8f9a084e8244f49c7934ec6f5e1e7f000b62 (patch)
tree7907569c19801e9cfb6b0ca3974f3e5a4b878c71
parentc23dee237cdd697af7f5e0c263a277d860a0525d (diff)
downloadu-boot-47fb8f9a084e8244f49c7934ec6f5e1e7f000b62.tar.xz
BACKPORT: g12a/b: CEC_OC_ACTIVE_SOURCE: ignore phy address if broadcast
Change-Id: Ib4937aa2b02d25824faaff7770d515884632686c
-rw-r--r--arch/arm/cpu/armv8/g12a/firmware/scp_task/hdmi_cec_arc.c4
-rw-r--r--arch/arm/cpu/armv8/g12b/firmware/scp_task/hdmi_cec_arc.c4
2 files changed, 4 insertions, 4 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);
diff --git a/arch/arm/cpu/armv8/g12b/firmware/scp_task/hdmi_cec_arc.c b/arch/arm/cpu/armv8/g12b/firmware/scp_task/hdmi_cec_arc.c
index 498436a717..d3c7ba52aa 100644
--- a/arch/arm/cpu/armv8/g12b/firmware/scp_task/hdmi_cec_arc.c
+++ b/arch/arm/cpu/armv8/g12b/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);