diff options
author | Dominik Brodowski <linux@dominikbrodowski.de> | 2005-01-11 03:21:40 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-01-11 03:21:40 -0800 |
commit | b504f217c32be942c0634c415e668d11726ef7e4 (patch) | |
tree | 38a64f5b9e6bbc99b2f2c160cd97e25d98b6e5b2 /drivers | |
parent | 1ba37b93c0f99f21fbaebc7da5d8fe2417f054ba (diff) | |
download | history-b504f217c32be942c0634c415e668d11726ef7e4.tar.gz |
[PATCH] pcmcia: add pcmcia_(put,get)_socket
Add pcmcia_{put,get}_socket
Signed-off-by: Dominik Brodowski <linux@brodo.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pcmcia/cs.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c index 192ffc4540cfb5..c7827c26db94e6 100644 --- a/drivers/pcmcia/cs.c +++ b/drivers/pcmcia/cs.c @@ -172,6 +172,29 @@ int pcmcia_socket_dev_resume(struct device *dev) EXPORT_SYMBOL(pcmcia_socket_dev_resume); +struct pcmcia_socket * pcmcia_get_socket(struct pcmcia_socket *skt) +{ + struct class_device *cl_dev = class_device_get(&skt->dev); + if (!cl_dev) + return NULL; + skt = class_get_devdata(cl_dev); + if (!try_module_get(skt->owner)) { + class_device_put(&skt->dev); + return NULL; + } + return (skt); +} +EXPORT_SYMBOL(pcmcia_get_socket); + + +void pcmcia_put_socket(struct pcmcia_socket *skt) +{ + module_put(skt->owner); + class_device_put(&skt->dev); +} +EXPORT_SYMBOL(pcmcia_put_socket); + + static void pcmcia_release_socket(struct class_device *class_dev) { struct pcmcia_socket *socket = class_get_devdata(class_dev); |