diff options
author | H Hartley Sweeten <hartleys@visionengravers.com> | 2012-09-24 16:21:30 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-09-26 12:37:29 -0400 |
commit | 832defbb58061fedb7a5c43aab7d762afaac2cc9 (patch) | |
tree | f75f80369396d763f30062de2c8976700b2980f4 | |
parent | 198b0fa48b25b60e4857132a7c55c9e6e18748d9 (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.c | 80 |
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 | ||
85 | struct 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 | |||
100 | static 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 | |||
119 | struct s626_private { | 85 | struct 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; |