20 #include <linux/types.h>
21 #include <linux/module.h>
23 #include <linux/slab.h>
24 #include <linux/pci.h>
26 #include <linux/parport.h>
82 int autoirq,
int autodma);
115 { 1, { { 3, -1 }, } },
116 { 1, { { 3, -1 }, } },
117 { 1, { { 2, -1 }, }, netmos_parallel_init },
118 { 1, { { 0, -1 }, }, netmos_parallel_init },
119 { 2, { { 0, -1 }, { 2, -1 }, } },
120 {1, { { 3, 4 }, }, netmos_parallel_init },
121 {2, { { 0, 1 }, { 3, 4 }, } },
124 { 2, { { 1, 2}, { 3, 4 },} },
126 { 1, { { 3, 4 }, } },
127 { 1, { { 4, 5 }, } },
128 { 2, { { 1, 2 }, { 3, 4 }, } },
129 { 1, { { 1, 2 }, } },
130 { 1, { { 2, 3 }, } },
131 { 1, { { 2, -1 }, } },
132 { 1, { { 2, 3 }, } },
133 { 2, { { 2, -1 }, { 4, -1 }, } },
134 { 2, { { 2, 3 }, { 4, 5 }, } },
135 { 2, { { 2, 3 }, { 4, 5 }, } },
136 { 2, { { 2, 3 }, { 4, 5 }, } },
137 { 2, { { 2, 3 }, { 4, 5 }, } },
138 { 1, { { 2, -1 }, } },
139 { 1, { { 2, 3 }, } },
140 { 2, { { 2, -1 }, { 4, -1 }, } },
141 { 1, { { 2, 3 }, } },
142 { 1, { { 2, 3 }, } },
143 { 1, { { 2, 3 }, } },
144 { 1, { { 2, 3 }, } },
145 { 1, { { 2, 3 }, } },
146 { 1, { { 2, 3 }, } },
147 { 1, { { 2, 3 }, } },
148 { 1, { { 2, 3 }, } },
149 { 1, { { 2, -1}, } },
261 static struct pciserial_board pci_parport_serial_boards[] __devinitdata = {
489 board = &pci_parport_serial_boards[
id->driver_data];
497 return PTR_ERR(serial);
517 for (n = 0; n < card->
numports; n++) {
521 unsigned long io_lo, io_hi;
526 "parport_serial: %s: only %zu parallel ports "
527 "supported (%d reported)\n", pci_name (dev),
534 if ((hi >= 0) && (hi <= 6))
544 "PCI parallel port detected: I/O at %#lx(%#lx)\n",
549 "PCI parallel port detected: I/O at %#lx(%#lx), IRQ %d\n",
575 pci_set_drvdata (dev, priv);
579 pci_set_drvdata (dev,
NULL);
584 if (parport_register (dev,
id)) {
585 pci_set_drvdata (dev,
NULL);
590 if (serial_register (dev,
id)) {
592 for (i = 0; i < priv->
num_par; i++)
594 pci_set_drvdata (dev,
NULL);
607 pci_set_drvdata(dev,
NULL);
614 for (i = 0; i < priv->
num_par; i++)
636 static int parport_serial_pci_resume(
struct pci_dev *dev)
650 "device for resume (%d)\n", pci_name(dev), err);
663 static struct pci_driver parport_serial_pci_driver = {
664 .name =
"parport_serial",
665 .id_table = parport_serial_pci_tbl,
666 .probe = parport_serial_pci_probe,
669 .suspend = parport_serial_pci_suspend,
670 .resume = parport_serial_pci_resume,
675 static int __init parport_serial_init (
void)
677 return pci_register_driver (&parport_serial_pci_driver);
680 static void __exit parport_serial_exit (
void)