Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 712551f0 authored by David Härdeman's avatar David Härdeman Committed by Mauro Carvalho Chehab
Browse files

[media] lirc_dev: remove lirc_irctl_init() and lirc_cdev_add()



These two functions only make the logic in lirc_register_driver()
harder to follow.

(Note that almost no other driver calls kobject_set_name() on their cdev
so I simply removed that part).

Signed-off-by: default avatarDavid Härdeman <david@hardeman.nu>
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent bd16168d
Loading
Loading
Loading
Loading
+12 −32
Original line number Diff line number Diff line
@@ -65,15 +65,6 @@ static struct irctl *irctls[MAX_IRCTL_DEVICES];
/* Only used for sysfs but defined to void otherwise */
static struct class *lirc_class;

/*  helper function
 *  initializes the irctl structure
 */
static void lirc_irctl_init(struct irctl *ir)
{
	mutex_init(&ir->irctl_lock);
	ir->d.minor = NOPLUG;
}

static void lirc_release(struct device *ld)
{
	struct irctl *ir = container_of(ld, struct irctl, dev);
@@ -91,27 +82,6 @@ static void lirc_release(struct device *ld)
	kfree(ir);
}

static int lirc_cdev_add(struct irctl *ir)
{
	struct lirc_driver *d = &ir->d;
	struct cdev *cdev;
	int retval;

	cdev = &ir->cdev;

	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;

	cdev->kobj.parent = &ir->dev.kobj;
	return cdev_add(cdev, ir->dev.devt, 1);
}

static int lirc_allocate_buffer(struct irctl *ir)
{
	int err = 0;
@@ -167,6 +137,11 @@ int lirc_register_driver(struct lirc_driver *d)
		return -EINVAL;
	}

	if (!d->fops) {
		pr_err("fops pointer not filled in!\n");
		return -EINVAL;
	}

	if (d->minor >= MAX_IRCTL_DEVICES) {
		dev_err(d->dev, "minor must be between 0 and %d!\n",
						MAX_IRCTL_DEVICES - 1);
@@ -210,7 +185,8 @@ int lirc_register_driver(struct lirc_driver *d)
		err = -ENOMEM;
		goto out_lock;
	}
	lirc_irctl_init(ir);

	mutex_init(&ir->irctl_lock);
	irctls[minor] = ir;
	d->minor = minor;

@@ -238,7 +214,11 @@ int lirc_register_driver(struct lirc_driver *d)
	ir->dev.release = lirc_release;
	dev_set_name(&ir->dev, "lirc%d", ir->d.minor);

	err = lirc_cdev_add(ir);
	cdev_init(&ir->cdev, d->fops);
	ir->cdev.owner = ir->d.owner;
	ir->cdev.kobj.parent = &ir->dev.kobj;

	err = cdev_add(&ir->cdev, ir->dev.devt, 1);
	if (err)
		goto out_free_dev;