Skip to content

Commit 712551f

Browse files
Alphixmchehab
authored andcommitted
[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: David Härdeman <[email protected]> Signed-off-by: Sean Young <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent bd16168 commit 712551f

File tree

1 file changed

+12
-32
lines changed

1 file changed

+12
-32
lines changed

drivers/media/rc/lirc_dev.c

Lines changed: 12 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,6 @@ static struct irctl *irctls[MAX_IRCTL_DEVICES];
6565
/* Only used for sysfs but defined to void otherwise */
6666
static struct class *lirc_class;
6767

68-
/* helper function
69-
* initializes the irctl structure
70-
*/
71-
static void lirc_irctl_init(struct irctl *ir)
72-
{
73-
mutex_init(&ir->irctl_lock);
74-
ir->d.minor = NOPLUG;
75-
}
76-
7768
static void lirc_release(struct device *ld)
7869
{
7970
struct irctl *ir = container_of(ld, struct irctl, dev);
@@ -91,27 +82,6 @@ static void lirc_release(struct device *ld)
9182
kfree(ir);
9283
}
9384

94-
static int lirc_cdev_add(struct irctl *ir)
95-
{
96-
struct lirc_driver *d = &ir->d;
97-
struct cdev *cdev;
98-
int retval;
99-
100-
cdev = &ir->cdev;
101-
102-
if (!d->fops)
103-
return -EINVAL;
104-
105-
cdev_init(cdev, d->fops);
106-
cdev->owner = d->owner;
107-
retval = kobject_set_name(&cdev->kobj, "lirc%d", d->minor);
108-
if (retval)
109-
return retval;
110-
111-
cdev->kobj.parent = &ir->dev.kobj;
112-
return cdev_add(cdev, ir->dev.devt, 1);
113-
}
114-
11585
static int lirc_allocate_buffer(struct irctl *ir)
11686
{
11787
int err = 0;
@@ -167,6 +137,11 @@ int lirc_register_driver(struct lirc_driver *d)
167137
return -EINVAL;
168138
}
169139

140+
if (!d->fops) {
141+
pr_err("fops pointer not filled in!\n");
142+
return -EINVAL;
143+
}
144+
170145
if (d->minor >= MAX_IRCTL_DEVICES) {
171146
dev_err(d->dev, "minor must be between 0 and %d!\n",
172147
MAX_IRCTL_DEVICES - 1);
@@ -210,7 +185,8 @@ int lirc_register_driver(struct lirc_driver *d)
210185
err = -ENOMEM;
211186
goto out_lock;
212187
}
213-
lirc_irctl_init(ir);
188+
189+
mutex_init(&ir->irctl_lock);
214190
irctls[minor] = ir;
215191
d->minor = minor;
216192

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

241-
err = lirc_cdev_add(ir);
217+
cdev_init(&ir->cdev, d->fops);
218+
ir->cdev.owner = ir->d.owner;
219+
ir->cdev.kobj.parent = &ir->dev.kobj;
220+
221+
err = cdev_add(&ir->cdev, ir->dev.devt, 1);
242222
if (err)
243223
goto out_free_dev;
244224

0 commit comments

Comments
 (0)