media: cec: move check from cec_transmit to cec_transmit_msg_fh
This ensures all the cec_msg checks are done in the same place. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Родитель
63d171f85f
Коммит
e76cbec85e
|
@ -761,6 +761,11 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct cec_msg *msg,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* A CDC-Only device can only send CDC messages */
|
||||||
|
if ((adap->log_addrs.flags & CEC_LOG_ADDRS_FL_CDC_ONLY) &&
|
||||||
|
(msg->len == 1 || msg->msg[1] != CEC_MSG_CDC_MESSAGE))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
if (msg->len >= 4 && msg->msg[1] == CEC_MSG_CDC_MESSAGE) {
|
if (msg->len >= 4 && msg->msg[1] == CEC_MSG_CDC_MESSAGE) {
|
||||||
msg->msg[2] = adap->phys_addr >> 8;
|
msg->msg[2] = adap->phys_addr >> 8;
|
||||||
msg->msg[3] = adap->phys_addr & 0xff;
|
msg->msg[3] = adap->phys_addr & 0xff;
|
||||||
|
|
|
@ -198,19 +198,11 @@ static long cec_transmit(struct cec_adapter *adap, struct cec_fh *fh,
|
||||||
if (copy_from_user(&msg, parg, sizeof(msg)))
|
if (copy_from_user(&msg, parg, sizeof(msg)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
/* A CDC-Only device can only send CDC messages */
|
|
||||||
if ((adap->log_addrs.flags & CEC_LOG_ADDRS_FL_CDC_ONLY) &&
|
|
||||||
(msg.len == 1 || msg.msg[1] != CEC_MSG_CDC_MESSAGE))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
mutex_lock(&adap->lock);
|
mutex_lock(&adap->lock);
|
||||||
if (adap->log_addrs.num_log_addrs == 0)
|
if (adap->log_addrs.num_log_addrs == 0)
|
||||||
err = -EPERM;
|
err = -EPERM;
|
||||||
else if (adap->is_configuring)
|
else if (adap->is_configuring)
|
||||||
err = -ENONET;
|
err = -ENONET;
|
||||||
else if (!adap->is_configured &&
|
|
||||||
(adap->needs_hpd || msg.msg[0] != 0xf0))
|
|
||||||
err = -ENONET;
|
|
||||||
else if (cec_is_busy(adap, fh))
|
else if (cec_is_busy(adap, fh))
|
||||||
err = -EBUSY;
|
err = -EBUSY;
|
||||||
else
|
else
|
||||||
|
|
Загрузка…
Ссылка в новой задаче