staging: comedi: cb_pcidio: fix for newer PCI-DIO48H
commit11e106ef107462af1802066a8008f9930837c869
authorIan Abbott <abbotti@mev.co.uk>
Mon, 20 Jan 2014 16:47:24 +0000 (20 16:47 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Sat, 15 Feb 2014 19:20:11 +0000 (15 19:20 +0000)
tree50239c42fdb9f6bd88f7e69f4544c57a5933f425
parent0ebf55cff9dbe3202a9ad98d3e9f1b3dc3b4fabe
staging: comedi: cb_pcidio: fix for newer PCI-DIO48H

commit 0283f7a100882684ad32b768f9f1ad81658a0b92 upstream.

At some point, Measurement Computing / ComputerBoards redesigned the
PCI-DIO48H to use a PLX PCI interface chip instead of an AMCC chip.
This meant they had to put their hardware registers in the PCI BAR 2
region instead of PCI BAR 1.  Unfortunately, they kept the same PCI
device ID for the new design.  This means the driver recognizes the
newer cards, but doesn't work (and is likely to screw up the local
configuration registers of the PLX chip) because it's using the wrong
region.

Since all the supported boards have the DIO registers in the PCI BAR 2
region except for older PCI-DIO48H boards which have an empty PCI BAR 2
region and the DIO registers in PCI BAR 1, determine which PCI BAR
region to use based on whether the PCI BAR 2 region is empty or not.

This change makes the `dioregs_badrindex` member of `struct
pcidio_board` redundant.  The `pcicontroler_badrindex` member is also
unused, so remove both members.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Cc: kernel-team@lists.ubuntu.com
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/staging/comedi/drivers/cb_pcidio.c