diff --git a/[refs] b/[refs] index 178f89d2e7a3..ea1382befce4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4bf75257ff84a57d2e878f149514e4fcd23a93bd +refs/heads/master: cb448d6572219efa4a6eb0c98f37125079b78549 diff --git a/trunk/drivers/staging/comedi/drivers/adv_pci_dio.c b/trunk/drivers/staging/comedi/drivers/adv_pci_dio.c index 2c3dbf06060b..4da0e7bd204f 100644 --- a/trunk/drivers/staging/comedi/drivers/adv_pci_dio.c +++ b/trunk/drivers/staging/comedi/drivers/adv_pci_dio.c @@ -1176,39 +1176,18 @@ static int pci_dio_attach_pci(struct comedi_device *dev, static void pci_dio_detach(struct comedi_device *dev) { - const struct dio_boardtype *this_board = comedi_board(dev); struct pci_dio_private *devpriv = dev->private; struct pci_dev *pcidev = comedi_to_pci_dev(dev); - int i, j; struct comedi_subdevice *s; - int subdev; + int i; if (devpriv) { if (devpriv->valid) pci_dio_reset(dev); - subdev = 0; - for (i = 0; i < MAX_DI_SUBDEVS; i++) { - if (this_board->sdi[i].chans) - subdev++; - } - for (i = 0; i < MAX_DO_SUBDEVS; i++) { - if (this_board->sdo[i].chans) - subdev++; - } - for (i = 0; i < MAX_DIO_SUBDEVG; i++) { - for (j = 0; j < this_board->sdio[i].regs; j++) { - s = dev->subdevices + subdev; - subdev_8255_cleanup(dev, s); - subdev++; - } - } - if (this_board->boardid.chans) - subdev++; - for (i = 0; i < MAX_8254_SUBDEVS; i++) - if (this_board->s8254[i].chans) - subdev++; for (i = 0; i < dev->n_subdevices; i++) { s = dev->subdevices + i; + if (s->type == COMEDI_SUBD_DIO) + subdev_8255_cleanup(dev, s); s->private = NULL; } }