diff options
Diffstat (limited to 'drivers/parport/parport_serial.c')
| -rw-r--r-- | drivers/parport/parport_serial.c | 32 |
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 | ||
| 90 | static int netmos_parallel_init(struct pci_dev *dev, struct parport_pc_pci *par, | 89 | static 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 | ||
| 115 | static struct parport_pc_pci cards[] = { | 113 | static 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 | ||
| 153 | static struct pci_device_id parport_serial_pci_tbl[] = { | 150 | static 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 | }; |
| 253 | MODULE_DEVICE_TABLE(pci,parport_serial_pci_tbl); | 249 | MODULE_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 | */ |
| 262 | static struct pciserial_board pci_parport_serial_boards[] = { | 258 | static 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 | ||
| 475 | struct parport_serial_private { | 465 | struct 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. */ |
| 483 | static int serial_register(struct pci_dev *dev, const struct pci_device_id *id) | 473 | static 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. */ |
| 504 | static int parport_register(struct pci_dev *dev, const struct pci_device_id *id) | 495 | static 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 | ||
| 565 | static int parport_serial_pci_probe(struct pci_dev *dev, | 557 | static 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 | ||
| 601 | static void parport_serial_pci_remove(struct pci_dev *dev) | 593 | static 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, |
