[media] lirc: return ENOTTY when ioctl is not supported
authorSean Young <sean@mess.org>
Thu, 26 Jan 2017 17:19:33 +0000 (15:19 -0200)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 24 Mar 2017 10:44:42 +0000 (07:44 -0300)
We shouldn't be using ENOSYS when a feature is not available. I've tested
lirc; nothing is broken as far as I can make out.

Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/rc/ir-lirc-codec.c
drivers/media/rc/lirc_dev.c

index 8517d5153fcf211606280e5eb4c83ea4837bc4fc..637b583963e39b59197e968aa464484898c4f16d 100644 (file)
@@ -139,7 +139,7 @@ static ssize_t ir_lirc_transmit_ir(struct file *file, const char __user *buf,
        }
 
        if (!dev->tx_ir) {
-               ret = -ENOSYS;
+               ret = -EINVAL;
                goto out;
        }
 
@@ -221,19 +221,19 @@ static long ir_lirc_ioctl(struct file *filep, unsigned int cmd,
        /* TX settings */
        case LIRC_SET_TRANSMITTER_MASK:
                if (!dev->s_tx_mask)
-                       return -ENOSYS;
+                       return -ENOTTY;
 
                return dev->s_tx_mask(dev, val);
 
        case LIRC_SET_SEND_CARRIER:
                if (!dev->s_tx_carrier)
-                       return -ENOSYS;
+                       return -ENOTTY;
 
                return dev->s_tx_carrier(dev, val);
 
        case LIRC_SET_SEND_DUTY_CYCLE:
                if (!dev->s_tx_duty_cycle)
-                       return -ENOSYS;
+                       return -ENOTTY;
 
                if (val <= 0 || val >= 100)
                        return -EINVAL;
@@ -243,7 +243,7 @@ static long ir_lirc_ioctl(struct file *filep, unsigned int cmd,
        /* RX settings */
        case LIRC_SET_REC_CARRIER:
                if (!dev->s_rx_carrier_range)
-                       return -ENOSYS;
+                       return -ENOTTY;
 
                if (val <= 0)
                        return -EINVAL;
@@ -265,32 +265,32 @@ static long ir_lirc_ioctl(struct file *filep, unsigned int cmd,
 
        case LIRC_SET_WIDEBAND_RECEIVER:
                if (!dev->s_learning_mode)
-                       return -ENOSYS;
+                       return -ENOTTY;
 
                return dev->s_learning_mode(dev, !!val);
 
        case LIRC_SET_MEASURE_CARRIER_MODE:
                if (!dev->s_carrier_report)
-                       return -ENOSYS;
+                       return -ENOTTY;
 
                return dev->s_carrier_report(dev, !!val);
 
        /* Generic timeout support */
        case LIRC_GET_MIN_TIMEOUT:
                if (!dev->max_timeout)
-                       return -ENOSYS;
+                       return -ENOTTY;
                val = DIV_ROUND_UP(dev->min_timeout, 1000);
                break;
 
        case LIRC_GET_MAX_TIMEOUT:
                if (!dev->max_timeout)
-                       return -ENOSYS;
+                       return -ENOTTY;
                val = dev->max_timeout / 1000;
                break;
 
        case LIRC_SET_REC_TIMEOUT:
                if (!dev->max_timeout)
-                       return -ENOSYS;
+                       return -ENOTTY;
 
                tmp = val * 1000;
 
index 393dccaabdd02ac83744faf049ef1a08675fe7ae..e930c0598d3fb01cb1b8081adf74cfb6becf3017 100644 (file)
@@ -623,7 +623,7 @@ long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                result = put_user(ir->d.max_timeout, (__u32 __user *)arg);
                break;
        default:
-               result = -EINVAL;
+               result = -ENOTTY;
        }
 
        mutex_unlock(&ir->irctl_lock);