Re: [RFC]: add sysfs support to parport_pc, v3
From: Greg KH
Date: Tue Jan 03 2006 - 20:07:38 EST
On Mon, Jan 02, 2006 at 09:39:50AM -0600, Jason Dravet wrote:
> Here is a new patch to parport_pc that adds sysfs and thus udev support to
> parport_pc. I fixed my earilier problem of the kernel oops (I forgot the
> class_destory) and I can insmod and rmmod this module all day long with no
> side effects. I do have one question why do both lp and parport nodes have
> to be created?
>
> What do you think of this patch? What would be the next step to get this
> into the kernel?
>
> Thanks,
> Jason Dravet
>
> signed-off-by: Jason Dravet <dravet@xxxxxxxxxxx>
"Signed-off-by:"
>
> --- /usr/src/linux-2.6.14/drivers/parport/parport_pc.c.orig 2005-12-30
> 13:52:48.000000000 -0600
> +++ /usr/src/linux-2.6.14/drivers/parport/parport_pc.c 2006-01-01
> 11:29:05.000000000 -0600
Line wrapped so it can't be applied :(
> @@ -14,6 +14,7 @@
> * More PCI support now conditional on CONFIG_PCI, 03/2001, Paul G.
> * Various hacks, Fred Barnes, 04/2001
> * Updated probing logic - Adam Belay <ambx1@xxxxxxxxxx>
> + * Added sysfs and udev - Jason Dravet <dravet@xxxxxxxxxxx>
> */
Doesn't belong here, this goes in the change log.
>
> /* This driver should work with any hardware that is broadly compatible
> @@ -55,6 +56,7 @@
> #include <linux/pci.h>
> #include <linux/pnp.h>
> #include <linux/sysctl.h>
> +#include <linux/sysfs.h>
Your email client also ate the leading spaces :(
>
> #include <asm/io.h>
> #include <asm/dma.h>
> @@ -99,6 +101,9 @@ static struct superio_struct { /* For Su
> int dma;
> } superios[NR_SUPERIOS] __devinitdata = { {0,},};
>
> +static struct class *parallel_class;
> +int countports = 0;
> +
> static int user_specified;
> #if defined(CONFIG_PARPORT_PC_SUPERIO) || \
> (defined(CONFIG_PARPORT_1284) && defined(CONFIG_PARPORT_PC_FIFO))
> @@ -2232,6 +2237,11 @@ struct parport *parport_pc_probe_port (u
> is mandatory (see above) */
> p->dma = PARPORT_DMA_NONE;
>
> + parallel_class = class_create(THIS_MODULE, "lp");
> + class_device_create(parallel_class, NULL, MKDEV(6, countports),
> NULL, "lp%i", countports);
> + class_device_create(parallel_class, NULL, MKDEV(99, countports),
> NULL, "parport%i", countports);
> + countports++;
What does the 6 and 99 come from? Aren't these #defined in a header
file somewhere?
thanks,
greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/