From 1f021e1f3b187586e457b4584d0e5f0f5ca5fa15 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 30 Jan 2013 15:23:06 -0700 Subject: [PATCH] staging: comedi: allow pcmcia drivers to auto attach Introduce some helper functions to allow converting the comedi pcmcia drivers to the comedi auto_attach mechanism. Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- drivers/staging/comedi/comedi_pcmcia.c | 36 ++++++++++++++++++++++++++ drivers/staging/comedi/comedidev.h | 6 +++++ 2 files changed, 42 insertions(+) diff --git a/drivers/staging/comedi/comedi_pcmcia.c b/drivers/staging/comedi/comedi_pcmcia.c index 85229456bf28..f10bcc529585 100644 --- a/drivers/staging/comedi/comedi_pcmcia.c +++ b/drivers/staging/comedi/comedi_pcmcia.c @@ -27,6 +27,42 @@ #include "comedidev.h" +/** + * comedi_to_pcmcia_dev() - comedi_device pointer to pcmcia_device pointer. + * @dev: comedi_device struct + */ +struct pcmcia_device *comedi_to_pcmcia_dev(struct comedi_device *dev) +{ + return dev->hw_dev ? to_pcmcia_dev(dev->hw_dev) : NULL; +} +EXPORT_SYMBOL_GPL(comedi_to_pcmcia_dev); + +/** + * comedi_pcmcia_auto_config() - Configure/probe a comedi PCMCIA driver. + * @link: pcmcia_device struct + * @driver: comedi_driver struct + * + * Typically called from the pcmcia_driver (*probe) function. + */ +int comedi_pcmcia_auto_config(struct pcmcia_device *link, + struct comedi_driver *driver) +{ + return comedi_auto_config(&link->dev, driver, 0); +} +EXPORT_SYMBOL_GPL(comedi_pcmcia_auto_config); + +/** + * comedi_pcmcia_auto_unconfig() - Unconfigure/remove a comedi PCMCIA driver. + * @link: pcmcia_device struct + * + * Typically called from the pcmcia_driver (*remove) function. + */ +void comedi_pcmcia_auto_unconfig(struct pcmcia_device *link) +{ + comedi_auto_unconfig(&link->dev); +} +EXPORT_SYMBOL_GPL(comedi_pcmcia_auto_unconfig); + /** * comedi_pcmcia_driver_register() - Register a comedi PCMCIA driver. * @comedi_driver: comedi_driver struct diff --git a/drivers/staging/comedi/comedidev.h b/drivers/staging/comedi/comedidev.h index 329b1d7bc45e..ea585ebd07df 100644 --- a/drivers/staging/comedi/comedidev.h +++ b/drivers/staging/comedi/comedidev.h @@ -465,6 +465,12 @@ static inline void comedi_pci_disable(struct pci_dev *dev) /* comedi_pcmcia.c - comedi PCMCIA driver specific functions */ struct pcmcia_driver; +struct pcmcia_device; + +struct pcmcia_device *comedi_to_pcmcia_dev(struct comedi_device *); + +int comedi_pcmcia_auto_config(struct pcmcia_device *, struct comedi_driver *); +void comedi_pcmcia_auto_unconfig(struct pcmcia_device *); int comedi_pcmcia_driver_register(struct comedi_driver *, struct pcmcia_driver *); -- 2.30.2