Skip to content

Commit e7223f1

Browse files
sudipm-mukherjeegregkh
authored andcommitted
ppdev: use new parport device model
Modify ppdev driver to use the new parallel port device model. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 3c8db58 commit e7223f1

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

drivers/char/ppdev.c

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ static int register_device(int minor, struct pp_struct *pp)
286286
struct parport *port;
287287
struct pardevice *pdev = NULL;
288288
char *name;
289-
int fl;
289+
struct pardev_cb ppdev_cb;
290290

291291
name = kasprintf(GFP_KERNEL, CHRDEV "%x", minor);
292292
if (name == NULL)
@@ -299,9 +299,11 @@ static int register_device(int minor, struct pp_struct *pp)
299299
return -ENXIO;
300300
}
301301

302-
fl = (pp->flags & PP_EXCL) ? PARPORT_FLAG_EXCL : 0;
303-
pdev = parport_register_device(port, name, NULL,
304-
NULL, pp_irq, fl, pp);
302+
memset(&ppdev_cb, 0, sizeof(ppdev_cb));
303+
ppdev_cb.irq_func = pp_irq;
304+
ppdev_cb.flags = (pp->flags & PP_EXCL) ? PARPORT_FLAG_EXCL : 0;
305+
ppdev_cb.private = pp;
306+
pdev = parport_register_dev_model(port, name, &ppdev_cb, minor);
305307
parport_put_port(port);
306308

307309
if (!pdev) {
@@ -799,10 +801,23 @@ static void pp_detach(struct parport *port)
799801
device_destroy(ppdev_class, MKDEV(PP_MAJOR, port->number));
800802
}
801803

804+
static int pp_probe(struct pardevice *par_dev)
805+
{
806+
struct device_driver *drv = par_dev->dev.driver;
807+
int len = strlen(drv->name);
808+
809+
if (strncmp(par_dev->name, drv->name, len))
810+
return -ENODEV;
811+
812+
return 0;
813+
}
814+
802815
static struct parport_driver pp_driver = {
803816
.name = CHRDEV,
804-
.attach = pp_attach,
817+
.probe = pp_probe,
818+
.match_port = pp_attach,
805819
.detach = pp_detach,
820+
.devmodel = true,
806821
};
807822

808823
static int __init ppdev_init(void)

0 commit comments

Comments
 (0)