[Linux-parport] parport_pc.c and parport_serial.c need improvements

Joe Krahn krahn at niehs.nih.gov
Mon Apr 26 14:57:28 EDT 2010

I sent the to LKML; this list is probably more relevant.

In 2005, Russel King cleaned up parport_serial.c to remove redundancy
with 8250_pci.c (http://lwn.net/Articles/141484/). In working on
fixing the ITE-887x driver, I realized that there is still a lot of
redundancy with parport_pc.c. Furthermore, parport_pc seems to have
some deficiencies. It does not call pci_disable_device() when
unloading the driver (as pci.txt says it should) and seems to be
missing power suspend/resume code. Maybe these are not important for
parport hardware?

Also, the Super IO code looks rather messy. To work with
parport_serial, struct pci_parport_data could include a device_private
pointer to attach  the serial-port data. The SuperIO code could use
this to attach struct superio_struct. Maybe the SuperIO code should be
in a separate module (i.e. parport_superio) that depends on
parport_pc, similar to parport_serial. In any case, it would be nice
to see more comments on why the SuperIO code is designed as it is.

My idea is that the parport code could be a bit more like
serial/8520_pci code, which seems more up-to-date, and may better fit eh
current kernel design guidelines.

OTOH, maybe parport hardware is simple enough that it is not worth
messing with the code as long as it seems to work OK.

Joe Krahn

More information about the Linux-parport mailing list