aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2012-09-24 16:21:30 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-26 12:37:29 -0400
commit832defbb58061fedb7a5c43aab7d762afaac2cc9 (patch)
treef75f80369396d763f30062de2c8976700b2980f4
parent198b0fa48b25b60e4857132a7c55c9e6e18748d9 (diff)
staging: comedi: s626: remove boardinfo
This driver only supports one board type. Move the used board info out of the boardinfo struct and remove it. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/comedi/drivers/s626.c80
1 files changed, 21 insertions, 59 deletions
diff --git a/drivers/staging/comedi/drivers/s626.c b/drivers/staging/comedi/drivers/s626.c
index f90578e5e727..bac14458536e 100644
--- a/drivers/staging/comedi/drivers/s626.c
+++ b/drivers/staging/comedi/drivers/s626.c
@@ -82,40 +82,6 @@ INSN_CONFIG instructions:
82#define PCI_SUBVENDOR_ID_S626 0x6000 82#define PCI_SUBVENDOR_ID_S626 0x6000
83#define PCI_SUBDEVICE_ID_S626 0x0272 83#define PCI_SUBDEVICE_ID_S626 0x0272
84 84
85struct s626_board {
86 const char *name;
87 int vendor_id;
88 int device_id;
89 int subvendor_id;
90 int subdevice_id;
91 int ai_chans;
92 int ai_bits;
93 int ao_chans;
94 int ao_bits;
95 int dio_chans;
96 int dio_banks;
97 int enc_chans;
98};
99
100static const struct s626_board s626_boards[] = {
101 {
102 .name = "s626",
103 .vendor_id = PCI_VENDOR_ID_S626,
104 .device_id = PCI_DEVICE_ID_S626,
105 .subvendor_id = PCI_SUBVENDOR_ID_S626,
106 .subdevice_id = PCI_SUBDEVICE_ID_S626,
107 .ai_chans = S626_ADC_CHANNELS,
108 .ai_bits = 14,
109 .ao_chans = S626_DAC_CHANNELS,
110 .ao_bits = 13,
111 .dio_chans = S626_DIO_CHANNELS,
112 .dio_banks = S626_DIO_BANKS,
113 .enc_chans = S626_ENCODER_CHANNELS,
114 }
115};
116
117#define thisboard ((const struct s626_board *)dev->board_ptr)
118
119struct s626_private { 85struct s626_private {
120 struct pci_dev *pdev; 86 struct pci_dev *pdev;
121 void __iomem *base_addr; 87 void __iomem *base_addr;
@@ -2484,24 +2450,23 @@ static struct pci_dev *s626_find_pci(struct comedi_device *dev,
2484 int slot = it->options[1]; 2450 int slot = it->options[1];
2485 int i; 2451 int i;
2486 2452
2487 for (i = 0; i < ARRAY_SIZE(s626_boards) && !pcidev; i++) { 2453 do {
2488 do { 2454 pcidev = pci_get_subsys(PCI_VENDOR_ID_S626,
2489 pcidev = pci_get_subsys(s626_boards[i].vendor_id, 2455 PCI_DEVICE_ID_S626,
2490 s626_boards[i].device_id, 2456 PCI_SUBVENDOR_ID_S626,
2491 s626_boards[i].subvendor_id, 2457 PCI_SUBDEVICE_ID_S626,
2492 s626_boards[i].subdevice_id, 2458 pcidev);
2493 pcidev); 2459
2494 2460 if ((bus || slot) && pcidev) {
2495 if ((bus || slot) && pcidev) { 2461 /* matches requested bus/slot */
2496 /* matches requested bus/slot */ 2462 if (pcidev->bus->number == bus &&
2497 if (pcidev->bus->number == bus && 2463 PCI_SLOT(pcidev->devfn) == slot)
2498 PCI_SLOT(pcidev->devfn) == slot)
2499 break;
2500 } else {
2501 break; 2464 break;
2502 } 2465 } else {
2503 } while (1); 2466 break;
2504 } 2467 }
2468 } while (1);
2469
2505 return pcidev; 2470 return pcidev;
2506} 2471}
2507 2472
@@ -2581,8 +2546,7 @@ static int s626_attach(struct comedi_device *dev, struct comedi_devconfig *it)
2581 2546
2582 } 2547 }
2583 2548
2584 dev->board_ptr = s626_boards; 2549 dev->board_name = dev->driver->driver_name;
2585 dev->board_name = thisboard->name;
2586 2550
2587 ret = comedi_alloc_subdevices(dev, 6); 2551 ret = comedi_alloc_subdevices(dev, 6);
2588 if (ret) 2552 if (ret)
@@ -2610,12 +2574,10 @@ static int s626_attach(struct comedi_device *dev, struct comedi_devconfig *it)
2610 /* we support single-ended (ground) and differential */ 2574 /* we support single-ended (ground) and differential */
2611 s->type = COMEDI_SUBD_AI; 2575 s->type = COMEDI_SUBD_AI;
2612 s->subdev_flags = SDF_READABLE | SDF_DIFF | SDF_CMD_READ; 2576 s->subdev_flags = SDF_READABLE | SDF_DIFF | SDF_CMD_READ;
2613 s->n_chan = thisboard->ai_chans; 2577 s->n_chan = S626_ADC_CHANNELS;
2614 s->maxdata = (0xffff >> 2); 2578 s->maxdata = (0xffff >> 2);
2615 s->range_table = &s626_range_table; 2579 s->range_table = &s626_range_table;
2616 s->len_chanlist = thisboard->ai_chans; /* This is the maximum chanlist 2580 s->len_chanlist = S626_ADC_CHANNELS;
2617 length that the board can
2618 handle */
2619 s->insn_config = s626_ai_insn_config; 2581 s->insn_config = s626_ai_insn_config;
2620 s->insn_read = s626_ai_insn_read; 2582 s->insn_read = s626_ai_insn_read;
2621 s->do_cmd = s626_ai_cmd; 2583 s->do_cmd = s626_ai_cmd;
@@ -2626,7 +2588,7 @@ static int s626_attach(struct comedi_device *dev, struct comedi_devconfig *it)
2626 /* analog output subdevice */ 2588 /* analog output subdevice */
2627 s->type = COMEDI_SUBD_AO; 2589 s->type = COMEDI_SUBD_AO;
2628 s->subdev_flags = SDF_WRITABLE | SDF_READABLE; 2590 s->subdev_flags = SDF_WRITABLE | SDF_READABLE;
2629 s->n_chan = thisboard->ao_chans; 2591 s->n_chan = S626_DAC_CHANNELS;
2630 s->maxdata = (0x3fff); 2592 s->maxdata = (0x3fff);
2631 s->range_table = &range_bipolar10; 2593 s->range_table = &range_bipolar10;
2632 s->insn_write = s626_ao_winsn; 2594 s->insn_write = s626_ao_winsn;
@@ -2672,7 +2634,7 @@ static int s626_attach(struct comedi_device *dev, struct comedi_devconfig *it)
2672 /* encoder (counter) subdevice */ 2634 /* encoder (counter) subdevice */
2673 s->type = COMEDI_SUBD_COUNTER; 2635 s->type = COMEDI_SUBD_COUNTER;
2674 s->subdev_flags = SDF_WRITABLE | SDF_READABLE | SDF_LSAMPL; 2636 s->subdev_flags = SDF_WRITABLE | SDF_READABLE | SDF_LSAMPL;
2675 s->n_chan = thisboard->enc_chans; 2637 s->n_chan = S626_ENCODER_CHANNELS;
2676 s->private = enc_private_data; 2638 s->private = enc_private_data;
2677 s->insn_config = s626_enc_insn_config; 2639 s->insn_config = s626_enc_insn_config;
2678 s->insn_read = s626_enc_insn_read; 2640 s->insn_read = s626_enc_insn_read;