aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2005-07-07 20:59:00 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-07 21:24:05 -0400
commit1e212f3645a6b355de8c43a23376bc0e2ac49a63 (patch)
tree89324df417c19a1a63efb2ec6630e7d4b47181a0
parentbf45d9b0ac108b11245203ebb082d30f5059846b (diff)
[PATCH] pcmcia: move event handler
Move the "event handler" to struct pcmcia_driver -- the unified event handler will disappear really soon, but switching it to struct pcmcia_driver in the meantime allows for better "step-by-step" patches. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/bluetooth/bluecard_cs.c6
-rw-r--r--drivers/bluetooth/bt3c_cs.c6
-rw-r--r--drivers/bluetooth/btuart_cs.c6
-rw-r--r--drivers/bluetooth/dtl1_cs.c6
-rw-r--r--drivers/char/pcmcia/synclink_cs.c6
-rw-r--r--drivers/ide/legacy/ide-cs.c6
-rw-r--r--drivers/isdn/hardware/avm/avm_cs.c6
-rw-r--r--drivers/isdn/hisax/avma1_cs.c6
-rw-r--r--drivers/isdn/hisax/elsa_cs.c6
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c6
-rw-r--r--drivers/isdn/hisax/teles_cs.c6
-rw-r--r--drivers/mtd/maps/pcmciamtd.c6
-rw-r--r--drivers/net/pcmcia/3c574_cs.c6
-rw-r--r--drivers/net/pcmcia/3c589_cs.c6
-rw-r--r--drivers/net/pcmcia/axnet_cs.c6
-rw-r--r--drivers/net/pcmcia/com20020_cs.c6
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c6
-rw-r--r--drivers/net/pcmcia/ibmtr_cs.c6
-rw-r--r--drivers/net/pcmcia/nmclan_cs.c6
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c6
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c5
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c6
-rw-r--r--drivers/net/wireless/airo_cs.c6
-rw-r--r--drivers/net/wireless/atmel_cs.c16
-rw-r--r--drivers/net/wireless/netwave_cs.c6
-rw-r--r--drivers/net/wireless/orinoco_cs.c6
-rw-r--r--drivers/net/wireless/ray_cs.c6
-rw-r--r--drivers/net/wireless/wavelan_cs.c7
-rw-r--r--drivers/net/wireless/wl3501_cs.c18
-rw-r--r--drivers/parport/parport_cs.c6
-rw-r--r--drivers/pcmcia/cs_internal.h3
-rw-r--r--drivers/pcmcia/ds.c32
-rw-r--r--drivers/scsi/pcmcia/aha152x_stub.c6
-rw-r--r--drivers/scsi/pcmcia/fdomain_stub.c6
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.c16
-rw-r--r--drivers/scsi/pcmcia/qlogic_stub.c3
-rw-r--r--drivers/scsi/pcmcia/sym53c500_cs.c5
-rw-r--r--drivers/serial/serial_cs.c6
-rw-r--r--drivers/telephony/ixj_pcmcia.c6
-rw-r--r--drivers/usb/host/sl811_cs.c6
-rw-r--r--include/pcmcia/ds.h8
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf.c19
-rw-r--r--sound/pcmcia/vx/vx_entry.c12
43 files changed, 85 insertions, 245 deletions
diff --git a/drivers/bluetooth/bluecard_cs.c b/drivers/bluetooth/bluecard_cs.c
index 5ef9adb9fe7..53661246100 100644
--- a/drivers/bluetooth/bluecard_cs.c
+++ b/drivers/bluetooth/bluecard_cs.c
@@ -895,11 +895,6 @@ static dev_link_t *bluecard_attach(void)
895 link->next = dev_list; 895 link->next = dev_list;
896 dev_list = link; 896 dev_list = link;
897 client_reg.dev_info = &dev_info; 897 client_reg.dev_info = &dev_info;
898 client_reg.EventMask =
899 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
900 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
901 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
902 client_reg.event_handler = &bluecard_event;
903 client_reg.Version = 0x0210; 898 client_reg.Version = 0x0210;
904 client_reg.event_callback_args.client_data = link; 899 client_reg.event_callback_args.client_data = link;
905 900
@@ -1103,6 +1098,7 @@ static struct pcmcia_driver bluecard_driver = {
1103 .name = "bluecard_cs", 1098 .name = "bluecard_cs",
1104 }, 1099 },
1105 .attach = bluecard_attach, 1100 .attach = bluecard_attach,
1101 .event = bluecard_event,
1106 .detach = bluecard_detach, 1102 .detach = bluecard_detach,
1107 .id_table = bluecard_ids, 1103 .id_table = bluecard_ids,
1108}; 1104};
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index 9013cd759af..06539a542e9 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -696,11 +696,6 @@ static dev_link_t *bt3c_attach(void)
696 link->next = dev_list; 696 link->next = dev_list;
697 dev_list = link; 697 dev_list = link;
698 client_reg.dev_info = &dev_info; 698 client_reg.dev_info = &dev_info;
699 client_reg.EventMask =
700 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
701 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
702 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
703 client_reg.event_handler = &bt3c_event;
704 client_reg.Version = 0x0210; 699 client_reg.Version = 0x0210;
705 client_reg.event_callback_args.client_data = link; 700 client_reg.event_callback_args.client_data = link;
706 701
@@ -947,6 +942,7 @@ static struct pcmcia_driver bt3c_driver = {
947 .name = "bt3c_cs", 942 .name = "bt3c_cs",
948 }, 943 },
949 .attach = bt3c_attach, 944 .attach = bt3c_attach,
945 .event = bt3c_event,
950 .detach = bt3c_detach, 946 .detach = bt3c_detach,
951 .id_table = bt3c_ids, 947 .id_table = bt3c_ids,
952}; 948};
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index c479484a1f7..f15a9cf2b78 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -615,11 +615,6 @@ static dev_link_t *btuart_attach(void)
615 link->next = dev_list; 615 link->next = dev_list;
616 dev_list = link; 616 dev_list = link;
617 client_reg.dev_info = &dev_info; 617 client_reg.dev_info = &dev_info;
618 client_reg.EventMask =
619 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
620 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
621 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
622 client_reg.event_handler = &btuart_event;
623 client_reg.Version = 0x0210; 618 client_reg.Version = 0x0210;
624 client_reg.event_callback_args.client_data = link; 619 client_reg.event_callback_args.client_data = link;
625 620
@@ -867,6 +862,7 @@ static struct pcmcia_driver btuart_driver = {
867 .name = "btuart_cs", 862 .name = "btuart_cs",
868 }, 863 },
869 .attach = btuart_attach, 864 .attach = btuart_attach,
865 .event = btuart_event,
870 .detach = btuart_detach, 866 .detach = btuart_detach,
871 .id_table = btuart_ids, 867 .id_table = btuart_ids,
872}; 868};
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index bb12f7daeb9..58b09a9cc4c 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -594,11 +594,6 @@ static dev_link_t *dtl1_attach(void)
594 link->next = dev_list; 594 link->next = dev_list;
595 dev_list = link; 595 dev_list = link;
596 client_reg.dev_info = &dev_info; 596 client_reg.dev_info = &dev_info;
597 client_reg.EventMask =
598 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
599 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
600 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
601 client_reg.event_handler = &dtl1_event;
602 client_reg.Version = 0x0210; 597 client_reg.Version = 0x0210;
603 client_reg.event_callback_args.client_data = link; 598 client_reg.event_callback_args.client_data = link;
604 599
@@ -820,6 +815,7 @@ static struct pcmcia_driver dtl1_driver = {
820 .name = "dtl1_cs", 815 .name = "dtl1_cs",
821 }, 816 },
822 .attach = dtl1_attach, 817 .attach = dtl1_attach,
818 .event = dtl1_event,
823 .detach = dtl1_detach, 819 .detach = dtl1_detach,
824 .id_table = dtl1_ids, 820 .id_table = dtl1_ids,
825}; 821};
diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
index 8f36b1758eb..ea691561e08 100644
--- a/drivers/char/pcmcia/synclink_cs.c
+++ b/drivers/char/pcmcia/synclink_cs.c
@@ -593,11 +593,6 @@ static dev_link_t *mgslpc_attach(void)
593 dev_list = link; 593 dev_list = link;
594 594
595 client_reg.dev_info = &dev_info; 595 client_reg.dev_info = &dev_info;
596 client_reg.EventMask =
597 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
598 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
599 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
600 client_reg.event_handler = &mgslpc_event;
601 client_reg.Version = 0x0210; 596 client_reg.Version = 0x0210;
602 client_reg.event_callback_args.client_data = link; 597 client_reg.event_callback_args.client_data = link;
603 598
@@ -3093,6 +3088,7 @@ static struct pcmcia_driver mgslpc_driver = {
3093 .name = "synclink_cs", 3088 .name = "synclink_cs",
3094 }, 3089 },
3095 .attach = mgslpc_attach, 3090 .attach = mgslpc_attach,
3091 .event = mgslpc_event,
3096 .detach = mgslpc_detach, 3092 .detach = mgslpc_detach,
3097 .id_table = mgslpc_ids, 3093 .id_table = mgslpc_ids,
3098}; 3094};
diff --git a/drivers/ide/legacy/ide-cs.c b/drivers/ide/legacy/ide-cs.c
index 978d27d6452..fde0d5f1b87 100644
--- a/drivers/ide/legacy/ide-cs.c
+++ b/drivers/ide/legacy/ide-cs.c
@@ -134,11 +134,6 @@ static dev_link_t *ide_attach(void)
134 link->next = dev_list; 134 link->next = dev_list;
135 dev_list = link; 135 dev_list = link;
136 client_reg.dev_info = &dev_info; 136 client_reg.dev_info = &dev_info;
137 client_reg.EventMask =
138 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
139 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
140 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
141 client_reg.event_handler = &ide_event;
142 client_reg.Version = 0x0210; 137 client_reg.Version = 0x0210;
143 client_reg.event_callback_args.client_data = link; 138 client_reg.event_callback_args.client_data = link;
144 ret = pcmcia_register_client(&link->handle, &client_reg); 139 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -497,6 +492,7 @@ static struct pcmcia_driver ide_cs_driver = {
497 .name = "ide-cs", 492 .name = "ide-cs",
498 }, 493 },
499 .attach = ide_attach, 494 .attach = ide_attach,
495 .event = ide_event,
500 .detach = ide_detach, 496 .detach = ide_detach,
501 .id_table = ide_ids, 497 .id_table = ide_ids,
502}; 498};
diff --git a/drivers/isdn/hardware/avm/avm_cs.c b/drivers/isdn/hardware/avm/avm_cs.c
index ee750e9456d..a30c74fd75d 100644
--- a/drivers/isdn/hardware/avm/avm_cs.c
+++ b/drivers/isdn/hardware/avm/avm_cs.c
@@ -161,11 +161,6 @@ static dev_link_t *avmcs_attach(void)
161 link->next = dev_list; 161 link->next = dev_list;
162 dev_list = link; 162 dev_list = link;
163 client_reg.dev_info = &dev_info; 163 client_reg.dev_info = &dev_info;
164 client_reg.EventMask =
165 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
166 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
167 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
168 client_reg.event_handler = &avmcs_event;
169 client_reg.Version = 0x0210; 164 client_reg.Version = 0x0210;
170 client_reg.event_callback_args.client_data = link; 165 client_reg.event_callback_args.client_data = link;
171 ret = pcmcia_register_client(&link->handle, &client_reg); 166 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -500,6 +495,7 @@ static struct pcmcia_driver avmcs_driver = {
500 .name = "avm_cs", 495 .name = "avm_cs",
501 }, 496 },
502 .attach = avmcs_attach, 497 .attach = avmcs_attach,
498 .event = avmcs_event,
503 .detach = avmcs_detach, 499 .detach = avmcs_detach,
504 .id_table = avmcs_ids, 500 .id_table = avmcs_ids,
505}; 501};
diff --git a/drivers/isdn/hisax/avma1_cs.c b/drivers/isdn/hisax/avma1_cs.c
index 67c60e04a37..d3de0e85619 100644
--- a/drivers/isdn/hisax/avma1_cs.c
+++ b/drivers/isdn/hisax/avma1_cs.c
@@ -183,11 +183,6 @@ static dev_link_t *avma1cs_attach(void)
183 link->next = dev_list; 183 link->next = dev_list;
184 dev_list = link; 184 dev_list = link;
185 client_reg.dev_info = &dev_info; 185 client_reg.dev_info = &dev_info;
186 client_reg.EventMask =
187 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
188 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
189 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
190 client_reg.event_handler = &avma1cs_event;
191 client_reg.Version = 0x0210; 186 client_reg.Version = 0x0210;
192 client_reg.event_callback_args.client_data = link; 187 client_reg.event_callback_args.client_data = link;
193 ret = pcmcia_register_client(&link->handle, &client_reg); 188 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -514,6 +509,7 @@ static struct pcmcia_driver avma1cs_driver = {
514 .name = "avma1_cs", 509 .name = "avma1_cs",
515 }, 510 },
516 .attach = avma1cs_attach, 511 .attach = avma1cs_attach,
512 .event = avma1cs_event,
517 .detach = avma1cs_detach, 513 .detach = avma1cs_detach,
518 .id_table = avma1cs_ids, 514 .id_table = avma1cs_ids,
519}; 515};
diff --git a/drivers/isdn/hisax/elsa_cs.c b/drivers/isdn/hisax/elsa_cs.c
index 9146be54704..54f0d68ad79 100644
--- a/drivers/isdn/hisax/elsa_cs.c
+++ b/drivers/isdn/hisax/elsa_cs.c
@@ -212,11 +212,6 @@ static dev_link_t *elsa_cs_attach(void)
212 link->next = dev_list; 212 link->next = dev_list;
213 dev_list = link; 213 dev_list = link;
214 client_reg.dev_info = &dev_info; 214 client_reg.dev_info = &dev_info;
215 client_reg.EventMask =
216 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
217 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
218 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
219 client_reg.event_handler = &elsa_cs_event;
220 client_reg.Version = 0x0210; 215 client_reg.Version = 0x0210;
221 client_reg.event_callback_args.client_data = link; 216 client_reg.event_callback_args.client_data = link;
222 ret = pcmcia_register_client(&link->handle, &client_reg); 217 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -521,6 +516,7 @@ static struct pcmcia_driver elsa_cs_driver = {
521 .name = "elsa_cs", 516 .name = "elsa_cs",
522 }, 517 },
523 .attach = elsa_cs_attach, 518 .attach = elsa_cs_attach,
519 .event = elsa_cs_event,
524 .detach = elsa_cs_detach, 520 .detach = elsa_cs_detach,
525 .id_table = elsa_ids, 521 .id_table = elsa_ids,
526}; 522};
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index 058147a6957..baf733e8647 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -226,11 +226,6 @@ static dev_link_t *sedlbauer_attach(void)
226 link->next = dev_list; 226 link->next = dev_list;
227 dev_list = link; 227 dev_list = link;
228 client_reg.dev_info = &dev_info; 228 client_reg.dev_info = &dev_info;
229 client_reg.EventMask =
230 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
231 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
232 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
233 client_reg.event_handler = &sedlbauer_event;
234 client_reg.Version = 0x0210; 229 client_reg.Version = 0x0210;
235 client_reg.event_callback_args.client_data = link; 230 client_reg.event_callback_args.client_data = link;
236 ret = pcmcia_register_client(&link->handle, &client_reg); 231 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -634,6 +629,7 @@ static struct pcmcia_driver sedlbauer_driver = {
634 .name = "sedlbauer_cs", 629 .name = "sedlbauer_cs",
635 }, 630 },
636 .attach = sedlbauer_attach, 631 .attach = sedlbauer_attach,
632 .event = sedlbauer_event,
637 .detach = sedlbauer_detach, 633 .detach = sedlbauer_detach,
638 .id_table = sedlbauer_ids, 634 .id_table = sedlbauer_ids,
639}; 635};
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index 107376ff5b9..b8eeb789f90 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -193,11 +193,6 @@ static dev_link_t *teles_attach(void)
193 link->next = dev_list; 193 link->next = dev_list;
194 dev_list = link; 194 dev_list = link;
195 client_reg.dev_info = &dev_info; 195 client_reg.dev_info = &dev_info;
196 client_reg.EventMask =
197 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
198 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
199 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
200 client_reg.event_handler = &teles_cs_event;
201 client_reg.Version = 0x0210; 196 client_reg.Version = 0x0210;
202 client_reg.event_callback_args.client_data = link; 197 client_reg.event_callback_args.client_data = link;
203 ret = pcmcia_register_client(&link->handle, &client_reg); 198 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -501,6 +496,7 @@ static struct pcmcia_driver teles_cs_driver = {
501 .name = "teles_cs", 496 .name = "teles_cs",
502 }, 497 },
503 .attach = teles_attach, 498 .attach = teles_attach,
499 .event = teles_cs_event,
504 .detach = teles_detach, 500 .detach = teles_detach,
505 .id_table = teles_ids, 501 .id_table = teles_ids,
506}; 502};
diff --git a/drivers/mtd/maps/pcmciamtd.c b/drivers/mtd/maps/pcmciamtd.c
index c2655a817e3..aa820ee4c31 100644
--- a/drivers/mtd/maps/pcmciamtd.c
+++ b/drivers/mtd/maps/pcmciamtd.c
@@ -800,11 +800,6 @@ static dev_link_t *pcmciamtd_attach(void)
800 800
801 /* Register with Card Services */ 801 /* Register with Card Services */
802 client_reg.dev_info = &dev_info; 802 client_reg.dev_info = &dev_info;
803 client_reg.EventMask =
804 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
805 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
806 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
807 client_reg.event_handler = &pcmciamtd_event;
808 client_reg.Version = 0x0210; 803 client_reg.Version = 0x0210;
809 client_reg.event_callback_args.client_data = link; 804 client_reg.event_callback_args.client_data = link;
810 DEBUG(2, "Calling RegisterClient"); 805 DEBUG(2, "Calling RegisterClient");
@@ -850,6 +845,7 @@ static struct pcmcia_driver pcmciamtd_driver = {
850 .name = "pcmciamtd" 845 .name = "pcmciamtd"
851 }, 846 },
852 .attach = pcmciamtd_attach, 847 .attach = pcmciamtd_attach,
848 .event = pcmciamtd_event,
853 .detach = pcmciamtd_detach, 849 .detach = pcmciamtd_detach,
854 .owner = THIS_MODULE, 850 .owner = THIS_MODULE,
855 .id_table = pcmciamtd_ids, 851 .id_table = pcmciamtd_ids,
diff --git a/drivers/net/pcmcia/3c574_cs.c b/drivers/net/pcmcia/3c574_cs.c
index f0fc04bd37c..c942964a49d 100644
--- a/drivers/net/pcmcia/3c574_cs.c
+++ b/drivers/net/pcmcia/3c574_cs.c
@@ -312,11 +312,6 @@ static dev_link_t *tc574_attach(void)
312 link->next = dev_list; 312 link->next = dev_list;
313 dev_list = link; 313 dev_list = link;
314 client_reg.dev_info = &dev_info; 314 client_reg.dev_info = &dev_info;
315 client_reg.EventMask =
316 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
317 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
318 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
319 client_reg.event_handler = &tc574_event;
320 client_reg.Version = 0x0210; 315 client_reg.Version = 0x0210;
321 client_reg.event_callback_args.client_data = link; 316 client_reg.event_callback_args.client_data = link;
322 ret = pcmcia_register_client(&link->handle, &client_reg); 317 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -1299,6 +1294,7 @@ static struct pcmcia_driver tc574_driver = {
1299 .name = "3c574_cs", 1294 .name = "3c574_cs",
1300 }, 1295 },
1301 .attach = tc574_attach, 1296 .attach = tc574_attach,
1297 .event = tc574_event,
1302 .detach = tc574_detach, 1298 .detach = tc574_detach,
1303 .id_table = tc574_ids, 1299 .id_table = tc574_ids,
1304}; 1300};
diff --git a/drivers/net/pcmcia/3c589_cs.c b/drivers/net/pcmcia/3c589_cs.c
index 8fa1b5f0fb6..810864c6d1e 100644
--- a/drivers/net/pcmcia/3c589_cs.c
+++ b/drivers/net/pcmcia/3c589_cs.c
@@ -226,11 +226,6 @@ static dev_link_t *tc589_attach(void)
226 link->next = dev_list; 226 link->next = dev_list;
227 dev_list = link; 227 dev_list = link;
228 client_reg.dev_info = &dev_info; 228 client_reg.dev_info = &dev_info;
229 client_reg.EventMask =
230 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
231 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
232 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
233 client_reg.event_handler = &tc589_event;
234 client_reg.Version = 0x0210; 229 client_reg.Version = 0x0210;
235 client_reg.event_callback_args.client_data = link; 230 client_reg.event_callback_args.client_data = link;
236 ret = pcmcia_register_client(&link->handle, &client_reg); 231 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -1074,6 +1069,7 @@ static struct pcmcia_driver tc589_driver = {
1074 .name = "3c589_cs", 1069 .name = "3c589_cs",
1075 }, 1070 },
1076 .attach = tc589_attach, 1071 .attach = tc589_attach,
1072 .event = tc589_event,
1077 .detach = tc589_detach, 1073 .detach = tc589_detach,
1078 .id_table = tc589_ids, 1074 .id_table = tc589_ids,
1079}; 1075};
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 23ce77b1d5b..3d01079598c 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -181,11 +181,6 @@ static dev_link_t *axnet_attach(void)
181 link->next = dev_list; 181 link->next = dev_list;
182 dev_list = link; 182 dev_list = link;
183 client_reg.dev_info = &dev_info; 183 client_reg.dev_info = &dev_info;
184 client_reg.EventMask =
185 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
186 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
187 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
188 client_reg.event_handler = &axnet_event;
189 client_reg.Version = 0x0210; 184 client_reg.Version = 0x0210;
190 client_reg.event_callback_args.client_data = link; 185 client_reg.event_callback_args.client_data = link;
191 ret = pcmcia_register_client(&link->handle, &client_reg); 186 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -884,6 +879,7 @@ static struct pcmcia_driver axnet_cs_driver = {
884 .name = "axnet_cs", 879 .name = "axnet_cs",
885 }, 880 },
886 .attach = axnet_attach, 881 .attach = axnet_attach,
882 .event = axnet_event,
887 .detach = axnet_detach, 883 .detach = axnet_detach,
888 .id_table = axnet_ids, 884 .id_table = axnet_ids,
889}; 885};
diff --git a/drivers/net/pcmcia/com20020_cs.c b/drivers/net/pcmcia/com20020_cs.c
index 68d58cc58d3..b5119607d5a 100644
--- a/drivers/net/pcmcia/com20020_cs.c
+++ b/drivers/net/pcmcia/com20020_cs.c
@@ -200,11 +200,6 @@ static dev_link_t *com20020_attach(void)
200 link->next = dev_list; 200 link->next = dev_list;
201 dev_list = link; 201 dev_list = link;
202 client_reg.dev_info = &dev_info; 202 client_reg.dev_info = &dev_info;
203 client_reg.EventMask =
204 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
205 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
206 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
207 client_reg.event_handler = &com20020_event;
208 client_reg.Version = 0x0210; 203 client_reg.Version = 0x0210;
209 client_reg.event_callback_args.client_data = link; 204 client_reg.event_callback_args.client_data = link;
210 ret = pcmcia_register_client(&link->handle, &client_reg); 205 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -495,6 +490,7 @@ static struct pcmcia_driver com20020_cs_driver = {
495 .name = "com20020_cs", 490 .name = "com20020_cs",
496 }, 491 },
497 .attach = com20020_attach, 492 .attach = com20020_attach,
493 .event = com20020_event,
498 .detach = com20020_detach, 494 .detach = com20020_detach,
499 .id_table = com20020_ids, 495 .id_table = com20020_ids,
500}; 496};
diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c
index 917adbbf0b5..c7d9bb1da41 100644
--- a/drivers/net/pcmcia/fmvj18x_cs.c
+++ b/drivers/net/pcmcia/fmvj18x_cs.c
@@ -288,11 +288,6 @@ static dev_link_t *fmvj18x_attach(void)
288 link->next = dev_list; 288 link->next = dev_list;
289 dev_list = link; 289 dev_list = link;
290 client_reg.dev_info = &dev_info; 290 client_reg.dev_info = &dev_info;
291 client_reg.EventMask =
292 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
293 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
294 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
295 client_reg.event_handler = &fmvj18x_event;
296 client_reg.Version = 0x0210; 291 client_reg.Version = 0x0210;
297 client_reg.event_callback_args.client_data = link; 292 client_reg.event_callback_args.client_data = link;
298 ret = pcmcia_register_client(&link->handle, &client_reg); 293 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -797,6 +792,7 @@ static struct pcmcia_driver fmvj18x_cs_driver = {
797 .name = "fmvj18x_cs", 792 .name = "fmvj18x_cs",
798 }, 793 },
799 .attach = fmvj18x_attach, 794 .attach = fmvj18x_attach,
795 .event = fmvj18x_event,
800 .detach = fmvj18x_detach, 796 .detach = fmvj18x_detach,
801 .id_table = fmvj18x_ids, 797 .id_table = fmvj18x_ids,
802}; 798};
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c
index cf6d073ea55..39cec4a1e4b 100644
--- a/drivers/net/pcmcia/ibmtr_cs.c
+++ b/drivers/net/pcmcia/ibmtr_cs.c
@@ -190,11 +190,6 @@ static dev_link_t *ibmtr_attach(void)
190 link->next = dev_list; 190 link->next = dev_list;
191 dev_list = link; 191 dev_list = link;
192 client_reg.dev_info = &dev_info; 192 client_reg.dev_info = &dev_info;
193 client_reg.EventMask =
194 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
195 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
196 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
197 client_reg.event_handler = &ibmtr_event;
198 client_reg.Version = 0x0210; 193 client_reg.Version = 0x0210;
199 client_reg.event_callback_args.client_data = link; 194 client_reg.event_callback_args.client_data = link;
200 ret = pcmcia_register_client(&link->handle, &client_reg); 195 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -521,6 +516,7 @@ static struct pcmcia_driver ibmtr_cs_driver = {
521 .name = "ibmtr_cs", 516 .name = "ibmtr_cs",
522 }, 517 },
523 .attach = ibmtr_attach, 518 .attach = ibmtr_attach,
519 .event = ibmtr_event,
524 .detach = ibmtr_detach, 520 .detach = ibmtr_detach,
525 .id_table = ibmtr_ids, 521 .id_table = ibmtr_ids,
526}; 522};
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c
index b86e7253fbf..49124dc26b3 100644
--- a/drivers/net/pcmcia/nmclan_cs.c
+++ b/drivers/net/pcmcia/nmclan_cs.c
@@ -502,11 +502,6 @@ static dev_link_t *nmclan_attach(void)
502 link->next = dev_list; 502 link->next = dev_list;
503 dev_list = link; 503 dev_list = link;
504 client_reg.dev_info = &dev_info; 504 client_reg.dev_info = &dev_info;
505 client_reg.EventMask =
506 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
507 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
508 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
509 client_reg.event_handler = &nmclan_event;
510 client_reg.Version = 0x0210; 505 client_reg.Version = 0x0210;
511 client_reg.event_callback_args.client_data = link; 506 client_reg.event_callback_args.client_data = link;
512 ret = pcmcia_register_client(&link->handle, &client_reg); 507 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -1688,6 +1683,7 @@ static struct pcmcia_driver nmclan_cs_driver = {
1688 .name = "nmclan_cs", 1683 .name = "nmclan_cs",
1689 }, 1684 },
1690 .attach = nmclan_attach, 1685 .attach = nmclan_attach,
1686 .event = nmclan_event,
1691 .detach = nmclan_detach, 1687 .detach = nmclan_detach,
1692 .id_table = nmclan_ids, 1688 .id_table = nmclan_ids,
1693}; 1689};
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 855a45d062b..b22b354af5c 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -276,11 +276,6 @@ static dev_link_t *pcnet_attach(void)
276 link->next = dev_list; 276 link->next = dev_list;
277 dev_list = link; 277 dev_list = link;
278 client_reg.dev_info = &dev_info; 278 client_reg.dev_info = &dev_info;
279 client_reg.EventMask =
280 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
281 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
282 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
283 client_reg.event_handler = &pcnet_event;
284 client_reg.Version = 0x0210; 279 client_reg.Version = 0x0210;
285 client_reg.event_callback_args.client_data = link; 280 client_reg.event_callback_args.client_data = link;
286 ret = pcmcia_register_client(&link->handle, &client_reg); 281 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -1844,6 +1839,7 @@ static struct pcmcia_driver pcnet_driver = {
1844 .name = "pcnet_cs", 1839 .name = "pcnet_cs",
1845 }, 1840 },
1846 .attach = pcnet_attach, 1841 .attach = pcnet_attach,
1842 .event = pcnet_event,
1847 .detach = pcnet_detach, 1843 .detach = pcnet_detach,
1848 .owner = THIS_MODULE, 1844 .owner = THIS_MODULE,
1849 .id_table = pcnet_ids, 1845 .id_table = pcnet_ids,
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index bc01c88c670..6b5471dfb55 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -370,10 +370,6 @@ static dev_link_t *smc91c92_attach(void)
370 link->next = dev_list; 370 link->next = dev_list;
371 dev_list = link; 371 dev_list = link;
372 client_reg.dev_info = &dev_info; 372 client_reg.dev_info = &dev_info;
373 client_reg.EventMask = CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
374 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
375 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
376 client_reg.event_handler = &smc91c92_event;
377 client_reg.Version = 0x0210; 373 client_reg.Version = 0x0210;
378 client_reg.event_callback_args.client_data = link; 374 client_reg.event_callback_args.client_data = link;
379 ret = pcmcia_register_client(&link->handle, &client_reg); 375 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -2365,6 +2361,7 @@ static struct pcmcia_driver smc91c92_cs_driver = {
2365 .name = "smc91c92_cs", 2361 .name = "smc91c92_cs",
2366 }, 2362 },
2367 .attach = smc91c92_attach, 2363 .attach = smc91c92_attach,
2364 .event = smc91c92_event,
2368 .detach = smc91c92_detach, 2365 .detach = smc91c92_detach,
2369 .id_table = smc91c92_ids, 2366 .id_table = smc91c92_ids,
2370}; 2367};
diff --git a/drivers/net/pcmcia/xirc2ps_cs.c b/drivers/net/pcmcia/xirc2ps_cs.c
index 0cd225e1595..03d4c0c6b3f 100644
--- a/drivers/net/pcmcia/xirc2ps_cs.c
+++ b/drivers/net/pcmcia/xirc2ps_cs.c
@@ -619,11 +619,6 @@ xirc2ps_attach(void)
619 link->next = dev_list; 619 link->next = dev_list;
620 dev_list = link; 620 dev_list = link;
621 client_reg.dev_info = &dev_info; 621 client_reg.dev_info = &dev_info;
622 client_reg.EventMask =
623 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
624 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
625 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
626 client_reg.event_handler = &xirc2ps_event;
627 client_reg.Version = 0x0210; 622 client_reg.Version = 0x0210;
628 client_reg.event_callback_args.client_data = link; 623 client_reg.event_callback_args.client_data = link;
629 if ((err = pcmcia_register_client(&link->handle, &client_reg))) { 624 if ((err = pcmcia_register_client(&link->handle, &client_reg))) {
@@ -2016,6 +2011,7 @@ static struct pcmcia_driver xirc2ps_cs_driver = {
2016 .name = "xirc2ps_cs", 2011 .name = "xirc2ps_cs",
2017 }, 2012 },
2018 .attach = xirc2ps_attach, 2013 .attach = xirc2ps_attach,
2014 .event = xirc2ps_event,
2019 .detach = xirc2ps_detach, 2015 .detach = xirc2ps_detach,
2020 .id_table = xirc2ps_ids, 2016 .id_table = xirc2ps_ids,
2021}; 2017};
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c
index f10a9523034..fd46393e743 100644
--- a/drivers/net/wireless/airo_cs.c
+++ b/drivers/net/wireless/airo_cs.c
@@ -210,11 +210,6 @@ static dev_link_t *airo_attach(void)
210 link->next = dev_list; 210 link->next = dev_list;
211 dev_list = link; 211 dev_list = link;
212 client_reg.dev_info = &dev_info; 212 client_reg.dev_info = &dev_info;
213 client_reg.EventMask =
214 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
215 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
216 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
217 client_reg.event_handler = &airo_event;
218 client_reg.Version = 0x0210; 213 client_reg.Version = 0x0210;
219 client_reg.event_callback_args.client_data = link; 214 client_reg.event_callback_args.client_data = link;
220 ret = pcmcia_register_client(&link->handle, &client_reg); 215 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -574,6 +569,7 @@ static struct pcmcia_driver airo_driver = {
574 .name = "airo_cs", 569 .name = "airo_cs",
575 }, 570 },
576 .attach = airo_attach, 571 .attach = airo_attach,
572 .event = airo_event,
577 .detach = airo_detach, 573 .detach = airo_detach,
578 .id_table = airo_ids, 574 .id_table = airo_ids,
579}; 575};
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c
index 86379d4998a..863be299503 100644
--- a/drivers/net/wireless/atmel_cs.c
+++ b/drivers/net/wireless/atmel_cs.c
@@ -218,11 +218,6 @@ static dev_link_t *atmel_attach(void)
218 link->next = dev_list; 218 link->next = dev_list;
219 dev_list = link; 219 dev_list = link;
220 client_reg.dev_info = &dev_info; 220 client_reg.dev_info = &dev_info;
221 client_reg.EventMask =
222 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
223 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
224 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
225 client_reg.event_handler = &atmel_event;
226 client_reg.Version = 0x0210; 221 client_reg.Version = 0x0210;
227 client_reg.event_callback_args.client_data = link; 222 client_reg.event_callback_args.client_data = link;
228 ret = pcmcia_register_client(&link->handle, &client_reg); 223 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -668,12 +663,13 @@ static struct pcmcia_device_id atmel_ids[] = {
668MODULE_DEVICE_TABLE(pcmcia, atmel_ids); 663MODULE_DEVICE_TABLE(pcmcia, atmel_ids);
669 664
670static struct pcmcia_driver atmel_driver = { 665static struct pcmcia_driver atmel_driver = {
671 .owner = THIS_MODULE, 666 .owner = THIS_MODULE,
672 .drv = { 667 .drv = {
673 .name = "atmel_cs", 668 .name = "atmel_cs",
674 }, 669 },
675 .attach = atmel_attach, 670 .attach = atmel_attach,
676 .detach = atmel_detach, 671 .event = atmel_event,
672 .detach = atmel_detach,
677 .id_table = atmel_ids, 673 .id_table = atmel_ids,
678}; 674};
679 675
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c
index e12bd75b269..bdd3e7083d9 100644
--- a/drivers/net/wireless/netwave_cs.c
+++ b/drivers/net/wireless/netwave_cs.c
@@ -491,11 +491,6 @@ static dev_link_t *netwave_attach(void)
491 link->next = dev_list; 491 link->next = dev_list;
492 dev_list = link; 492 dev_list = link;
493 client_reg.dev_info = &dev_info; 493 client_reg.dev_info = &dev_info;
494 client_reg.EventMask =
495 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
496 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
497 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
498 client_reg.event_handler = &netwave_event;
499 client_reg.Version = 0x0210; 494 client_reg.Version = 0x0210;
500 client_reg.event_callback_args.client_data = link; 495 client_reg.event_callback_args.client_data = link;
501 ret = pcmcia_register_client(&link->handle, &client_reg); 496 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -1680,6 +1675,7 @@ static struct pcmcia_driver netwave_driver = {
1680 .name = "netwave_cs", 1675 .name = "netwave_cs",
1681 }, 1676 },
1682 .attach = netwave_attach, 1677 .attach = netwave_attach,
1678 .event = netwave_event,
1683 .detach = netwave_detach, 1679 .detach = netwave_detach,
1684 .id_table = netwave_ids, 1680 .id_table = netwave_ids,
1685}; 1681};
diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c
index 597c4586d04..c883404b1d5 100644
--- a/drivers/net/wireless/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco_cs.c
@@ -186,11 +186,6 @@ orinoco_cs_attach(void)
186 dev_list = link; 186 dev_list = link;
187 187
188 client_reg.dev_info = &dev_info; 188 client_reg.dev_info = &dev_info;
189 client_reg.EventMask =
190 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
191 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
192 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
193 client_reg.event_handler = &orinoco_cs_event;
194 client_reg.Version = 0x0210; /* FIXME: what does this mean? */ 189 client_reg.Version = 0x0210; /* FIXME: what does this mean? */
195 client_reg.event_callback_args.client_data = link; 190 client_reg.event_callback_args.client_data = link;
196 191
@@ -664,6 +659,7 @@ static struct pcmcia_driver orinoco_driver = {
664 .name = DRIVER_NAME, 659 .name = DRIVER_NAME,
665 }, 660 },
666 .attach = orinoco_cs_attach, 661 .attach = orinoco_cs_attach,
662 .event = orinoco_cs_event,
667 .detach = orinoco_cs_detach, 663 .detach = orinoco_cs_detach,
668 .id_table = orinoco_cs_ids, 664 .id_table = orinoco_cs_ids,
669}; 665};
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 31652af52ea..0643b1b94a3 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -393,11 +393,6 @@ static dev_link_t *ray_attach(void)
393 link->next = dev_list; 393 link->next = dev_list;
394 dev_list = link; 394 dev_list = link;
395 client_reg.dev_info = &dev_info; 395 client_reg.dev_info = &dev_info;
396 client_reg.EventMask =
397 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
398 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
399 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
400 client_reg.event_handler = &ray_event;
401 client_reg.Version = 0x0210; 396 client_reg.Version = 0x0210;
402 client_reg.event_callback_args.client_data = link; 397 client_reg.event_callback_args.client_data = link;
403 398
@@ -2916,6 +2911,7 @@ static struct pcmcia_driver ray_driver = {
2916 .name = "ray_cs", 2911 .name = "ray_cs",
2917 }, 2912 },
2918 .attach = ray_attach, 2913 .attach = ray_attach,
2914 .event = ray_event,
2919 .detach = ray_detach, 2915 .detach = ray_detach,
2920 .id_table = ray_ids, 2916 .id_table = ray_ids,
2921}; 2917};
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 89532fd9294..f6130a53b79 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -4684,12 +4684,6 @@ wavelan_attach(void)
4684 4684
4685 /* Register with Card Services */ 4685 /* Register with Card Services */
4686 client_reg.dev_info = &dev_info; 4686 client_reg.dev_info = &dev_info;
4687 client_reg.EventMask =
4688 CS_EVENT_REGISTRATION_COMPLETE |
4689 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
4690 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
4691 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
4692 client_reg.event_handler = &wavelan_event;
4693 client_reg.Version = 0x0210; 4687 client_reg.Version = 0x0210;
4694 client_reg.event_callback_args.client_data = link; 4688 client_reg.event_callback_args.client_data = link;
4695 4689
@@ -4904,6 +4898,7 @@ static struct pcmcia_driver wavelan_driver = {
4904 .name = "wavelan_cs", 4898 .name = "wavelan_cs",
4905 }, 4899 },
4906 .attach = wavelan_attach, 4900 .attach = wavelan_attach,
4901 .event = wavelan_event,
4907 .detach = wavelan_detach, 4902 .detach = wavelan_detach,
4908 .id_table = wavelan_ids, 4903 .id_table = wavelan_ids,
4909}; 4904};
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index e3a900482d9..e3aaaa5efcc 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -2005,13 +2005,6 @@ static dev_link_t *wl3501_attach(void)
2005 link->next = wl3501_dev_list; 2005 link->next = wl3501_dev_list;
2006 wl3501_dev_list = link; 2006 wl3501_dev_list = link;
2007 client_reg.dev_info = &wl3501_dev_info; 2007 client_reg.dev_info = &wl3501_dev_info;
2008 client_reg.EventMask = CS_EVENT_CARD_INSERTION |
2009 CS_EVENT_RESET_PHYSICAL |
2010 CS_EVENT_CARD_RESET |
2011 CS_EVENT_CARD_REMOVAL |
2012 CS_EVENT_PM_SUSPEND |
2013 CS_EVENT_PM_RESUME;
2014 client_reg.event_handler = wl3501_event;
2015 client_reg.Version = 0x0210; 2008 client_reg.Version = 0x0210;
2016 client_reg.event_callback_args.client_data = link; 2009 client_reg.event_callback_args.client_data = link;
2017 ret = pcmcia_register_client(&link->handle, &client_reg); 2010 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -2246,12 +2239,13 @@ static struct pcmcia_device_id wl3501_ids[] = {
2246MODULE_DEVICE_TABLE(pcmcia, wl3501_ids); 2239MODULE_DEVICE_TABLE(pcmcia, wl3501_ids);
2247 2240
2248static struct pcmcia_driver wl3501_driver = { 2241static struct pcmcia_driver wl3501_driver = {
2249 .owner = THIS_MODULE, 2242 .owner = THIS_MODULE,
2250 .drv = { 2243 .drv = {
2251 .name = "wl3501_cs", 2244 .name = "wl3501_cs",
2252 }, 2245 },
2253 .attach = wl3501_attach, 2246 .attach = wl3501_attach,
2254 .detach = wl3501_detach, 2247 .event = wl3501_event,
2248 .detach = wl3501_detach,
2255 .id_table = wl3501_ids, 2249 .id_table = wl3501_ids,
2256}; 2250};
2257 2251
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c
index ff45662c4f7..ad8921a260e 100644
--- a/drivers/parport/parport_cs.c
+++ b/drivers/parport/parport_cs.c
@@ -133,11 +133,6 @@ static dev_link_t *parport_attach(void)
133 link->next = dev_list; 133 link->next = dev_list;
134 dev_list = link; 134 dev_list = link;
135 client_reg.dev_info = &dev_info; 135 client_reg.dev_info = &dev_info;
136 client_reg.EventMask =
137 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
138 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
139 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
140 client_reg.event_handler = &parport_event;
141 client_reg.Version = 0x0210; 136 client_reg.Version = 0x0210;
142 client_reg.event_callback_args.client_data = link; 137 client_reg.event_callback_args.client_data = link;
143 ret = pcmcia_register_client(&link->handle, &client_reg); 138 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -386,6 +381,7 @@ static struct pcmcia_driver parport_cs_driver = {
386 .name = "parport_cs", 381 .name = "parport_cs",
387 }, 382 },
388 .attach = parport_attach, 383 .attach = parport_attach,
384 .event = parport_event,
389 .detach = parport_detach, 385 .detach = parport_detach,
390 .id_table = parport_ids, 386 .id_table = parport_ids,
391 387
diff --git a/drivers/pcmcia/cs_internal.h b/drivers/pcmcia/cs_internal.h
index 0b4c18edfa4..e0ba4b5daa1 100644
--- a/drivers/pcmcia/cs_internal.h
+++ b/drivers/pcmcia/cs_internal.h
@@ -114,9 +114,6 @@ static inline void cs_socket_put(struct pcmcia_socket *skt)
114#define CHECK_ERASEQ(q) \ 114#define CHECK_ERASEQ(q) \
115 (((q) == NULL) || ((q)->eraseq_magic != ERASEQ_MAGIC)) 115 (((q) == NULL) || ((q)->eraseq_magic != ERASEQ_MAGIC))
116 116
117#define EVENT(h, e, p) \
118 ((h)->event_handler((e), (p), &(h)->event_callback_args))
119
120/* In cardbus.c */ 117/* In cardbus.c */
121int cb_alloc(struct pcmcia_socket *s); 118int cb_alloc(struct pcmcia_socket *s);
122void cb_free(struct pcmcia_socket *s); 119void cb_free(struct pcmcia_socket *s);
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index d5afd557fe3..367ebf75bee 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -207,6 +207,10 @@ static void pcmcia_check_driver(struct pcmcia_driver *p_drv)
207 unsigned int i; 207 unsigned int i;
208 u32 hash; 208 u32 hash;
209 209
210 if (!p_drv->attach || !p_drv->event || !p_drv->detach)
211 printk(KERN_DEBUG "pcmcia: %s does misses a callback function",
212 p_drv->drv.name);
213
210 while (did && did->match_flags) { 214 while (did && did->match_flags) {
211 for (i=0; i<4; i++) { 215 for (i=0; i<4; i++) {
212 if (!did->prod_id[i]) 216 if (!did->prod_id[i])
@@ -914,6 +918,7 @@ struct send_event_data {
914static int send_event_callback(struct device *dev, void * _data) 918static int send_event_callback(struct device *dev, void * _data)
915{ 919{
916 struct pcmcia_device *p_dev = to_pcmcia_dev(dev); 920 struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
921 struct pcmcia_driver *p_drv;
917 struct send_event_data *data = _data; 922 struct send_event_data *data = _data;
918 923
919 /* we get called for all sockets, but may only pass the event 924 /* we get called for all sockets, but may only pass the event
@@ -921,11 +926,16 @@ static int send_event_callback(struct device *dev, void * _data)
921 if (p_dev->socket != data->skt) 926 if (p_dev->socket != data->skt)
922 return 0; 927 return 0;
923 928
929 p_drv = to_pcmcia_drv(p_dev->dev.driver);
930 if (!p_drv)
931 return 0;
932
924 if (p_dev->client.state & (CLIENT_UNBOUND|CLIENT_STALE)) 933 if (p_dev->client.state & (CLIENT_UNBOUND|CLIENT_STALE))
925 return 0; 934 return 0;
926 935
927 if (p_dev->client.EventMask & data->event) 936 if (p_drv->event)
928 return EVENT(&p_dev->client, data->event, data->priority); 937 return p_drv->event(data->event, data->priority,
938 &p_dev->event_callback_args);
929 939
930 return 0; 940 return 0;
931} 941}
@@ -992,6 +1002,7 @@ int pcmcia_register_client(client_handle_t *handle, client_reg_t *req)
992 client_t *client = NULL; 1002 client_t *client = NULL;
993 struct pcmcia_socket *s = NULL; 1003 struct pcmcia_socket *s = NULL;
994 struct pcmcia_device *p_dev = NULL; 1004 struct pcmcia_device *p_dev = NULL;
1005 struct pcmcia_driver *p_drv = NULL;
995 1006
996 /* Look for unbound client with matching dev_info */ 1007 /* Look for unbound client with matching dev_info */
997 down_read(&pcmcia_socket_list_rwsem); 1008 down_read(&pcmcia_socket_list_rwsem);
@@ -1006,7 +1017,6 @@ int pcmcia_register_client(client_handle_t *handle, client_reg_t *req)
1006 continue; 1017 continue;
1007 spin_lock_irqsave(&pcmcia_dev_list_lock, flags); 1018 spin_lock_irqsave(&pcmcia_dev_list_lock, flags);
1008 list_for_each_entry(p_dev, &s->devices_list, socket_device_list) { 1019 list_for_each_entry(p_dev, &s->devices_list, socket_device_list) {
1009 struct pcmcia_driver *p_drv;
1010 p_dev = pcmcia_get_dev(p_dev); 1020 p_dev = pcmcia_get_dev(p_dev);
1011 if (!p_dev) 1021 if (!p_dev)
1012 continue; 1022 continue;
@@ -1036,10 +1046,9 @@ int pcmcia_register_client(client_handle_t *handle, client_reg_t *req)
1036 *handle = client; 1046 *handle = client;
1037 client->state &= ~CLIENT_UNBOUND; 1047 client->state &= ~CLIENT_UNBOUND;
1038 client->Socket = s; 1048 client->Socket = s;
1039 client->EventMask = req->EventMask; 1049 p_dev->event_callback_args = req->event_callback_args;
1040 client->event_handler = req->event_handler; 1050 p_dev->event_callback_args.client_handle = client;
1041 client->event_callback_args = req->event_callback_args; 1051
1042 client->event_callback_args.client_handle = client;
1043 1052
1044 if (s->state & SOCKET_CARDBUS) 1053 if (s->state & SOCKET_CARDBUS)
1045 client->state |= CLIENT_CARDBUS; 1054 client->state |= CLIENT_CARDBUS;
@@ -1061,12 +1070,12 @@ int pcmcia_register_client(client_handle_t *handle, client_reg_t *req)
1061 1070
1062 ds_dbg(1, "register_client(): client 0x%p, dev %s\n", 1071 ds_dbg(1, "register_client(): client 0x%p, dev %s\n",
1063 client, p_dev->dev.bus_id); 1072 client, p_dev->dev.bus_id);
1064 if (client->EventMask & CS_EVENT_REGISTRATION_COMPLETE)
1065 EVENT(client, CS_EVENT_REGISTRATION_COMPLETE, CS_EVENT_PRI_LOW);
1066 1073
1067 if ((s->state & (SOCKET_PRESENT|SOCKET_CARDBUS)) == SOCKET_PRESENT) { 1074 if ((s->state & (SOCKET_PRESENT|SOCKET_CARDBUS)) == SOCKET_PRESENT) {
1068 if (client->EventMask & CS_EVENT_CARD_INSERTION) 1075 if (p_drv->event)
1069 EVENT(client, CS_EVENT_CARD_INSERTION, CS_EVENT_PRI_LOW); 1076 p_drv->event(CS_EVENT_CARD_INSERTION, CS_EVENT_PRI_LOW,
1077 &p_dev->event_callback_args);
1078
1070 } 1079 }
1071 1080
1072 return CS_SUCCESS; 1081 return CS_SUCCESS;
@@ -1132,7 +1141,6 @@ int pcmcia_deregister_client(client_handle_t handle)
1132 pcmcia_put_dev(p_dev); 1141 pcmcia_put_dev(p_dev);
1133 } else { 1142 } else {
1134 handle->state = CLIENT_UNBOUND; 1143 handle->state = CLIENT_UNBOUND;
1135 handle->event_handler = NULL;
1136 } 1144 }
1137 1145
1138 return CS_SUCCESS; 1146 return CS_SUCCESS;
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index f1f6bf596dc..3dc6957bad1 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -134,11 +134,6 @@ static dev_link_t *aha152x_attach(void)
134 link->next = dev_list; 134 link->next = dev_list;
135 dev_list = link; 135 dev_list = link;
136 client_reg.dev_info = &dev_info; 136 client_reg.dev_info = &dev_info;
137 client_reg.event_handler = &aha152x_event;
138 client_reg.EventMask =
139 CS_EVENT_RESET_REQUEST | CS_EVENT_CARD_RESET |
140 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
141 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
142 client_reg.Version = 0x0210; 137 client_reg.Version = 0x0210;
143 client_reg.event_callback_args.client_data = link; 138 client_reg.event_callback_args.client_data = link;
144 ret = pcmcia_register_client(&link->handle, &client_reg); 139 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -334,6 +329,7 @@ static struct pcmcia_driver aha152x_cs_driver = {
334 .name = "aha152x_cs", 329 .name = "aha152x_cs",
335 }, 330 },
336 .attach = aha152x_attach, 331 .attach = aha152x_attach,
332 .event = aha152x_event,
337 .detach = aha152x_detach, 333 .detach = aha152x_detach,
338 .id_table = aha152x_ids, 334 .id_table = aha152x_ids,
339}; 335};
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index 853e6ee9b71..d2281eba790 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -120,11 +120,6 @@ static dev_link_t *fdomain_attach(void)
120 link->next = dev_list; 120 link->next = dev_list;
121 dev_list = link; 121 dev_list = link;
122 client_reg.dev_info = &dev_info; 122 client_reg.dev_info = &dev_info;
123 client_reg.event_handler = &fdomain_event;
124 client_reg.EventMask =
125 CS_EVENT_RESET_REQUEST | CS_EVENT_CARD_RESET |
126 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
127 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
128 client_reg.Version = 0x0210; 123 client_reg.Version = 0x0210;
129 client_reg.event_callback_args.client_data = link; 124 client_reg.event_callback_args.client_data = link;
130 ret = pcmcia_register_client(&link->handle, &client_reg); 125 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -314,6 +309,7 @@ static struct pcmcia_driver fdomain_cs_driver = {
314 .name = "fdomain_cs", 309 .name = "fdomain_cs",
315 }, 310 },
316 .attach = fdomain_attach, 311 .attach = fdomain_attach,
312 .event = fdomain_event,
317 .detach = fdomain_detach, 313 .detach = fdomain_detach,
318 .id_table = fdomain_ids, 314 .id_table = fdomain_ids,
319}; 315};
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index 91b3f28e7a1..c8755adfd91 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -1642,11 +1642,6 @@ static dev_link_t *nsp_cs_attach(void)
1642 link->next = dev_list; 1642 link->next = dev_list;
1643 dev_list = link; 1643 dev_list = link;
1644 client_reg.dev_info = &dev_info; 1644 client_reg.dev_info = &dev_info;
1645 client_reg.EventMask =
1646 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
1647 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
1648 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME ;
1649 client_reg.event_handler = &nsp_cs_event;
1650 client_reg.Version = 0x0210; 1645 client_reg.Version = 0x0210;
1651 client_reg.event_callback_args.client_data = link; 1646 client_reg.event_callback_args.client_data = link;
1652 ret = pcmcia_register_client(&link->handle, &client_reg); 1647 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -2138,12 +2133,13 @@ static struct pcmcia_device_id nsp_cs_ids[] = {
2138MODULE_DEVICE_TABLE(pcmcia, nsp_cs_ids); 2133MODULE_DEVICE_TABLE(pcmcia, nsp_cs_ids);
2139 2134
2140static struct pcmcia_driver nsp_driver = { 2135static struct pcmcia_driver nsp_driver = {
2141 .owner = THIS_MODULE, 2136 .owner = THIS_MODULE,
2142 .drv = { 2137 .drv = {
2143 .name = "nsp_cs", 2138 .name = "nsp_cs",
2144 }, 2139 },
2145 .attach = nsp_cs_attach, 2140 .attach = nsp_cs_attach,
2146 .detach = nsp_cs_detach, 2141 .event = nsp_cs_event,
2142 .detach = nsp_cs_detach,
2147 .id_table = nsp_cs_ids, 2143 .id_table = nsp_cs_ids,
2148}; 2144};
2149#endif 2145#endif
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c
index 0dcf41102ab..e6e496180d1 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -194,8 +194,6 @@ static dev_link_t *qlogic_attach(void)
194 link->next = dev_list; 194 link->next = dev_list;
195 dev_list = link; 195 dev_list = link;
196 client_reg.dev_info = &dev_info; 196 client_reg.dev_info = &dev_info;
197 client_reg.event_handler = &qlogic_event;
198 client_reg.EventMask = CS_EVENT_RESET_REQUEST | CS_EVENT_CARD_RESET | CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
199 client_reg.Version = 0x0210; 197 client_reg.Version = 0x0210;
200 client_reg.event_callback_args.client_data = link; 198 client_reg.event_callback_args.client_data = link;
201 ret = pcmcia_register_client(&link->handle, &client_reg); 199 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -423,6 +421,7 @@ static struct pcmcia_driver qlogic_cs_driver = {
423 .name = "qlogic_cs", 421 .name = "qlogic_cs",
424 }, 422 },
425 .attach = qlogic_attach, 423 .attach = qlogic_attach,
424 .event = qlogic_event,
426 .detach = qlogic_detach, 425 .detach = qlogic_detach,
427 .id_table = qlogic_ids, 426 .id_table = qlogic_ids,
428}; 427};
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index 7d4b16b6797..b4b3a1a8a0c 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -979,10 +979,6 @@ SYM53C500_attach(void)
979 link->next = dev_list; 979 link->next = dev_list;
980 dev_list = link; 980 dev_list = link;
981 client_reg.dev_info = &dev_info; 981 client_reg.dev_info = &dev_info;
982 client_reg.event_handler = &SYM53C500_event;
983 client_reg.EventMask = CS_EVENT_RESET_REQUEST | CS_EVENT_CARD_RESET |
984 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
985 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
986 client_reg.Version = 0x0210; 982 client_reg.Version = 0x0210;
987 client_reg.event_callback_args.client_data = link; 983 client_reg.event_callback_args.client_data = link;
988 ret = pcmcia_register_client(&link->handle, &client_reg); 984 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -1013,6 +1009,7 @@ static struct pcmcia_driver sym53c500_cs_driver = {
1013 .name = "sym53c500_cs", 1009 .name = "sym53c500_cs",
1014 }, 1010 },
1015 .attach = SYM53C500_attach, 1011 .attach = SYM53C500_attach,
1012 .event = SYM53C500_event,
1016 .detach = SYM53C500_detach, 1013 .detach = SYM53C500_detach,
1017 .id_table = sym53c500_ids, 1014 .id_table = sym53c500_ids,
1018}; 1015};
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 73a34b18866..83bfd11a1cc 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -232,11 +232,6 @@ static dev_link_t *serial_attach(void)
232 link->next = dev_list; 232 link->next = dev_list;
233 dev_list = link; 233 dev_list = link;
234 client_reg.dev_info = &dev_info; 234 client_reg.dev_info = &dev_info;
235 client_reg.EventMask =
236 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
237 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
238 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
239 client_reg.event_handler = &serial_event;
240 client_reg.Version = 0x0210; 235 client_reg.Version = 0x0210;
241 client_reg.event_callback_args.client_data = link; 236 client_reg.event_callback_args.client_data = link;
242 ret = pcmcia_register_client(&link->handle, &client_reg); 237 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -883,6 +878,7 @@ static struct pcmcia_driver serial_cs_driver = {
883 .name = "serial_cs", 878 .name = "serial_cs",
884 }, 879 },
885 .attach = serial_attach, 880 .attach = serial_attach,
881 .event = serial_event,
886 .detach = serial_detach, 882 .detach = serial_detach,
887 .id_table = serial_ids, 883 .id_table = serial_ids,
888}; 884};
diff --git a/drivers/telephony/ixj_pcmcia.c b/drivers/telephony/ixj_pcmcia.c
index ce5ebfe4af2..2fcb4db3abc 100644
--- a/drivers/telephony/ixj_pcmcia.c
+++ b/drivers/telephony/ixj_pcmcia.c
@@ -69,11 +69,6 @@ static dev_link_t *ixj_attach(void)
69 link->next = dev_list; 69 link->next = dev_list;
70 dev_list = link; 70 dev_list = link;
71 client_reg.dev_info = &dev_info; 71 client_reg.dev_info = &dev_info;
72 client_reg.EventMask =
73 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
74 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
75 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
76 client_reg.event_handler = &ixj_event;
77 client_reg.Version = 0x0210; 72 client_reg.Version = 0x0210;
78 client_reg.event_callback_args.client_data = link; 73 client_reg.event_callback_args.client_data = link;
79 ret = pcmcia_register_client(&link->handle, &client_reg); 74 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -307,6 +302,7 @@ static struct pcmcia_driver ixj_driver = {
307 .name = "ixj_cs", 302 .name = "ixj_cs",
308 }, 303 },
309 .attach = ixj_attach, 304 .attach = ixj_attach,
305 .event = ixj_event,
310 .detach = ixj_detach, 306 .detach = ixj_detach,
311 .id_table = ixj_ids, 307 .id_table = ixj_ids,
312}; 308};
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index 269d8ef0145..55dfeec6fdb 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -389,11 +389,6 @@ static dev_link_t *sl811_cs_attach(void)
389 dev_list = link; 389 dev_list = link;
390 client_reg.dev_info = (dev_info_t *) &driver_name; 390 client_reg.dev_info = (dev_info_t *) &driver_name;
391 client_reg.Attributes = INFO_IO_CLIENT | INFO_CARD_SHARE; 391 client_reg.Attributes = INFO_IO_CLIENT | INFO_CARD_SHARE;
392 client_reg.EventMask =
393 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL |
394 CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET |
395 CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME;
396 client_reg.event_handler = &sl811_cs_event;
397 client_reg.Version = 0x0210; 392 client_reg.Version = 0x0210;
398 client_reg.event_callback_args.client_data = link; 393 client_reg.event_callback_args.client_data = link;
399 ret = pcmcia_register_client(&link->handle, &client_reg); 394 ret = pcmcia_register_client(&link->handle, &client_reg);
@@ -418,6 +413,7 @@ static struct pcmcia_driver sl811_cs_driver = {
418 .name = (char *)driver_name, 413 .name = (char *)driver_name,
419 }, 414 },
420 .attach = sl811_cs_attach, 415 .attach = sl811_cs_attach,
416 .event = sl811_cs_event,
421 .detach = sl811_cs_detach, 417 .detach = sl811_cs_detach,
422 .id_table = sl811_ids, 418 .id_table = sl811_ids,
423}; 419};
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h
index 2b52553f2d9..c574ff10814 100644
--- a/include/pcmcia/ds.h
+++ b/include/pcmcia/ds.h
@@ -133,6 +133,8 @@ struct pcmcia_socket;
133 133
134struct pcmcia_driver { 134struct pcmcia_driver {
135 dev_link_t *(*attach)(void); 135 dev_link_t *(*attach)(void);
136 int (*event) (event_t event, int priority,
137 event_callback_args_t *);
136 void (*detach)(dev_link_t *); 138 void (*detach)(dev_link_t *);
137 struct module *owner; 139 struct module *owner;
138 struct pcmcia_device_id *id_table; 140 struct pcmcia_device_id *id_table;
@@ -159,15 +161,13 @@ struct pcmcia_device {
159 /* deprecated, a cleaned up version will be moved into this 161 /* deprecated, a cleaned up version will be moved into this
160 struct soon */ 162 struct soon */
161 dev_link_t *instance; 163 dev_link_t *instance;
164 event_callback_args_t event_callback_args;
165
162 struct client_t { 166 struct client_t {
163 u_short client_magic; 167 u_short client_magic;
164 struct pcmcia_socket *Socket; 168 struct pcmcia_socket *Socket;
165 u_char Function; 169 u_char Function;
166 u_int state; 170 u_int state;
167 event_t EventMask;
168 int (*event_handler) (event_t event, int priority,
169 event_callback_args_t *);
170 event_callback_args_t event_callback_args;
171 } client; 171 } client;
172 172
173 /* information about this device */ 173 /* information about this device */
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.c b/sound/pcmcia/pdaudiocf/pdaudiocf.c
index 2d4f8e28478..c8622f5f7c3 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.c
@@ -171,14 +171,6 @@ static dev_link_t *snd_pdacf_attach(void)
171 171
172 /* Register with Card Services */ 172 /* Register with Card Services */
173 client_reg.dev_info = &dev_info; 173 client_reg.dev_info = &dev_info;
174 client_reg.EventMask =
175 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL
176#ifdef CONFIG_PM
177 | CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET
178 | CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME
179#endif
180 ;
181 client_reg.event_handler = &pdacf_event;
182 client_reg.Version = 0x0210; 174 client_reg.Version = 0x0210;
183 client_reg.event_callback_args.client_data = link; 175 client_reg.event_callback_args.client_data = link;
184 176
@@ -387,12 +379,13 @@ static struct pcmcia_device_id snd_pdacf_ids[] = {
387MODULE_DEVICE_TABLE(pcmcia, snd_pdacf_ids); 379MODULE_DEVICE_TABLE(pcmcia, snd_pdacf_ids);
388 380
389static struct pcmcia_driver pdacf_cs_driver = { 381static struct pcmcia_driver pdacf_cs_driver = {
390 .owner = THIS_MODULE, 382 .owner = THIS_MODULE,
391 .drv = { 383 .drv = {
392 .name = "snd-pdaudiocf", 384 .name = "snd-pdaudiocf",
393 }, 385 },
394 .attach = snd_pdacf_attach, 386 .attach = snd_pdacf_attach,
395 .detach = snd_pdacf_detach, 387 .event = pdacf_event,
388 .detach = snd_pdacf_detach,
396 .id_table = snd_pdacf_ids, 389 .id_table = snd_pdacf_ids,
397}; 390};
398 391
diff --git a/sound/pcmcia/vx/vx_entry.c b/sound/pcmcia/vx/vx_entry.c
index 332bbca3dfc..df7a39ba968 100644
--- a/sound/pcmcia/vx/vx_entry.c
+++ b/sound/pcmcia/vx/vx_entry.c
@@ -35,7 +35,6 @@ MODULE_LICENSE("GPL");
35 * prototypes 35 * prototypes
36 */ 36 */
37static void vxpocket_config(dev_link_t *link); 37static void vxpocket_config(dev_link_t *link);
38static int vxpocket_event(event_t event, int priority, event_callback_args_t *args);
39 38
40 39
41static void vxpocket_release(dev_link_t *link) 40static void vxpocket_release(dev_link_t *link)
@@ -169,14 +168,6 @@ dev_link_t *snd_vxpocket_attach(struct snd_vxp_entry *hw)
169 /* Register with Card Services */ 168 /* Register with Card Services */
170 memset(&client_reg, 0, sizeof(client_reg)); 169 memset(&client_reg, 0, sizeof(client_reg));
171 client_reg.dev_info = hw->dev_info; 170 client_reg.dev_info = hw->dev_info;
172 client_reg.EventMask =
173 CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL
174#ifdef CONFIG_PM
175 | CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET
176 | CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME
177#endif
178 ;
179 client_reg.event_handler = &vxpocket_event;
180 client_reg.Version = 0x0210; 171 client_reg.Version = 0x0210;
181 client_reg.event_callback_args.client_data = link; 172 client_reg.event_callback_args.client_data = link;
182 173
@@ -321,7 +312,7 @@ failed:
321/* 312/*
322 * event callback 313 * event callback
323 */ 314 */
324static int vxpocket_event(event_t event, int priority, event_callback_args_t *args) 315int vxpocket_event(event_t event, int priority, event_callback_args_t *args)
325{ 316{
326 dev_link_t *link = args->client_data; 317 dev_link_t *link = args->client_data;
327 vx_core_t *chip = link->priv; 318 vx_core_t *chip = link->priv;
@@ -380,4 +371,5 @@ static int vxpocket_event(event_t event, int priority, event_callback_args_t *ar
380 */ 371 */
381EXPORT_SYMBOL(snd_vxpocket_ops); 372EXPORT_SYMBOL(snd_vxpocket_ops);
382EXPORT_SYMBOL(snd_vxpocket_attach); 373EXPORT_SYMBOL(snd_vxpocket_attach);
374EXPORT_SYMBOL(vxpocket_event);
383EXPORT_SYMBOL(snd_vxpocket_detach); 375EXPORT_SYMBOL(snd_vxpocket_detach);