Skip to content

Commit

Permalink
staging: comedi: addi_common.c: fix the test for the PCI bars
Browse files Browse the repository at this point in the history
Commit: 0fcdafb
staging: comedi: addi-data: cleanup reading of the PCI bars

Changed this test before reading the PCI bars:

	if ((this_board->pc_EepromChip == NULL)
		|| (strcmp(this_board->pc_EepromChip, ADDIDATA_9054) != 0)) {

to this:

	if (!this_board->pc_EepromChip ||
	    !strcmp(this_board->pc_EepromChip, ADDIDATA_9054)) {

I just noticed that the strcmp test is wrong.

This fixes the test and adds a comment for it.

This error "broke" the addi-data drivers but they are broken anyway
since they don't follow the comedi core API.

The addi_apci_1032 driver has been converted to follow the comedi core
API. This error effects that driver since the iobase for it should be
found in PCI bar 1 not 2. This fixes that also.

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>
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Nov 13, 2012
1 parent 891e62c commit c965c8b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
4 changes: 3 additions & 1 deletion drivers/staging/comedi/drivers/addi-data/addi_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,8 @@ static int __devinit addi_auto_attach(struct comedi_device *dev,
return ret;

if (!this_board->pc_EepromChip ||
!strcmp(this_board->pc_EepromChip, ADDIDATA_9054)) {
strcmp(this_board->pc_EepromChip, ADDIDATA_9054)) {
/* board does not have an eeprom or is not ADDIDATA_9054 */
if (this_board->i_IorangeBase1)
dev->iobase = pci_resource_start(pcidev, 1);
else
Expand All @@ -129,6 +130,7 @@ static int __devinit addi_auto_attach(struct comedi_device *dev,
devpriv->i_IobaseAmcc = pci_resource_start(pcidev, 0);
devpriv->i_IobaseAddon = pci_resource_start(pcidev, 2);
} else {
/* board has an ADDIDATA_9054 eeprom */
dev->iobase = pci_resource_start(pcidev, 2);
devpriv->iobase = pci_resource_start(pcidev, 2);
devpriv->dw_AiBase = ioremap(pci_resource_start(pcidev, 3),
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/comedi/drivers/addi_apci_1032.c
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ static int __devinit apci1032_auto_attach(struct comedi_device *dev,
if (ret)
return ret;

dev->iobase = pci_resource_start(pcidev, 2);
dev->iobase = pci_resource_start(pcidev, 1);

if (pcidev->irq > 0) {
ret = request_irq(pcidev->irq, apci1032_interrupt, IRQF_SHARED,
Expand Down

0 comments on commit c965c8b

Please sign in to comment.