aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/das08_isa.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-06-11 11:32:29 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-17 14:31:10 -0700
commit588ba6dc5fb4bdca47a3da38c2718fbb82d3eee1 (patch)
tree510ced4246ec45af6c448d51531865dd61a805b5 /drivers/staging/comedi/drivers/das08_isa.c
parentStaging: silicom: move symbol exports beneath definitions in bpctl_mod.c (diff)
downloadlinux-dev-588ba6dc5fb4bdca47a3da38c2718fbb82d3eee1.tar.xz
linux-dev-588ba6dc5fb4bdca47a3da38c2718fbb82d3eee1.zip
staging: comedi: drivers: let core handle freeing s->private
Introduce a new subdevice runflags, SRF_FREE_SPRIV, and a new helper function, comedi_set_spriv(), that the drivers can use to set the comedi_subdevice private data pointer. The helper function will also set SRF_FREE_SPRIV to allow the comedi core to automatically free the subdevice private data during the cleanup_device() stage of the detach. Currently s->private is only allocated by the 8255, addi_watchdog, amplc_dio200_common, and ni_65xx drivers. All users of those drivers can then have the comedi_spriv_free() calls removed and in many cases the (*detach) can then simply be the appropriate comedi core provided function. The ni_65xx driver uses a helper function, ni_65xx_alloc_subdevice_private(), to allocate the private data. Refactor the function to return an errno or call comedi_set_spriv() instead of returning a pointer to the private data and requiring the caller to handle it. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/das08_isa.c')
-rw-r--r--drivers/staging/comedi/drivers/das08_isa.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/staging/comedi/drivers/das08_isa.c b/drivers/staging/comedi/drivers/das08_isa.c
index 10e96e94515c..21a94389b8b2 100644
--- a/drivers/staging/comedi/drivers/das08_isa.c
+++ b/drivers/staging/comedi/drivers/das08_isa.c
@@ -189,17 +189,11 @@ static int das08_isa_attach(struct comedi_device *dev,
return das08_common_attach(dev, dev->iobase);
}
-static void das08_isa_detach(struct comedi_device *dev)
-{
- das08_common_detach(dev);
- comedi_legacy_detach(dev);
-}
-
static struct comedi_driver das08_isa_driver = {
.driver_name = "isa-das08",
.module = THIS_MODULE,
.attach = das08_isa_attach,
- .detach = das08_isa_detach,
+ .detach = comedi_legacy_detach,
.board_name = &das08_isa_boards[0].name,
.num_names = ARRAY_SIZE(das08_isa_boards),
.offset = sizeof(das08_isa_boards[0]),