static int __init init_dldwd_cs(void) { servinfo_t serv; init_hermes(); init_dldwd(); TRACE_ENTER("dldwd"); printk(KERN_DEBUG "%s\n", version); CardServices(GetCardServicesInfo, &serv); if (serv.Revision != CS_RELEASE_CODE) { printk(KERN_NOTICE "orinoco_cs: Card Services release " "does not match!\n"); return -1; } register_pccard_driver(&dev_info, &dldwd_cs_attach, &dldwd_cs_detach); TRACE_EXIT("dldwd"); return 0; }
static int __init prism2cs_init(void) { #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,68)) servinfo_t serv; #endif DBFENTER; WLAN_LOG_NOTICE("%s Loaded\n", version); WLAN_LOG_NOTICE("dev_info is: %s\n", dev_info); #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,68)) pcmcia_get_card_services_info(&serv); if ( serv.Revision != CS_RELEASE_CODE ) { printk(KERN_NOTICE"%s: CardServices release does not match!\n", dev_info); return -1; } /* This call will result in a call to prism2sta_attach */ /* and eventually prism2sta_detach */ register_pccard_driver( &dev_info, &prism2sta_attach, &prism2sta_detach); #else pcmcia_register_driver(&prism2_cs_driver); #endif DBFEXIT; return 0; }
static int __init avmcs_init(void) { servinfo_t serv; CardServices(GetCardServicesInfo, &serv); if (serv.Revision != CS_RELEASE_CODE) { printk(KERN_NOTICE "avm_cs: Card Services release " "does not match!\n"); return -1; } register_pccard_driver(&dev_info, &avmcs_attach, &avmcs_detach); return 0; }
static int __init init_elsa_cs(void) { servinfo_t serv; DEBUG(0, "%s\n", version); CardServices(GetCardServicesInfo, &serv); if (serv.Revision != CS_RELEASE_CODE) { printk(KERN_NOTICE "elsa_cs: Card Services release " "does not match!\n"); return -1; } register_pccard_driver(&dev_info, &elsa_cs_attach, &elsa_cs_detach); return 0; }
static int __init init_prism2_pccard(void) { servinfo_t serv; printk(KERN_INFO "%s: %s\n", dev_info, version); CardServices(GetCardServicesInfo, &serv); if (serv.Revision != CS_RELEASE_CODE) { printk(KERN_NOTICE "%s: CardServices release does not match!\n", dev_info); return -1; } register_pccard_driver(&dev_info, &prism2_attach, &prism2_detach); return 0; }
int __init init_bluecard_cs(void) { servinfo_t serv; int err; CardServices(GetCardServicesInfo, &serv); if (serv.Revision != CS_RELEASE_CODE) { printk(KERN_NOTICE "bluecard_cs: Card Services release does not match!\n"); return -1; } err = register_pccard_driver(&dev_info, &bluecard_attach, &bluecard_detach); return err; }
//**************************************************************************** // fill struct pcmcia_driver and register it static int pccard_init(void) { DPRINTK(KERN_DEBUG "%s: pccard_init()\n", DEVICE_NAME); #ifdef LINUX_24 register_pccard_driver(&pccard_info, &pccard_attach, &pccard_detach); return 0; #else memset (&pcan_drv.pccarddrv, 0, sizeof(pcan_drv.pccarddrv)); pcan_drv.pccarddrv.owner = THIS_MODULE; pcan_drv.pccarddrv.drv.name = DEVICE_NAME; #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) pcan_drv.pccarddrv.attach = pccard_attach; pcan_drv.pccarddrv.detach = pccard_detach; #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) pcan_drv.pccarddrv.id_table = pccard_id_table; pcan_drv.pccarddrv.event = pccard_event; pcan_drv.pccarddrv.attach = pccard_attach; pcan_drv.pccarddrv.detach = pccard_detach; #endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) pcan_drv.pccarddrv.id_table = pccard_id_table; pcan_drv.pccarddrv.probe = pccard_probe; pcan_drv.pccarddrv.remove = pccard_detach; pcan_drv.pccarddrv.suspend = pccard_suspend; pcan_drv.pccarddrv.resume = pccard_resume; #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37) /* this version sets pccarddrv->drv.name with pccarddrv.name => */ /* it must be a valid pointer too */ pcan_drv.pccarddrv.name = DEVICE_NAME; #endif #endif return pcmcia_register_driver(&pcan_drv.pccarddrv); #endif }