mirror of https://gitee.com/openkylin/linux.git
[media] cec: set unclaimed addresses to CEC_LOG_ADDR_INVALID
Up to 4 logical addresses can be claimed. Make sure that any unclaimed logical addresses are set to CEC_LOG_ADDR_INVALID as per the documentation. Take special care in the unregistered case: when falling back to unregistered num_log_addrs may be > 1, so mark those as invalid. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
dcceb1eaf2
commit
0c1d61b0e4
|
@ -1056,6 +1056,8 @@ static int cec_config_thread_func(void *arg)
|
|||
/* Fall back to unregistered */
|
||||
las->log_addr[0] = CEC_LOG_ADDR_UNREGISTERED;
|
||||
las->log_addr_mask = 1 << las->log_addr[0];
|
||||
for (i = 1; i < las->num_log_addrs; i++)
|
||||
las->log_addr[i] = CEC_LOG_ADDR_INVALID;
|
||||
}
|
||||
adap->is_configured = true;
|
||||
adap->is_configuring = false;
|
||||
|
@ -1074,6 +1076,8 @@ static int cec_config_thread_func(void *arg)
|
|||
cec_report_features(adap, i);
|
||||
cec_report_phys_addr(adap, i);
|
||||
}
|
||||
for (i = las->num_log_addrs; i < CEC_MAX_LOG_ADDRS; i++)
|
||||
las->log_addr[i] = CEC_LOG_ADDR_INVALID;
|
||||
mutex_lock(&adap->lock);
|
||||
adap->kthread_config = NULL;
|
||||
mutex_unlock(&adap->lock);
|
||||
|
|
Loading…
Reference in New Issue