aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2005-06-27 19:28:49 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-27 21:03:19 -0400
commit90c6cdd1fa8dd4d69af792541a37b38576aa9b5a (patch)
treef8294e94811eb9cf6c121a65c4afbce485d7d6f6 /drivers/pcmcia
parente7a480d229461e54a0b3b0439b2bf0e652545e3d (diff)
[PATCH] pcmcia: clean up cs ds callback
struct pcmcia_callback isn't needed for each socket, one is enough for all sockets. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r--drivers/pcmcia/ds.c12
-rw-r--r--drivers/pcmcia/ds_internal.h1
2 files changed, 7 insertions, 6 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 80b34b65511c..54068f451ee6 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -1167,6 +1167,12 @@ int pcmcia_deregister_client(client_handle_t handle)
1167} /* deregister_client */ 1167} /* deregister_client */
1168EXPORT_SYMBOL(pcmcia_deregister_client); 1168EXPORT_SYMBOL(pcmcia_deregister_client);
1169 1169
1170static struct pcmcia_callback pcmcia_bus_callback = {
1171 .owner = THIS_MODULE,
1172 .event = ds_event,
1173 .requery = pcmcia_bus_rescan,
1174};
1175
1170static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev) 1176static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev)
1171{ 1177{
1172 struct pcmcia_socket *socket = class_get_devdata(class_dev); 1178 struct pcmcia_socket *socket = class_get_devdata(class_dev);
@@ -1201,12 +1207,9 @@ static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev)
1201 INIT_WORK(&s->device_add, pcmcia_delayed_add_pseudo_device, s); 1207 INIT_WORK(&s->device_add, pcmcia_delayed_add_pseudo_device, s);
1202 1208
1203 /* Set up hotline to Card Services */ 1209 /* Set up hotline to Card Services */
1204 s->callback.owner = THIS_MODULE;
1205 s->callback.event = &ds_event;
1206 s->callback.requery = &pcmcia_bus_rescan;
1207 socket->pcmcia = s; 1210 socket->pcmcia = s;
1208 1211
1209 ret = pccard_register_pcmcia(socket, &s->callback); 1212 ret = pccard_register_pcmcia(socket, &pcmcia_bus_callback);
1210 if (ret) { 1213 if (ret) {
1211 printk(KERN_ERR "PCMCIA registration PCCard core failed for socket %p\n", socket); 1214 printk(KERN_ERR "PCMCIA registration PCCard core failed for socket %p\n", socket);
1212 pcmcia_put_bus_socket(s); 1215 pcmcia_put_bus_socket(s);
@@ -1217,7 +1220,6 @@ static int __devinit pcmcia_bus_add_socket(struct class_device *class_dev)
1217 return 0; 1220 return 0;
1218} 1221}
1219 1222
1220
1221static void pcmcia_bus_remove_socket(struct class_device *class_dev) 1223static void pcmcia_bus_remove_socket(struct class_device *class_dev)
1222{ 1224{
1223 struct pcmcia_socket *socket = class_get_devdata(class_dev); 1225 struct pcmcia_socket *socket = class_get_devdata(class_dev);
diff --git a/drivers/pcmcia/ds_internal.h b/drivers/pcmcia/ds_internal.h
index 0de90e5e67a7..b05bc39d9cd6 100644
--- a/drivers/pcmcia/ds_internal.h
+++ b/drivers/pcmcia/ds_internal.h
@@ -5,7 +5,6 @@ struct user_info_t;
5/* Socket state information */ 5/* Socket state information */
6struct pcmcia_bus_socket { 6struct pcmcia_bus_socket {
7 struct kref refcount; 7 struct kref refcount;
8 struct pcmcia_callback callback;
9 int state; 8 int state;
10 struct pcmcia_socket *parent; 9 struct pcmcia_socket *parent;
11 10