diff --git a/drivers/amlogic/cec/hdmi_ao_cec.c b/drivers/amlogic/cec/hdmi_ao_cec.c index b9b5b4de8cdc..d2702ab8a55f 100644 --- a/drivers/amlogic/cec/hdmi_ao_cec.c +++ b/drivers/amlogic/cec/hdmi_ao_cec.c @@ -3460,8 +3460,13 @@ static long hdmitx_cec_ioctl(struct file *f, * takes the value F.F.F.F */ tmp = cec_get_cur_phy_addr(); + if (copy_from_user(&a, argp, sizeof(a))) { + mutex_unlock(&cec_dev->cec_ioctl_mutex); + return -EINVAL; + } + CEC_INFO("hpd_state:%d , led color= %u\n", get_hpd_state(), a); if (cec_dev->dev_type != CEC_TV_ADDR) { - if (get_hpd_state() == 0) + if (get_hpd_state() == 0 && a != 2) //a!=2 mean ledcolor!=greenlight(standby mode) cec_dev->phy_addr = 0xffff; else if (tmp == 0) cec_dev->phy_addr = 0xffff;