The addi_apci_035, addi_apci_1500, addi_apci_1564, and addi_apci_3xxx
drivers still use the addi_common code. Allow those drivers to set
the dev->board_ptr before calling addi_auto_attach().

Signed-off-by: H Hartley Sweeten <[email protected]>
Cc: Ian Abbott <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/comedi/drivers/addi-data/addi_common.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/comedi/drivers/addi-data/addi_common.c 
b/drivers/staging/comedi/drivers/addi-data/addi_common.c
index 1051fa5..e9a4b43 100644
--- a/drivers/staging/comedi/drivers/addi-data/addi_common.c
+++ b/drivers/staging/comedi/drivers/addi-data/addi_common.c
@@ -105,16 +105,19 @@ static int addi_auto_attach(struct comedi_device *dev,
                                      unsigned long context_unused)
 {
        struct pci_dev *pcidev = comedi_to_pci_dev(dev);
-       const struct addi_board *this_board;
+       const struct addi_board *this_board = comedi_board(dev);
        struct addi_private *devpriv;
        struct comedi_subdevice *s;
        int ret, n_subdevices;
        unsigned int dw_Dummy;
 
-       this_board = addi_find_boardinfo(dev, pcidev);
-       if (!this_board)
-               return -ENODEV;
-       dev->board_ptr = this_board;
+       if (!this_board) {
+               /* The driver did not set the board_ptr, try finding it. */
+               this_board = addi_find_boardinfo(dev, pcidev);
+               if (!this_board)
+                       return -ENODEV;
+               dev->board_ptr = this_board;
+       }
        dev->board_name = this_board->pc_DriverName;
 
        devpriv = kzalloc(sizeof(*devpriv), GFP_KERNEL);
-- 
1.8.1.4

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to