UPSTREAM: [media] lirc: LIRC_{G,S}ET_SEND_MODE fail if device cannot transmit

These ioctls should not succeed if the device cannot send. Also make it
clear that these ioctls should return the lirc mode, although the actual
value does not change.

Signed-off-by: Sean Young <sean@mess.org>
Reviewed-by: Andi Shyti <andi.shyti@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
(cherry picked from commit 07e9293c18)
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
This commit is contained in:
Sean Young
2016-12-02 15:16:09 -02:00
committed by Tao Huang
parent ef99484a61
commit b08442b3e7

View File

@@ -204,11 +204,17 @@ static long ir_lirc_ioctl(struct file *filep, unsigned int cmd,
/* legacy support */
case LIRC_GET_SEND_MODE:
val = LIRC_CAN_SEND_PULSE & LIRC_CAN_SEND_MASK;
if (!dev->tx_ir)
return -ENOTTY;
val = LIRC_MODE_PULSE;
break;
case LIRC_SET_SEND_MODE:
if (val != (LIRC_MODE_PULSE & LIRC_CAN_SEND_MASK))
if (!dev->tx_ir)
return -ENOTTY;
if (val != LIRC_MODE_PULSE)
return -EINVAL;
return 0;