]> git.hungrycats.org Git - linux/commitdiff
[PATCH] LP: add sysfs class support for lp devices
authorGreg Kroah-Hartman <greg@kroah.com>
Mon, 19 Jan 2004 08:39:52 +0000 (00:39 -0800)
committerGreg Kroah-Hartman <greg@kroah.com>
Mon, 19 Jan 2004 08:39:52 +0000 (00:39 -0800)
Add sysfs class support for lp devices.

Based on a patch from Hanna Linder <hannal@us.ibm.com>

drivers/char/lp.c

index b98318a2a2bb65855b0f267a6042e5467f8147df..83fdccefd0bdc2da2b953afc0eb74c78ed54dfff 100644 (file)
 struct lp_struct lp_table[LP_NO];
 
 static unsigned int lp_count = 0;
+static struct class_simple *lp_class;
 
 #ifdef CONFIG_LP_CONSOLE
 static struct parport *console_registered; // initially NULL
@@ -795,6 +796,8 @@ static int lp_register(int nr, struct parport *port)
        if (reset)
                lp_reset(nr);
 
+       class_simple_device_add(lp_class, MKDEV(LP_MAJOR, nr), NULL,
+                               "lp%d", nr);
        devfs_mk_cdev(MKDEV(LP_MAJOR, nr), S_IFCHR | S_IRUGO | S_IWUGO,
                        "printers/%d", nr);
 
@@ -897,6 +900,7 @@ int __init lp_init (void)
        }
 
        devfs_mk_dir("printers");
+       lp_class = class_simple_create(THIS_MODULE, "printer");
 
        if (parport_register_driver (&lp_driver)) {
                printk (KERN_ERR "lp: unable to register with parport\n");
@@ -958,8 +962,10 @@ static void lp_cleanup_module (void)
                        continue;
                parport_unregister_device(lp_table[offset].dev);
                devfs_remove("printers/%d", offset);
+               class_simple_device_remove(MKDEV(LP_MAJOR, offset));
        }
        devfs_remove("printers");
+       class_simple_destroy(lp_class);
 }
 
 __setup("lp=", lp_setup);