aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2013-01-30 17:23:06 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-31 04:40:41 -0500
commit1f021e1f3b187586e457b4584d0e5f0f5ca5fa15 (patch)
tree5ca3e7412f997b445e022686c271a377f537c1e0
parent309231d7a610554b02084ff7b465e43ef383a3bc (diff)
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 <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/comedi/comedi_pcmcia.c36
-rw-r--r--drivers/staging/comedi/comedidev.h6
2 files changed, 42 insertions, 0 deletions
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
@@ -28,6 +28,42 @@
28#include "comedidev.h" 28#include "comedidev.h"
29 29
30/** 30/**
31 * comedi_to_pcmcia_dev() - comedi_device pointer to pcmcia_device pointer.
32 * @dev: comedi_device struct
33 */
34struct pcmcia_device *comedi_to_pcmcia_dev(struct comedi_device *dev)
35{
36 return dev->hw_dev ? to_pcmcia_dev(dev->hw_dev) : NULL;
37}
38EXPORT_SYMBOL_GPL(comedi_to_pcmcia_dev);
39
40/**
41 * comedi_pcmcia_auto_config() - Configure/probe a comedi PCMCIA driver.
42 * @link: pcmcia_device struct
43 * @driver: comedi_driver struct
44 *
45 * Typically called from the pcmcia_driver (*probe) function.
46 */
47int comedi_pcmcia_auto_config(struct pcmcia_device *link,
48 struct comedi_driver *driver)
49{
50 return comedi_auto_config(&link->dev, driver, 0);
51}
52EXPORT_SYMBOL_GPL(comedi_pcmcia_auto_config);
53
54/**
55 * comedi_pcmcia_auto_unconfig() - Unconfigure/remove a comedi PCMCIA driver.
56 * @link: pcmcia_device struct
57 *
58 * Typically called from the pcmcia_driver (*remove) function.
59 */
60void comedi_pcmcia_auto_unconfig(struct pcmcia_device *link)
61{
62 comedi_auto_unconfig(&link->dev);
63}
64EXPORT_SYMBOL_GPL(comedi_pcmcia_auto_unconfig);
65
66/**
31 * comedi_pcmcia_driver_register() - Register a comedi PCMCIA driver. 67 * comedi_pcmcia_driver_register() - Register a comedi PCMCIA driver.
32 * @comedi_driver: comedi_driver struct 68 * @comedi_driver: comedi_driver struct
33 * @pcmcia_driver: pcmcia_driver struct 69 * @pcmcia_driver: pcmcia_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)
465/* comedi_pcmcia.c - comedi PCMCIA driver specific functions */ 465/* comedi_pcmcia.c - comedi PCMCIA driver specific functions */
466 466
467struct pcmcia_driver; 467struct pcmcia_driver;
468struct pcmcia_device;
469
470struct pcmcia_device *comedi_to_pcmcia_dev(struct comedi_device *);
471
472int comedi_pcmcia_auto_config(struct pcmcia_device *, struct comedi_driver *);
473void comedi_pcmcia_auto_unconfig(struct pcmcia_device *);
468 474
469int comedi_pcmcia_driver_register(struct comedi_driver *, 475int comedi_pcmcia_driver_register(struct comedi_driver *,
470 struct pcmcia_driver *); 476 struct pcmcia_driver *);