This member is set at the end of the driver attach and is only used to verify that icp_multi_reset() can be called in the (*detach). The only requirement for icp_multi_reset() to work is that the dev->mmio is valid. Remove the 'valid' member from the private data and use 'dev->mmio' to see if the reset can be done. Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/staging/comedi/drivers/icp_multi.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/staging/comedi/drivers/icp_multi.c b/drivers/staging/comedi/drivers/icp_multi.c index a98cef2..9b7cbad 100644 --- a/drivers/staging/comedi/drivers/icp_multi.c +++ b/drivers/staging/comedi/drivers/icp_multi.c @@ -107,7 +107,6 @@ static const char range_codes_analog[] = { 0x00, 0x20, 0x10, 0x30 }; */ struct icp_multi_private { - char valid; /* card is usable */ unsigned int AdcCmdStatus; /* ADC Command/Status register */ unsigned int DacCmdStatus; /* DAC Command/Status register */ unsigned int IntEnable; /* Interrupt Enable register */ @@ -549,18 +548,13 @@ static int icp_multi_auto_attach(struct comedi_device *dev, s->insn_read = icp_multi_insn_read_ctr; s->insn_write = icp_multi_insn_write_ctr; - devpriv->valid = 1; - return 0; } static void icp_multi_detach(struct comedi_device *dev) { - struct icp_multi_private *devpriv = dev->private; - - if (devpriv) - if (devpriv->valid) - icp_multi_reset(dev); + if (dev->mmio) + icp_multi_reset(dev); if (dev->irq) free_irq(dev->irq, dev); if (dev->mmio) -- 2.0.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel