[media] lirc_dev: make fops mandatory
authorDavid Härdeman <david@hardeman.nu>
Mon, 1 May 2017 16:04:06 +0000 (13:04 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 6 Jun 2017 12:02:20 +0000 (09:02 -0300)
Every caller of lirc_register_driver() passes their own fops and there
are no users of lirc_dev_fop_write() in the kernel tree. Thus we can
make fops mandatory and remove lirc_dev_fop_write().

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/rc/lirc_dev.c
include/media/lirc_dev.h

index 7d04f83..de7de08 100644 (file)
@@ -91,17 +91,6 @@ static void lirc_release(struct device *ld)
        kfree(ir);
 }
 
-static const struct file_operations lirc_dev_fops = {
-       .owner          = THIS_MODULE,
-       .read           = lirc_dev_fop_read,
-       .write          = lirc_dev_fop_write,
-       .poll           = lirc_dev_fop_poll,
-       .unlocked_ioctl = lirc_dev_fop_ioctl,
-       .open           = lirc_dev_fop_open,
-       .release        = lirc_dev_fop_close,
-       .llseek         = noop_llseek,
-};
-
 static int lirc_cdev_add(struct irctl *ir)
 {
        struct lirc_driver *d = &ir->d;
@@ -110,13 +99,11 @@ static int lirc_cdev_add(struct irctl *ir)
 
        cdev = &ir->cdev;
 
-       if (d->fops) {
-               cdev_init(cdev, d->fops);
-               cdev->owner = d->owner;
-       } else {
-               cdev_init(cdev, &lirc_dev_fops);
-               cdev->owner = THIS_MODULE;
-       }
+       if (!d->fops)
+               return -EINVAL;
+
+       cdev_init(cdev, d->fops);
+       cdev->owner = d->owner;
        retval = kobject_set_name(&cdev->kobj, "lirc%d", d->minor);
        if (retval)
                return retval;
@@ -638,24 +625,6 @@ void *lirc_get_pdata(struct file *file)
 EXPORT_SYMBOL(lirc_get_pdata);
 
 
-ssize_t lirc_dev_fop_write(struct file *file, const char __user *buffer,
-                          size_t length, loff_t *ppos)
-{
-       struct irctl *ir = irctls[iminor(file_inode(file))];
-
-       if (!ir) {
-               pr_err("called with invalid irctl\n");
-               return -ENODEV;
-       }
-
-       if (!ir->attached)
-               return -ENODEV;
-
-       return -EINVAL;
-}
-EXPORT_SYMBOL(lirc_dev_fop_write);
-
-
 static int __init lirc_dev_init(void)
 {
        int retval;
index 01649b0..1f327e2 100644 (file)
@@ -210,7 +210,4 @@ unsigned int lirc_dev_fop_poll(struct file *file, poll_table *wait);
 long lirc_dev_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
 ssize_t lirc_dev_fop_read(struct file *file, char __user *buffer, size_t length,
                          loff_t *ppos);
-ssize_t lirc_dev_fop_write(struct file *file, const char __user *buffer,
-                          size_t length, loff_t *ppos);
-
 #endif