diff options
author | Ian Abbott <abbotti@mev.co.uk> | 2009-09-21 15:23:32 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-10-09 13:47:24 -0700 |
commit | aa65d22ae6412f474e5ba23fc363137b6c53eef9 (patch) | |
tree | c6f6fc5e32e3bcca890c2e0b369c434e3b1eed86 | |
parent | b1f68dc1d610159db0e8546117d86657f35a03b5 (diff) | |
download | linux-3.10-aa65d22ae6412f474e5ba23fc363137b6c53eef9.tar.gz linux-3.10-aa65d22ae6412f474e5ba23fc363137b6c53eef9.tar.bz2 linux-3.10-aa65d22ae6412f474e5ba23fc363137b6c53eef9.zip |
Staging: comedi: cb_pcidio: fix "section mismatch" error
Store PCI device IDs in the board info and use this for matching IDs in
the code instead of using the module device table.
This avoids a "section mismatch" error.
Signed-off-by: Frank Mori Hess <fmhess@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/comedi/drivers/cb_pcidio.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/staging/comedi/drivers/cb_pcidio.c b/drivers/staging/comedi/drivers/cb_pcidio.c index 4d10bc31d46..09e6e3bdfb3 100644 --- a/drivers/staging/comedi/drivers/cb_pcidio.c +++ b/drivers/staging/comedi/drivers/cb_pcidio.c @@ -53,7 +53,8 @@ Passing a zero for an option is the same as leaving it unspecified. * Some drivers use arrays such as this, other do not. */ struct pcidio_board { - const char *name; /* anme of the board */ + const char *name; /* name of the board */ + int dev_id; int n_8255; /* number of 8255 chips on board */ /* indices of base address regions */ @@ -64,18 +65,21 @@ struct pcidio_board { static const struct pcidio_board pcidio_boards[] = { { .name = "pci-dio24", + .dev_id = 0x0028, .n_8255 = 1, .pcicontroler_badrindex = 1, .dioregs_badrindex = 2, }, { .name = "pci-dio24h", + .dev_id = 0x0014, .n_8255 = 1, .pcicontroler_badrindex = 1, .dioregs_badrindex = 2, }, { .name = "pci-dio48h", + .dev_id = 0x000b, .n_8255 = 2, .pcicontroler_badrindex = 0, .dioregs_badrindex = 1, @@ -206,7 +210,7 @@ static int pcidio_attach(struct comedi_device *dev, struct comedi_devconfig *it) continue; /* loop through cards supported by this driver */ for (index = 0; index < ARRAY_SIZE(pcidio_boards); index++) { - if (pcidio_pci_table[index].device != pcidev->device) + if (pcidio_boards[index].dev_id != pcidev->device) continue; /* was a particular bus/slot requested? */ |