summaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r--drivers/pcmcia/bulkmem.c2
-rw-r--r--drivers/pcmcia/cardbus.c2
-rw-r--r--drivers/pcmcia/cs.c65
-rw-r--r--drivers/pcmcia/ds.c2
-rw-r--r--drivers/pcmcia/i82365.c2
-rw-r--r--drivers/pcmcia/tcic.c2
-rw-r--r--drivers/pcmcia/yenta.c4
7 files changed, 31 insertions, 48 deletions
diff --git a/drivers/pcmcia/bulkmem.c b/drivers/pcmcia/bulkmem.c
index 33a6ce1b9..43e47c75b 100644
--- a/drivers/pcmcia/bulkmem.c
+++ b/drivers/pcmcia/bulkmem.c
@@ -231,7 +231,7 @@ static void setup_erase_request(client_handle_t handle, eraseq_entry_t *erase)
busy = kmalloc(sizeof(erase_busy_t), GFP_KERNEL);
busy->erase = erase;
busy->client = handle;
- busy->timeout.prev = busy->timeout.next = NULL;
+ init_timer(&busy->timeout);
busy->timeout.data = (u_long)busy;
busy->timeout.function = &handle_erase_timeout;
busy->prev = busy->next = NULL;
diff --git a/drivers/pcmcia/cardbus.c b/drivers/pcmcia/cardbus.c
index 7898c76a2..92ecb49ba 100644
--- a/drivers/pcmcia/cardbus.c
+++ b/drivers/pcmcia/cardbus.c
@@ -305,7 +305,7 @@ int cb_alloc(socket_info_t * s)
if (res->flags)
pci_assign_resource(dev, r);
}
- pci_enable_device(dev);
+ pci_enable_device(dev); /* XXX check return */
/* Does this function have an interrupt at all? */
pci_readb(dev, PCI_INTERRUPT_PIN, &irq_pin);
diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index 4439f7c29..0c42771ee 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -45,7 +45,7 @@
#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/proc_fs.h>
-#include <linux/compile.h>
+#include <linux/pm.h>
#include <linux/pci.h>
#include <asm/system.h>
#include <asm/irq.h>
@@ -62,9 +62,6 @@
#include "cs_internal.h"
#include "rsrc_mgr.h"
-#include <linux/pm.h>
-static int handle_pm_event(struct pm_dev *dev, pm_request_t rqst, void *data);
-
#ifdef PCMCIA_DEBUG
int pc_debug = PCMCIA_DEBUG;
MODULE_PARM(pc_debug, "i");
@@ -83,20 +80,17 @@ static const char *version =
#define CB_OPT ""
#endif
#ifdef CONFIG_PM
-#define APM_OPT " [pm]"
+#define PM_OPT " [pm]"
#else
-#define APM_OPT ""
+#define PM_OPT ""
#endif
#if !defined(CONFIG_CARDBUS) && !defined(CONFIG_PCI) && !defined(CONFIG_PM)
#define OPTIONS " none"
#else
-#define OPTIONS PCI_OPT CB_OPT APM_OPT
+#define OPTIONS PCI_OPT CB_OPT PM_OPT
#endif
static const char *release = "Linux PCMCIA Card Services " CS_RELEASE;
-#ifdef MODULE
-static const char *kernel = "kernel build: " UTS_RELEASE " " UTS_VERSION;
-#endif
static const char *options = "options: " OPTIONS;
MODULE_AUTHOR("David Hinds <dhinds@pcmcia.sourceforge.org>");
@@ -107,40 +101,30 @@ MODULE_DESCRIPTION("Linux PCMCIA Card Services " CS_RELEASE
/* Parameters that can be set with 'insmod' */
-static int setup_delay = HZ/20; /* ticks */
-static int resume_delay = HZ/5; /* ticks */
-static int shutdown_delay = HZ/40; /* ticks */
-static int vcc_settle = HZ*4/10; /* ticks */
-static int reset_time = 10; /* usecs */
-static int unreset_delay = HZ/10; /* ticks */
-static int unreset_check = HZ/10; /* ticks */
-static int unreset_limit = 30; /* unreset_check's */
+#define INT_MODULE_PARM(n, v) static int n = v; MODULE_PARM(n, "i")
+
+INT_MODULE_PARM(setup_delay, HZ/20); /* ticks */
+INT_MODULE_PARM(resume_delay, HZ/5); /* ticks */
+INT_MODULE_PARM(shutdown_delay, HZ/40); /* ticks */
+INT_MODULE_PARM(vcc_settle, HZ*4/10); /* ticks */
+INT_MODULE_PARM(reset_time, 10); /* usecs */
+INT_MODULE_PARM(unreset_delay, HZ/10); /* ticks */
+INT_MODULE_PARM(unreset_check, HZ/10); /* ticks */
+INT_MODULE_PARM(unreset_limit, 30); /* unreset_check's */
/* Access speed for attribute memory windows */
-static int cis_speed = 300; /* ns */
+INT_MODULE_PARM(cis_speed, 300); /* ns */
/* Access speed for IO windows */
-static int io_speed = 0; /* ns */
+INT_MODULE_PARM(io_speed, 0); /* ns */
/* Optional features */
#ifdef CONFIG_PM
-static int do_apm = 1;
-MODULE_PARM(do_apm, "i");
+INT_MODULE_PARM(do_apm, 1);
#else
-static int do_apm = 0;
+INT_MODULE_PARM(do_apm, 0);
#endif
-MODULE_PARM(setup_delay, "i");
-MODULE_PARM(resume_delay, "i");
-MODULE_PARM(shutdown_delay, "i");
-MODULE_PARM(vcc_settle, "i");
-MODULE_PARM(reset_time, "i");
-MODULE_PARM(unreset_delay, "i");
-MODULE_PARM(unreset_check, "i");
-MODULE_PARM(unreset_limit, "i");
-MODULE_PARM(cis_speed, "i");
-MODULE_PARM(io_speed, "i");
-
/*====================================================================*/
socket_state_t dead_socket = {
@@ -340,7 +324,6 @@ int register_ss_entry(int nsock, struct pccard_operations * ss_entry)
s->sock = ns;
s->setup.data = sockets;
s->setup.function = &setup_socket;
- s->setup_timeout = 0;
s->shutdown.data = sockets;
s->shutdown.function = &shutdown_socket;
/* base address = 0, map = 0 */
@@ -361,10 +344,13 @@ int register_ss_entry(int nsock, struct pccard_operations * ss_entry)
char name[3];
sprintf(name, "%02d", i);
s->proc = proc_mkdir(name, proc_pccard);
+ if (s->proc)
+ ss_entry->proc_setup(ns, s->proc);
#ifdef PCMCIA_DEBUG
- create_proc_read_entry("clients",0,s->proc,proc_read_clients,s);
+ if (s->proc)
+ create_proc_read_entry("clients", 0, s->proc,
+ proc_read_clients, s);
#endif
- ss_entry->proc_setup(ns, s->proc);
}
#endif
}
@@ -390,6 +376,7 @@ void unregister_ss_entry(struct pccard_operations * ss_entry)
#ifdef PCMCIA_DEBUG
remove_proc_entry("clients", s->proc);
#endif
+ remove_proc_entry(name, proc_pccard);
}
}
#endif
@@ -659,6 +646,7 @@ static void parse_events(void *info, u_int events)
}
s->state |= SOCKET_SETUP_PENDING;
s->setup.function = &setup_socket;
+ s->setup_timeout = 0;
if (s->state & SOCKET_SUSPEND)
s->setup.expires = jiffies + resume_delay;
else
@@ -2346,9 +2334,6 @@ EXPORT_SYMBOL(proc_pccard);
static int __init init_pcmcia_cs(void)
{
printk(KERN_INFO "%s\n", release);
-#ifdef MODULE
- printk(KERN_INFO " %s\n", kernel);
-#endif
printk(KERN_INFO " %s\n", options);
DEBUG(0, "%s\n", version);
if (do_apm)
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index c536f22c6..11e4330c5 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -897,7 +897,7 @@ int __init init_pcmcia_ds(void)
init_waitqueue_head(&s->queue);
init_waitqueue_head(&s->request);
s->handle = NULL;
- s->removal.prev = s->removal.next = NULL;
+ init_timer(&s->removal);
s->removal.data = i;
s->removal.function = &handle_removal;
s->bind = NULL;
diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c
index af89ed1d3..578cbfcd0 100644
--- a/drivers/pcmcia/i82365.c
+++ b/drivers/pcmcia/i82365.c
@@ -1518,7 +1518,7 @@ static int __init init_i82365(void)
if (poll_interval != 0) {
poll_timer.function = pcic_interrupt_wrapper;
poll_timer.data = 0;
- poll_timer.prev = poll_timer.next = NULL;
+ init_timer(&poll_timer);
poll_timer.expires = jiffies + poll_interval;
add_timer(&poll_timer);
}
diff --git a/drivers/pcmcia/tcic.c b/drivers/pcmcia/tcic.c
index 8939ea9f6..67abc32e6 100644
--- a/drivers/pcmcia/tcic.c
+++ b/drivers/pcmcia/tcic.c
@@ -450,7 +450,7 @@ static int __init init_tcic(void)
/* Set up polling */
poll_timer.function = &tcic_timer;
poll_timer.data = 0;
- poll_timer.prev = poll_timer.next = NULL;
+ init_timer(&poll_timer);
/* Build interrupt mask */
printk(", %d sockets\n" KERN_INFO " irq list (", sockets);
diff --git a/drivers/pcmcia/yenta.c b/drivers/pcmcia/yenta.c
index 294895733..857e8f043 100644
--- a/drivers/pcmcia/yenta.c
+++ b/drivers/pcmcia/yenta.c
@@ -786,10 +786,8 @@ static int yenta_open(pci_socket_t *socket)
/*
* Do some basic sanity checking..
*/
- if (pci_enable_device(dev)) {
- printk("Unable to enable device\n");
+ if (pci_enable_device(dev))
return -1;
- }
if (!dev->resource[0].start) {
printk("No cardbus resource!\n");
return -1;