Commit 1a4d5b17 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: ni_daq_700: refactor the pcmcia support code

Refactor the pcmcia support code to remove the need for the
forward declarations.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Frank Mori Hess <fmhess@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 59c9c002
...@@ -306,49 +306,11 @@ static void dio700_detach(struct comedi_device *dev) ...@@ -306,49 +306,11 @@ static void dio700_detach(struct comedi_device *dev)
free_irq(dev->irq, dev); free_irq(dev->irq, dev);
}; };
static void dio700_config(struct pcmcia_device *link); static void dio700_release(struct pcmcia_device *link)
static void dio700_release(struct pcmcia_device *link);
static int dio700_cs_suspend(struct pcmcia_device *p_dev);
static int dio700_cs_resume(struct pcmcia_device *p_dev);
static int dio700_cs_attach(struct pcmcia_device *);
static void dio700_cs_detach(struct pcmcia_device *);
struct local_info_t {
struct pcmcia_device *link;
int stop;
struct bus_operations *bus;
};
static int dio700_cs_attach(struct pcmcia_device *link)
{
struct local_info_t *local;
printk(KERN_INFO "ni_daq_700: cs-attach\n");
dev_dbg(&link->dev, "dio700_cs_attach()\n");
/* Allocate space for private device-specific data */
local = kzalloc(sizeof(struct local_info_t), GFP_KERNEL);
if (!local)
return -ENOMEM;
local->link = link;
link->priv = local;
pcmcia_cur_dev = link;
dio700_config(link);
return 0;
}
static void dio700_cs_detach(struct pcmcia_device *link)
{ {
((struct local_info_t *)link->priv)->stop = 1; dev_dbg(&link->dev, "dio700_release\n");
dio700_release(link);
/* This points to the parent struct local_info_t struct */ pcmcia_disable_device(link);
kfree(link->priv);
} }
static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev, static int dio700_pcmcia_config_loop(struct pcmcia_device *p_dev,
...@@ -392,11 +354,41 @@ static void dio700_config(struct pcmcia_device *link) ...@@ -392,11 +354,41 @@ static void dio700_config(struct pcmcia_device *link)
} }
static void dio700_release(struct pcmcia_device *link) struct local_info_t {
struct pcmcia_device *link;
int stop;
struct bus_operations *bus;
};
static int dio700_cs_attach(struct pcmcia_device *link)
{ {
dev_dbg(&link->dev, "dio700_release\n"); struct local_info_t *local;
pcmcia_disable_device(link); printk(KERN_INFO "ni_daq_700: cs-attach\n");
dev_dbg(&link->dev, "dio700_cs_attach()\n");
/* Allocate space for private device-specific data */
local = kzalloc(sizeof(struct local_info_t), GFP_KERNEL);
if (!local)
return -ENOMEM;
local->link = link;
link->priv = local;
pcmcia_cur_dev = link;
dio700_config(link);
return 0;
}
static void dio700_cs_detach(struct pcmcia_device *link)
{
((struct local_info_t *)link->priv)->stop = 1;
dio700_release(link);
/* This points to the parent struct local_info_t struct */
kfree(link->priv);
} }
static int dio700_cs_suspend(struct pcmcia_device *link) static int dio700_cs_suspend(struct pcmcia_device *link)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment