From: Dominik Brodowski 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 Signed-off-by: Andrew Morton --- drivers/bluetooth/bluecard_cs.c | 6 +----- drivers/bluetooth/bt3c_cs.c | 6 +----- drivers/bluetooth/btuart_cs.c | 6 +----- drivers/bluetooth/dtl1_cs.c | 6 +----- drivers/char/pcmcia/synclink_cs.c | 6 +----- drivers/ide/legacy/ide-cs.c | 6 +----- drivers/isdn/hardware/avm/avm_cs.c | 6 +----- drivers/isdn/hisax/avma1_cs.c | 6 +----- drivers/isdn/hisax/elsa_cs.c | 6 +----- drivers/isdn/hisax/sedlbauer_cs.c | 6 +----- drivers/isdn/hisax/teles_cs.c | 6 +----- drivers/mtd/maps/pcmciamtd.c | 6 +----- drivers/net/pcmcia/3c574_cs.c | 6 +----- drivers/net/pcmcia/3c589_cs.c | 6 +----- drivers/net/pcmcia/axnet_cs.c | 6 +----- drivers/net/pcmcia/com20020_cs.c | 6 +----- drivers/net/pcmcia/fmvj18x_cs.c | 6 +----- drivers/net/pcmcia/ibmtr_cs.c | 6 +----- drivers/net/pcmcia/nmclan_cs.c | 6 +----- drivers/net/pcmcia/pcnet_cs.c | 6 +----- drivers/net/pcmcia/smc91c92_cs.c | 5 +---- drivers/net/pcmcia/xirc2ps_cs.c | 6 +----- drivers/net/wireless/airo_cs.c | 6 +----- drivers/net/wireless/atmel_cs.c | 16 ++++++---------- drivers/net/wireless/netwave_cs.c | 6 +----- drivers/net/wireless/orinoco_cs.c | 6 +----- drivers/net/wireless/ray_cs.c | 6 +----- drivers/net/wireless/wavelan_cs.c | 7 +------ drivers/net/wireless/wl3501_cs.c | 18 ++++++------------ drivers/parport/parport_cs.c | 6 +----- drivers/pcmcia/cs_internal.h | 3 --- drivers/pcmcia/ds.c | 32 ++++++++++++++++++++------------ drivers/scsi/pcmcia/aha152x_stub.c | 6 +----- drivers/scsi/pcmcia/fdomain_stub.c | 6 +----- drivers/scsi/pcmcia/nsp_cs.c | 16 ++++++---------- drivers/scsi/pcmcia/qlogic_stub.c | 3 +-- drivers/scsi/pcmcia/sym53c500_cs.c | 5 +---- drivers/serial/serial_cs.c | 6 +----- drivers/telephony/ixj_pcmcia.c | 6 +----- drivers/usb/host/sl811_cs.c | 6 +----- include/pcmcia/ds.h | 8 ++++---- sound/pcmcia/pdaudiocf/pdaudiocf.c | 19 ++++++------------- sound/pcmcia/vx/vx_entry.c | 12 ++---------- 43 files changed, 85 insertions(+), 245 deletions(-) diff -puN drivers/bluetooth/bluecard_cs.c~pcmcia-move-event-handler drivers/bluetooth/bluecard_cs.c --- devel/drivers/bluetooth/bluecard_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/bluetooth/bluecard_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -895,11 +895,6 @@ static dev_link_t *bluecard_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &bluecard_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -1103,6 +1098,7 @@ static struct pcmcia_driver bluecard_dri .name = "bluecard_cs", }, .attach = bluecard_attach, + .event = bluecard_event, .detach = bluecard_detach, .id_table = bluecard_ids, }; diff -puN drivers/bluetooth/bt3c_cs.c~pcmcia-move-event-handler drivers/bluetooth/bt3c_cs.c --- devel/drivers/bluetooth/bt3c_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/bluetooth/bt3c_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -696,11 +696,6 @@ static dev_link_t *bt3c_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &bt3c_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -947,6 +942,7 @@ static struct pcmcia_driver bt3c_driver .name = "bt3c_cs", }, .attach = bt3c_attach, + .event = bt3c_event, .detach = bt3c_detach, .id_table = bt3c_ids, }; diff -puN drivers/bluetooth/btuart_cs.c~pcmcia-move-event-handler drivers/bluetooth/btuart_cs.c --- devel/drivers/bluetooth/btuart_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/bluetooth/btuart_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -615,11 +615,6 @@ static dev_link_t *btuart_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &btuart_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -867,6 +862,7 @@ static struct pcmcia_driver btuart_drive .name = "btuart_cs", }, .attach = btuart_attach, + .event = btuart_event, .detach = btuart_detach, .id_table = btuart_ids, }; diff -puN drivers/bluetooth/dtl1_cs.c~pcmcia-move-event-handler drivers/bluetooth/dtl1_cs.c --- devel/drivers/bluetooth/dtl1_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/bluetooth/dtl1_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -594,11 +594,6 @@ static dev_link_t *dtl1_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &dtl1_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -820,6 +815,7 @@ static struct pcmcia_driver dtl1_driver .name = "dtl1_cs", }, .attach = dtl1_attach, + .event = dtl1_event, .detach = dtl1_detach, .id_table = dtl1_ids, }; diff -puN drivers/char/pcmcia/synclink_cs.c~pcmcia-move-event-handler drivers/char/pcmcia/synclink_cs.c --- devel/drivers/char/pcmcia/synclink_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/char/pcmcia/synclink_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -593,11 +593,6 @@ static dev_link_t *mgslpc_attach(void) dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &mgslpc_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -3093,6 +3088,7 @@ static struct pcmcia_driver mgslpc_drive .name = "synclink_cs", }, .attach = mgslpc_attach, + .event = mgslpc_event, .detach = mgslpc_detach, .id_table = mgslpc_ids, }; diff -puN drivers/ide/legacy/ide-cs.c~pcmcia-move-event-handler drivers/ide/legacy/ide-cs.c --- devel/drivers/ide/legacy/ide-cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/ide/legacy/ide-cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -134,11 +134,6 @@ static dev_link_t *ide_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &ide_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -497,6 +492,7 @@ static struct pcmcia_driver ide_cs_drive .name = "ide-cs", }, .attach = ide_attach, + .event = ide_event, .detach = ide_detach, .id_table = ide_ids, }; diff -puN drivers/isdn/hardware/avm/avm_cs.c~pcmcia-move-event-handler drivers/isdn/hardware/avm/avm_cs.c --- devel/drivers/isdn/hardware/avm/avm_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/isdn/hardware/avm/avm_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -161,11 +161,6 @@ static dev_link_t *avmcs_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &avmcs_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -500,6 +495,7 @@ static struct pcmcia_driver avmcs_driver .name = "avm_cs", }, .attach = avmcs_attach, + .event = avmcs_event, .detach = avmcs_detach, .id_table = avmcs_ids, }; diff -puN drivers/isdn/hisax/avma1_cs.c~pcmcia-move-event-handler drivers/isdn/hisax/avma1_cs.c --- devel/drivers/isdn/hisax/avma1_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/isdn/hisax/avma1_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -183,11 +183,6 @@ static dev_link_t *avma1cs_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &avma1cs_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -514,6 +509,7 @@ static struct pcmcia_driver avma1cs_driv .name = "avma1_cs", }, .attach = avma1cs_attach, + .event = avma1cs_event, .detach = avma1cs_detach, .id_table = avma1cs_ids, }; diff -puN drivers/isdn/hisax/elsa_cs.c~pcmcia-move-event-handler drivers/isdn/hisax/elsa_cs.c --- devel/drivers/isdn/hisax/elsa_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/isdn/hisax/elsa_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -212,11 +212,6 @@ static dev_link_t *elsa_cs_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &elsa_cs_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -521,6 +516,7 @@ static struct pcmcia_driver elsa_cs_driv .name = "elsa_cs", }, .attach = elsa_cs_attach, + .event = elsa_cs_event, .detach = elsa_cs_detach, .id_table = elsa_ids, }; diff -puN drivers/isdn/hisax/sedlbauer_cs.c~pcmcia-move-event-handler drivers/isdn/hisax/sedlbauer_cs.c --- devel/drivers/isdn/hisax/sedlbauer_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/isdn/hisax/sedlbauer_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -226,11 +226,6 @@ static dev_link_t *sedlbauer_attach(void link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &sedlbauer_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -634,6 +629,7 @@ static struct pcmcia_driver sedlbauer_dr .name = "sedlbauer_cs", }, .attach = sedlbauer_attach, + .event = sedlbauer_event, .detach = sedlbauer_detach, .id_table = sedlbauer_ids, }; diff -puN drivers/isdn/hisax/teles_cs.c~pcmcia-move-event-handler drivers/isdn/hisax/teles_cs.c --- devel/drivers/isdn/hisax/teles_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/isdn/hisax/teles_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -193,11 +193,6 @@ static dev_link_t *teles_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &teles_cs_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -501,6 +496,7 @@ static struct pcmcia_driver teles_cs_dri .name = "teles_cs", }, .attach = teles_attach, + .event = teles_cs_event, .detach = teles_detach, .id_table = teles_ids, }; diff -puN drivers/mtd/maps/pcmciamtd.c~pcmcia-move-event-handler drivers/mtd/maps/pcmciamtd.c --- devel/drivers/mtd/maps/pcmciamtd.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/mtd/maps/pcmciamtd.c 2005-07-06 01:15:29.000000000 -0700 @@ -800,11 +800,6 @@ static dev_link_t *pcmciamtd_attach(void /* Register with Card Services */ client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &pcmciamtd_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; DEBUG(2, "Calling RegisterClient"); @@ -850,6 +845,7 @@ static struct pcmcia_driver pcmciamtd_dr .name = "pcmciamtd" }, .attach = pcmciamtd_attach, + .event = pcmciamtd_event, .detach = pcmciamtd_detach, .owner = THIS_MODULE, .id_table = pcmciamtd_ids, diff -puN drivers/net/pcmcia/3c574_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/3c574_cs.c --- devel/drivers/net/pcmcia/3c574_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/3c574_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -312,11 +312,6 @@ static dev_link_t *tc574_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &tc574_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -1299,6 +1294,7 @@ static struct pcmcia_driver tc574_driver .name = "3c574_cs", }, .attach = tc574_attach, + .event = tc574_event, .detach = tc574_detach, .id_table = tc574_ids, }; diff -puN drivers/net/pcmcia/3c589_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/3c589_cs.c --- devel/drivers/net/pcmcia/3c589_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/3c589_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -226,11 +226,6 @@ static dev_link_t *tc589_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &tc589_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -1074,6 +1069,7 @@ static struct pcmcia_driver tc589_driver .name = "3c589_cs", }, .attach = tc589_attach, + .event = tc589_event, .detach = tc589_detach, .id_table = tc589_ids, }; diff -puN drivers/net/pcmcia/axnet_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/axnet_cs.c --- devel/drivers/net/pcmcia/axnet_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/axnet_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -181,11 +181,6 @@ static dev_link_t *axnet_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &axnet_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -884,6 +879,7 @@ static struct pcmcia_driver axnet_cs_dri .name = "axnet_cs", }, .attach = axnet_attach, + .event = axnet_event, .detach = axnet_detach, .id_table = axnet_ids, }; diff -puN drivers/net/pcmcia/com20020_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/com20020_cs.c --- devel/drivers/net/pcmcia/com20020_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/com20020_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -200,11 +200,6 @@ static dev_link_t *com20020_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &com20020_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -495,6 +490,7 @@ static struct pcmcia_driver com20020_cs_ .name = "com20020_cs", }, .attach = com20020_attach, + .event = com20020_event, .detach = com20020_detach, .id_table = com20020_ids, }; diff -puN drivers/net/pcmcia/fmvj18x_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/fmvj18x_cs.c --- devel/drivers/net/pcmcia/fmvj18x_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/fmvj18x_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -288,11 +288,6 @@ static dev_link_t *fmvj18x_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &fmvj18x_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -797,6 +792,7 @@ static struct pcmcia_driver fmvj18x_cs_d .name = "fmvj18x_cs", }, .attach = fmvj18x_attach, + .event = fmvj18x_event, .detach = fmvj18x_detach, .id_table = fmvj18x_ids, }; diff -puN drivers/net/pcmcia/ibmtr_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/ibmtr_cs.c --- devel/drivers/net/pcmcia/ibmtr_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/ibmtr_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -190,11 +190,6 @@ static dev_link_t *ibmtr_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &ibmtr_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -521,6 +516,7 @@ static struct pcmcia_driver ibmtr_cs_dri .name = "ibmtr_cs", }, .attach = ibmtr_attach, + .event = ibmtr_event, .detach = ibmtr_detach, .id_table = ibmtr_ids, }; diff -puN drivers/net/pcmcia/nmclan_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/nmclan_cs.c --- devel/drivers/net/pcmcia/nmclan_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/nmclan_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -502,11 +502,6 @@ static dev_link_t *nmclan_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &nmclan_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -1688,6 +1683,7 @@ static struct pcmcia_driver nmclan_cs_dr .name = "nmclan_cs", }, .attach = nmclan_attach, + .event = nmclan_event, .detach = nmclan_detach, .id_table = nmclan_ids, }; diff -puN drivers/net/pcmcia/pcnet_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/pcnet_cs.c --- devel/drivers/net/pcmcia/pcnet_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/pcnet_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -276,11 +276,6 @@ static dev_link_t *pcnet_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &pcnet_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -1844,6 +1839,7 @@ static struct pcmcia_driver pcnet_driver .name = "pcnet_cs", }, .attach = pcnet_attach, + .event = pcnet_event, .detach = pcnet_detach, .owner = THIS_MODULE, .id_table = pcnet_ids, diff -puN drivers/net/pcmcia/smc91c92_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/smc91c92_cs.c --- devel/drivers/net/pcmcia/smc91c92_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/smc91c92_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -370,10 +370,6 @@ static dev_link_t *smc91c92_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &smc91c92_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -2365,6 +2361,7 @@ static struct pcmcia_driver smc91c92_cs_ .name = "smc91c92_cs", }, .attach = smc91c92_attach, + .event = smc91c92_event, .detach = smc91c92_detach, .id_table = smc91c92_ids, }; diff -puN drivers/net/pcmcia/xirc2ps_cs.c~pcmcia-move-event-handler drivers/net/pcmcia/xirc2ps_cs.c --- devel/drivers/net/pcmcia/xirc2ps_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/pcmcia/xirc2ps_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -619,11 +619,6 @@ xirc2ps_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &xirc2ps_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; if ((err = pcmcia_register_client(&link->handle, &client_reg))) { @@ -2016,6 +2011,7 @@ static struct pcmcia_driver xirc2ps_cs_d .name = "xirc2ps_cs", }, .attach = xirc2ps_attach, + .event = xirc2ps_event, .detach = xirc2ps_detach, .id_table = xirc2ps_ids, }; diff -puN drivers/net/wireless/airo_cs.c~pcmcia-move-event-handler drivers/net/wireless/airo_cs.c --- devel/drivers/net/wireless/airo_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/wireless/airo_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -210,11 +210,6 @@ static dev_link_t *airo_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &airo_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -574,6 +569,7 @@ static struct pcmcia_driver airo_driver .name = "airo_cs", }, .attach = airo_attach, + .event = airo_event, .detach = airo_detach, .id_table = airo_ids, }; diff -puN drivers/net/wireless/atmel_cs.c~pcmcia-move-event-handler drivers/net/wireless/atmel_cs.c --- devel/drivers/net/wireless/atmel_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/wireless/atmel_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -218,11 +218,6 @@ static dev_link_t *atmel_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &atmel_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -668,12 +663,13 @@ static struct pcmcia_device_id atmel_ids MODULE_DEVICE_TABLE(pcmcia, atmel_ids); static struct pcmcia_driver atmel_driver = { - .owner = THIS_MODULE, - .drv = { - .name = "atmel_cs", + .owner = THIS_MODULE, + .drv = { + .name = "atmel_cs", }, - .attach = atmel_attach, - .detach = atmel_detach, + .attach = atmel_attach, + .event = atmel_event, + .detach = atmel_detach, .id_table = atmel_ids, }; diff -puN drivers/net/wireless/netwave_cs.c~pcmcia-move-event-handler drivers/net/wireless/netwave_cs.c --- devel/drivers/net/wireless/netwave_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/wireless/netwave_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -491,11 +491,6 @@ static dev_link_t *netwave_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &netwave_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -1680,6 +1675,7 @@ static struct pcmcia_driver netwave_driv .name = "netwave_cs", }, .attach = netwave_attach, + .event = netwave_event, .detach = netwave_detach, .id_table = netwave_ids, }; diff -puN drivers/net/wireless/orinoco_cs.c~pcmcia-move-event-handler drivers/net/wireless/orinoco_cs.c --- devel/drivers/net/wireless/orinoco_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/wireless/orinoco_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -186,11 +186,6 @@ orinoco_cs_attach(void) dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &orinoco_cs_event; client_reg.Version = 0x0210; /* FIXME: what does this mean? */ client_reg.event_callback_args.client_data = link; @@ -664,6 +659,7 @@ static struct pcmcia_driver orinoco_driv .name = DRIVER_NAME, }, .attach = orinoco_cs_attach, + .event = orinoco_cs_event, .detach = orinoco_cs_detach, .id_table = orinoco_cs_ids, }; diff -puN drivers/net/wireless/ray_cs.c~pcmcia-move-event-handler drivers/net/wireless/ray_cs.c --- devel/drivers/net/wireless/ray_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/wireless/ray_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -393,11 +393,6 @@ static dev_link_t *ray_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &ray_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -2916,6 +2911,7 @@ static struct pcmcia_driver ray_driver = .name = "ray_cs", }, .attach = ray_attach, + .event = ray_event, .detach = ray_detach, .id_table = ray_ids, }; diff -puN drivers/net/wireless/wavelan_cs.c~pcmcia-move-event-handler drivers/net/wireless/wavelan_cs.c --- devel/drivers/net/wireless/wavelan_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/wireless/wavelan_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -4690,12 +4690,6 @@ wavelan_attach(void) /* Register with Card Services */ client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_REGISTRATION_COMPLETE | - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &wavelan_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -4910,6 +4904,7 @@ static struct pcmcia_driver wavelan_driv .name = "wavelan_cs", }, .attach = wavelan_attach, + .event = wavelan_event, .detach = wavelan_detach, .id_table = wavelan_ids, }; diff -puN drivers/net/wireless/wl3501_cs.c~pcmcia-move-event-handler drivers/net/wireless/wl3501_cs.c --- devel/drivers/net/wireless/wl3501_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/net/wireless/wl3501_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -2006,13 +2006,6 @@ static dev_link_t *wl3501_attach(void) link->next = wl3501_dev_list; wl3501_dev_list = link; client_reg.dev_info = &wl3501_dev_info; - client_reg.EventMask = CS_EVENT_CARD_INSERTION | - CS_EVENT_RESET_PHYSICAL | - CS_EVENT_CARD_RESET | - CS_EVENT_CARD_REMOVAL | - CS_EVENT_PM_SUSPEND | - CS_EVENT_PM_RESUME; - client_reg.event_handler = wl3501_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -2247,12 +2240,13 @@ static struct pcmcia_device_id wl3501_id MODULE_DEVICE_TABLE(pcmcia, wl3501_ids); static struct pcmcia_driver wl3501_driver = { - .owner = THIS_MODULE, - .drv = { - .name = "wl3501_cs", + .owner = THIS_MODULE, + .drv = { + .name = "wl3501_cs", }, - .attach = wl3501_attach, - .detach = wl3501_detach, + .attach = wl3501_attach, + .event = wl3501_event, + .detach = wl3501_detach, .id_table = wl3501_ids, }; diff -puN drivers/parport/parport_cs.c~pcmcia-move-event-handler drivers/parport/parport_cs.c --- devel/drivers/parport/parport_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/parport/parport_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -133,11 +133,6 @@ static dev_link_t *parport_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &parport_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -386,6 +381,7 @@ static struct pcmcia_driver parport_cs_d .name = "parport_cs", }, .attach = parport_attach, + .event = parport_event, .detach = parport_detach, .id_table = parport_ids, diff -puN drivers/pcmcia/cs_internal.h~pcmcia-move-event-handler drivers/pcmcia/cs_internal.h --- devel/drivers/pcmcia/cs_internal.h~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/pcmcia/cs_internal.h 2005-07-06 01:15:29.000000000 -0700 @@ -114,9 +114,6 @@ static inline void cs_socket_put(struct #define CHECK_ERASEQ(q) \ (((q) == NULL) || ((q)->eraseq_magic != ERASEQ_MAGIC)) -#define EVENT(h, e, p) \ - ((h)->event_handler((e), (p), &(h)->event_callback_args)) - /* In cardbus.c */ int cb_alloc(struct pcmcia_socket *s); void cb_free(struct pcmcia_socket *s); diff -puN drivers/pcmcia/ds.c~pcmcia-move-event-handler drivers/pcmcia/ds.c --- devel/drivers/pcmcia/ds.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/pcmcia/ds.c 2005-07-06 01:15:29.000000000 -0700 @@ -207,6 +207,10 @@ static void pcmcia_check_driver(struct p unsigned int i; u32 hash; + if (!p_drv->attach || !p_drv->event || !p_drv->detach) + printk(KERN_DEBUG "pcmcia: %s does misses a callback function", + p_drv->drv.name); + while (did && did->match_flags) { for (i=0; i<4; i++) { if (!did->prod_id[i]) @@ -914,6 +918,7 @@ struct send_event_data { static int send_event_callback(struct device *dev, void * _data) { struct pcmcia_device *p_dev = to_pcmcia_dev(dev); + struct pcmcia_driver *p_drv; struct send_event_data *data = _data; /* we get called for all sockets, but may only pass the event @@ -921,11 +926,16 @@ static int send_event_callback(struct de if (p_dev->socket != data->skt) return 0; + p_drv = to_pcmcia_drv(p_dev->dev.driver); + if (!p_drv) + return 0; + if (p_dev->client.state & (CLIENT_UNBOUND|CLIENT_STALE)) return 0; - if (p_dev->client.EventMask & data->event) - return EVENT(&p_dev->client, data->event, data->priority); + if (p_drv->event) + return p_drv->event(data->event, data->priority, + &p_dev->event_callback_args); return 0; } @@ -992,6 +1002,7 @@ int pcmcia_register_client(client_handle client_t *client = NULL; struct pcmcia_socket *s = NULL; struct pcmcia_device *p_dev = NULL; + struct pcmcia_driver *p_drv = NULL; /* Look for unbound client with matching dev_info */ down_read(&pcmcia_socket_list_rwsem); @@ -1006,7 +1017,6 @@ int pcmcia_register_client(client_handle continue; spin_lock_irqsave(&pcmcia_dev_list_lock, flags); list_for_each_entry(p_dev, &s->devices_list, socket_device_list) { - struct pcmcia_driver *p_drv; p_dev = pcmcia_get_dev(p_dev); if (!p_dev) continue; @@ -1036,10 +1046,9 @@ int pcmcia_register_client(client_handle *handle = client; client->state &= ~CLIENT_UNBOUND; client->Socket = s; - client->EventMask = req->EventMask; - client->event_handler = req->event_handler; - client->event_callback_args = req->event_callback_args; - client->event_callback_args.client_handle = client; + p_dev->event_callback_args = req->event_callback_args; + p_dev->event_callback_args.client_handle = client; + if (s->state & SOCKET_CARDBUS) client->state |= CLIENT_CARDBUS; @@ -1061,12 +1070,12 @@ int pcmcia_register_client(client_handle ds_dbg(1, "register_client(): client 0x%p, dev %s\n", client, p_dev->dev.bus_id); - if (client->EventMask & CS_EVENT_REGISTRATION_COMPLETE) - EVENT(client, CS_EVENT_REGISTRATION_COMPLETE, CS_EVENT_PRI_LOW); if ((s->state & (SOCKET_PRESENT|SOCKET_CARDBUS)) == SOCKET_PRESENT) { - if (client->EventMask & CS_EVENT_CARD_INSERTION) - EVENT(client, CS_EVENT_CARD_INSERTION, CS_EVENT_PRI_LOW); + if (p_drv->event) + p_drv->event(CS_EVENT_CARD_INSERTION, CS_EVENT_PRI_LOW, + &p_dev->event_callback_args); + } return CS_SUCCESS; @@ -1132,7 +1141,6 @@ int pcmcia_deregister_client(client_hand pcmcia_put_dev(p_dev); } else { handle->state = CLIENT_UNBOUND; - handle->event_handler = NULL; } return CS_SUCCESS; diff -puN drivers/scsi/pcmcia/aha152x_stub.c~pcmcia-move-event-handler drivers/scsi/pcmcia/aha152x_stub.c --- devel/drivers/scsi/pcmcia/aha152x_stub.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/scsi/pcmcia/aha152x_stub.c 2005-07-06 01:15:29.000000000 -0700 @@ -134,11 +134,6 @@ static dev_link_t *aha152x_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.event_handler = &aha152x_event; - 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; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -334,6 +329,7 @@ static struct pcmcia_driver aha152x_cs_d .name = "aha152x_cs", }, .attach = aha152x_attach, + .event = aha152x_event, .detach = aha152x_detach, .id_table = aha152x_ids, }; diff -puN drivers/scsi/pcmcia/fdomain_stub.c~pcmcia-move-event-handler drivers/scsi/pcmcia/fdomain_stub.c --- devel/drivers/scsi/pcmcia/fdomain_stub.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/scsi/pcmcia/fdomain_stub.c 2005-07-06 01:15:29.000000000 -0700 @@ -120,11 +120,6 @@ static dev_link_t *fdomain_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.event_handler = &fdomain_event; - 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; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -314,6 +309,7 @@ static struct pcmcia_driver fdomain_cs_d .name = "fdomain_cs", }, .attach = fdomain_attach, + .event = fdomain_event, .detach = fdomain_detach, .id_table = fdomain_ids, }; diff -puN drivers/scsi/pcmcia/nsp_cs.c~pcmcia-move-event-handler drivers/scsi/pcmcia/nsp_cs.c --- devel/drivers/scsi/pcmcia/nsp_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/scsi/pcmcia/nsp_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -1642,11 +1642,6 @@ static dev_link_t *nsp_cs_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME ; - client_reg.event_handler = &nsp_cs_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -2138,12 +2133,13 @@ static struct pcmcia_device_id nsp_cs_id MODULE_DEVICE_TABLE(pcmcia, nsp_cs_ids); static struct pcmcia_driver nsp_driver = { - .owner = THIS_MODULE, - .drv = { - .name = "nsp_cs", + .owner = THIS_MODULE, + .drv = { + .name = "nsp_cs", }, - .attach = nsp_cs_attach, - .detach = nsp_cs_detach, + .attach = nsp_cs_attach, + .event = nsp_cs_event, + .detach = nsp_cs_detach, .id_table = nsp_cs_ids, }; #endif diff -puN drivers/scsi/pcmcia/qlogic_stub.c~pcmcia-move-event-handler drivers/scsi/pcmcia/qlogic_stub.c --- devel/drivers/scsi/pcmcia/qlogic_stub.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/scsi/pcmcia/qlogic_stub.c 2005-07-06 01:15:29.000000000 -0700 @@ -194,8 +194,6 @@ static dev_link_t *qlogic_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.event_handler = &qlogic_event; - 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; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -423,6 +421,7 @@ static struct pcmcia_driver qlogic_cs_dr .name = "qlogic_cs", }, .attach = qlogic_attach, + .event = qlogic_event, .detach = qlogic_detach, .id_table = qlogic_ids, }; diff -puN drivers/scsi/pcmcia/sym53c500_cs.c~pcmcia-move-event-handler drivers/scsi/pcmcia/sym53c500_cs.c --- devel/drivers/scsi/pcmcia/sym53c500_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/scsi/pcmcia/sym53c500_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -979,10 +979,6 @@ SYM53C500_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.event_handler = &SYM53C500_event; - 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; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -1013,6 +1009,7 @@ static struct pcmcia_driver sym53c500_cs .name = "sym53c500_cs", }, .attach = SYM53C500_attach, + .event = SYM53C500_event, .detach = SYM53C500_detach, .id_table = sym53c500_ids, }; diff -puN drivers/serial/serial_cs.c~pcmcia-move-event-handler drivers/serial/serial_cs.c --- devel/drivers/serial/serial_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/serial/serial_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -232,11 +232,6 @@ static dev_link_t *serial_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &serial_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -883,6 +878,7 @@ static struct pcmcia_driver serial_cs_dr .name = "serial_cs", }, .attach = serial_attach, + .event = serial_event, .detach = serial_detach, .id_table = serial_ids, }; diff -puN drivers/telephony/ixj_pcmcia.c~pcmcia-move-event-handler drivers/telephony/ixj_pcmcia.c --- devel/drivers/telephony/ixj_pcmcia.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/telephony/ixj_pcmcia.c 2005-07-06 01:15:29.000000000 -0700 @@ -69,11 +69,6 @@ static dev_link_t *ixj_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &ixj_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -307,6 +302,7 @@ static struct pcmcia_driver ixj_driver = .name = "ixj_cs", }, .attach = ixj_attach, + .event = ixj_event, .detach = ixj_detach, .id_table = ixj_ids, }; diff -puN drivers/usb/host/sl811_cs.c~pcmcia-move-event-handler drivers/usb/host/sl811_cs.c --- devel/drivers/usb/host/sl811_cs.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/drivers/usb/host/sl811_cs.c 2005-07-06 01:15:29.000000000 -0700 @@ -389,11 +389,6 @@ static dev_link_t *sl811_cs_attach(void) dev_list = link; client_reg.dev_info = (dev_info_t *) &driver_name; client_reg.Attributes = INFO_IO_CLIENT | INFO_CARD_SHARE; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL | - CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET | - CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME; - client_reg.event_handler = &sl811_cs_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; ret = pcmcia_register_client(&link->handle, &client_reg); @@ -418,6 +413,7 @@ static struct pcmcia_driver sl811_cs_dri .name = (char *)driver_name, }, .attach = sl811_cs_attach, + .event = sl811_cs_event, .detach = sl811_cs_detach, .id_table = sl811_ids, }; diff -puN include/pcmcia/ds.h~pcmcia-move-event-handler include/pcmcia/ds.h --- devel/include/pcmcia/ds.h~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/include/pcmcia/ds.h 2005-07-06 01:15:29.000000000 -0700 @@ -133,6 +133,8 @@ struct pcmcia_socket; struct pcmcia_driver { dev_link_t *(*attach)(void); + int (*event) (event_t event, int priority, + event_callback_args_t *); void (*detach)(dev_link_t *); struct module *owner; struct pcmcia_device_id *id_table; @@ -159,15 +161,13 @@ struct pcmcia_device { /* deprecated, a cleaned up version will be moved into this struct soon */ dev_link_t *instance; + event_callback_args_t event_callback_args; + struct client_t { u_short client_magic; struct pcmcia_socket *Socket; u_char Function; u_int state; - event_t EventMask; - int (*event_handler) (event_t event, int priority, - event_callback_args_t *); - event_callback_args_t event_callback_args; } client; /* information about this device */ diff -puN sound/pcmcia/pdaudiocf/pdaudiocf.c~pcmcia-move-event-handler sound/pcmcia/pdaudiocf/pdaudiocf.c --- devel/sound/pcmcia/pdaudiocf/pdaudiocf.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/sound/pcmcia/pdaudiocf/pdaudiocf.c 2005-07-06 01:15:29.000000000 -0700 @@ -171,14 +171,6 @@ static dev_link_t *snd_pdacf_attach(void /* Register with Card Services */ client_reg.dev_info = &dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL -#ifdef CONFIG_PM - | CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET - | CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME -#endif - ; - client_reg.event_handler = &pdacf_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -387,12 +379,13 @@ static struct pcmcia_device_id snd_pdacf MODULE_DEVICE_TABLE(pcmcia, snd_pdacf_ids); static struct pcmcia_driver pdacf_cs_driver = { - .owner = THIS_MODULE, - .drv = { - .name = "snd-pdaudiocf", + .owner = THIS_MODULE, + .drv = { + .name = "snd-pdaudiocf", }, - .attach = snd_pdacf_attach, - .detach = snd_pdacf_detach, + .attach = snd_pdacf_attach, + .event = pdacf_event, + .detach = snd_pdacf_detach, .id_table = snd_pdacf_ids, }; diff -puN sound/pcmcia/vx/vx_entry.c~pcmcia-move-event-handler sound/pcmcia/vx/vx_entry.c --- devel/sound/pcmcia/vx/vx_entry.c~pcmcia-move-event-handler 2005-07-06 01:15:29.000000000 -0700 +++ devel-akpm/sound/pcmcia/vx/vx_entry.c 2005-07-06 01:15:29.000000000 -0700 @@ -35,7 +35,6 @@ MODULE_LICENSE("GPL"); * prototypes */ static void vxpocket_config(dev_link_t *link); -static int vxpocket_event(event_t event, int priority, event_callback_args_t *args); static void vxpocket_release(dev_link_t *link) @@ -169,14 +168,6 @@ dev_link_t *snd_vxpocket_attach(struct s /* Register with Card Services */ memset(&client_reg, 0, sizeof(client_reg)); client_reg.dev_info = hw->dev_info; - client_reg.EventMask = - CS_EVENT_CARD_INSERTION | CS_EVENT_CARD_REMOVAL -#ifdef CONFIG_PM - | CS_EVENT_RESET_PHYSICAL | CS_EVENT_CARD_RESET - | CS_EVENT_PM_SUSPEND | CS_EVENT_PM_RESUME -#endif - ; - client_reg.event_handler = &vxpocket_event; client_reg.Version = 0x0210; client_reg.event_callback_args.client_data = link; @@ -321,7 +312,7 @@ failed: /* * event callback */ -static int vxpocket_event(event_t event, int priority, event_callback_args_t *args) +int vxpocket_event(event_t event, int priority, event_callback_args_t *args) { dev_link_t *link = args->client_data; vx_core_t *chip = link->priv; @@ -380,4 +371,5 @@ static int vxpocket_event(event_t event, */ EXPORT_SYMBOL(snd_vxpocket_ops); EXPORT_SYMBOL(snd_vxpocket_attach); +EXPORT_SYMBOL(vxpocket_event); EXPORT_SYMBOL(snd_vxpocket_detach); _