aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/parport/parport_serial.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/parport/parport_serial.c')
-rw-r--r--drivers/parport/parport_serial.c32
1 files changed, 12 insertions, 20 deletions
diff --git a/drivers/parport/parport_serial.c b/drivers/parport/parport_serial.c
index ef6169adb84..e9c32274df3 100644
--- a/drivers/parport/parport_serial.c
+++ b/drivers/parport/parport_serial.c
@@ -62,7 +62,6 @@ enum parport_pc_pci_cards {
62 timedia_9079a, 62 timedia_9079a,
63 timedia_9079b, 63 timedia_9079b,
64 timedia_9079c, 64 timedia_9079c,
65 wch_ch353_2s1p,
66}; 65};
67 66
68/* each element directly indexed from enum list, above */ 67/* each element directly indexed from enum list, above */
@@ -87,8 +86,7 @@ struct parport_pc_pci {
87 struct parport_pc_pci *card, int failed); 86 struct parport_pc_pci *card, int failed);
88}; 87};
89 88
90static int netmos_parallel_init(struct pci_dev *dev, struct parport_pc_pci *par, 89static int __devinit netmos_parallel_init(struct pci_dev *dev, struct parport_pc_pci *par, int autoirq, int autodma)
91 int autoirq, int autodma)
92{ 90{
93 /* the rule described below doesn't hold for this device */ 91 /* the rule described below doesn't hold for this device */
94 if (dev->device == PCI_DEVICE_ID_NETMOS_9835 && 92 if (dev->device == PCI_DEVICE_ID_NETMOS_9835 &&
@@ -112,7 +110,7 @@ static int netmos_parallel_init(struct pci_dev *dev, struct parport_pc_pci *par,
112 return 0; 110 return 0;
113} 111}
114 112
115static struct parport_pc_pci cards[] = { 113static struct parport_pc_pci cards[] __devinitdata = {
116 /* titan_110l */ { 1, { { 3, -1 }, } }, 114 /* titan_110l */ { 1, { { 3, -1 }, } },
117 /* titan_210l */ { 1, { { 3, -1 }, } }, 115 /* titan_210l */ { 1, { { 3, -1 }, } },
118 /* netmos_9xx5_combo */ { 1, { { 2, -1 }, }, netmos_parallel_init }, 116 /* netmos_9xx5_combo */ { 1, { { 2, -1 }, }, netmos_parallel_init },
@@ -147,7 +145,6 @@ static struct parport_pc_pci cards[] = {
147 /* timedia_9079a */ { 1, { { 2, 3 }, } }, 145 /* timedia_9079a */ { 1, { { 2, 3 }, } },
148 /* timedia_9079b */ { 1, { { 2, 3 }, } }, 146 /* timedia_9079b */ { 1, { { 2, 3 }, } },
149 /* timedia_9079c */ { 1, { { 2, 3 }, } }, 147 /* timedia_9079c */ { 1, { { 2, 3 }, } },
150 /* wch_ch353_2s1p*/ { 1, { { 2, -1}, } },
151}; 148};
152 149
153static struct pci_device_id parport_serial_pci_tbl[] = { 150static struct pci_device_id parport_serial_pci_tbl[] = {
@@ -246,8 +243,7 @@ static struct pci_device_id parport_serial_pci_tbl[] = {
246 { 0x1409, 0x7168, 0x1409, 0xb079, 0, 0, timedia_9079a }, 243 { 0x1409, 0x7168, 0x1409, 0xb079, 0, 0, timedia_9079a },
247 { 0x1409, 0x7168, 0x1409, 0xc079, 0, 0, timedia_9079b }, 244 { 0x1409, 0x7168, 0x1409, 0xc079, 0, 0, timedia_9079b },
248 { 0x1409, 0x7168, 0x1409, 0xd079, 0, 0, timedia_9079c }, 245 { 0x1409, 0x7168, 0x1409, 0xd079, 0, 0, timedia_9079c },
249 /* WCH CARDS */ 246
250 { 0x4348, 0x7053, 0x4348, 0x3253, 0, 0, wch_ch353_2s1p},
251 { 0, } /* terminate list */ 247 { 0, } /* terminate list */
252}; 248};
253MODULE_DEVICE_TABLE(pci,parport_serial_pci_tbl); 249MODULE_DEVICE_TABLE(pci,parport_serial_pci_tbl);
@@ -259,7 +255,7 @@ MODULE_DEVICE_TABLE(pci,parport_serial_pci_tbl);
259 * Cards not tested are marked n/t 255 * Cards not tested are marked n/t
260 * If you have one of these cards and it works for you, please tell me.. 256 * If you have one of these cards and it works for you, please tell me..
261 */ 257 */
262static struct pciserial_board pci_parport_serial_boards[] = { 258static struct pciserial_board pci_parport_serial_boards[] __devinitdata = {
263 [titan_110l] = { 259 [titan_110l] = {
264 .flags = FL_BASE1 | FL_BASE_BARS, 260 .flags = FL_BASE1 | FL_BASE_BARS,
265 .num_ports = 1, 261 .num_ports = 1,
@@ -464,12 +460,6 @@ static struct pciserial_board pci_parport_serial_boards[] = {
464 .base_baud = 921600, 460 .base_baud = 921600,
465 .uart_offset = 8, 461 .uart_offset = 8,
466 }, 462 },
467 [wch_ch353_2s1p] = {
468 .flags = FL_BASE0|FL_BASE_BARS,
469 .num_ports = 2,
470 .base_baud = 115200,
471 .uart_offset = 8,
472 },
473}; 463};
474 464
475struct parport_serial_private { 465struct parport_serial_private {
@@ -480,7 +470,8 @@ struct parport_serial_private {
480}; 470};
481 471
482/* Register the serial port(s) of a PCI card. */ 472/* Register the serial port(s) of a PCI card. */
483static int serial_register(struct pci_dev *dev, const struct pci_device_id *id) 473static int __devinit serial_register (struct pci_dev *dev,
474 const struct pci_device_id *id)
484{ 475{
485 struct parport_serial_private *priv = pci_get_drvdata (dev); 476 struct parport_serial_private *priv = pci_get_drvdata (dev);
486 struct pciserial_board *board; 477 struct pciserial_board *board;
@@ -501,7 +492,8 @@ static int serial_register(struct pci_dev *dev, const struct pci_device_id *id)
501} 492}
502 493
503/* Register the parallel port(s) of a PCI card. */ 494/* Register the parallel port(s) of a PCI card. */
504static int parport_register(struct pci_dev *dev, const struct pci_device_id *id) 495static int __devinit parport_register (struct pci_dev *dev,
496 const struct pci_device_id *id)
505{ 497{
506 struct parport_pc_pci *card; 498 struct parport_pc_pci *card;
507 struct parport_serial_private *priv = pci_get_drvdata (dev); 499 struct parport_serial_private *priv = pci_get_drvdata (dev);
@@ -562,8 +554,8 @@ static int parport_register(struct pci_dev *dev, const struct pci_device_id *id)
562 return 0; 554 return 0;
563} 555}
564 556
565static int parport_serial_pci_probe(struct pci_dev *dev, 557static int __devinit parport_serial_pci_probe (struct pci_dev *dev,
566 const struct pci_device_id *id) 558 const struct pci_device_id *id)
567{ 559{
568 struct parport_serial_private *priv; 560 struct parport_serial_private *priv;
569 int err; 561 int err;
@@ -598,7 +590,7 @@ static int parport_serial_pci_probe(struct pci_dev *dev,
598 return 0; 590 return 0;
599} 591}
600 592
601static void parport_serial_pci_remove(struct pci_dev *dev) 593static void __devexit parport_serial_pci_remove (struct pci_dev *dev)
602{ 594{
603 struct parport_serial_private *priv = pci_get_drvdata (dev); 595 struct parport_serial_private *priv = pci_get_drvdata (dev);
604 int i; 596 int i;
@@ -663,7 +655,7 @@ static struct pci_driver parport_serial_pci_driver = {
663 .name = "parport_serial", 655 .name = "parport_serial",
664 .id_table = parport_serial_pci_tbl, 656 .id_table = parport_serial_pci_tbl,
665 .probe = parport_serial_pci_probe, 657 .probe = parport_serial_pci_probe,
666 .remove = parport_serial_pci_remove, 658 .remove = __devexit_p(parport_serial_pci_remove),
667#ifdef CONFIG_PM 659#ifdef CONFIG_PM
668 .suspend = parport_serial_pci_suspend, 660 .suspend = parport_serial_pci_suspend,
669 .resume = parport_serial_pci_resume, 661 .resume = parport_serial_pci_resume,