X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fwireless%2Fray_cs.c;h=1268bf792fa411fb194007bbbd8ec7490a7bcb90;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=1bb0ada59de86f025358bed2811d776fa191336a;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c index 1bb0ada59..1268bf792 100644 --- a/drivers/net/wireless/ray_cs.c +++ b/drivers/net/wireless/ray_cs.c @@ -84,7 +84,7 @@ typedef u_char mac_addr[ETH_ALEN]; /* Hardware address */ #ifdef PCMCIA_DEBUG static int ray_debug; static int pc_debug = PCMCIA_DEBUG; -MODULE_PARM(pc_debug, "i"); +module_param(pc_debug, int, 0); /* #define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args); */ #define DEBUG(n, args...) if (pc_debug>(n)) printk(args); #else @@ -155,15 +155,8 @@ static void join_net(u_long local); static void start_net(u_long local); /* void start_net(ray_dev_t *local); */ -/* Create symbol table for registering with kernel in init_module */ -EXPORT_SYMBOL(ray_dev_ioctl); -EXPORT_SYMBOL(ray_rx); - /*===========================================================================*/ /* Parameters that can be set with 'insmod' */ -/* Bit map of interrupts to choose from */ -/* This means pick from 15, 14, 12, 11, 10, 9, 7, 5, 4, and 3 */ -static u_long irq_mask = 0xdeb8; /* ADHOC=0, Infrastructure=1 */ static int net_type = ADHOC; @@ -226,18 +219,17 @@ MODULE_AUTHOR("Corey Thomas "); MODULE_DESCRIPTION("Raylink/WebGear wireless LAN driver"); MODULE_LICENSE("GPL"); -MODULE_PARM(irq_mask,"i"); -MODULE_PARM(net_type,"i"); -MODULE_PARM(hop_dwell,"i"); -MODULE_PARM(beacon_period,"i"); -MODULE_PARM(psm,"i"); -MODULE_PARM(essid,"s"); -MODULE_PARM(translate,"i"); -MODULE_PARM(country,"i"); -MODULE_PARM(sniffer,"i"); -MODULE_PARM(bc,"i"); -MODULE_PARM(phy_addr,"s"); -MODULE_PARM(ray_mem_speed, "i"); +module_param(net_type, int, 0); +module_param(hop_dwell, int, 0); +module_param(beacon_period, int, 0); +module_param(psm, int, 0); +module_param(essid, charp, 0); +module_param(translate, int, 0); +module_param(country, int, 0); +module_param(sniffer, int, 0); +module_param(bc, int, 0); +module_param(phy_addr, charp, 0); +module_param(ray_mem_speed, int, 0); static UCHAR b5_default_startup_parms[] = { 0, 0, /* Adhoc station */ @@ -358,8 +350,7 @@ static dev_link_t *ray_attach(void) /* Interrupt setup. For PCMCIA, driver takes what's given */ link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; - link->irq.IRQInfo1 = IRQ_INFO2_VALID | IRQ_LEVEL_ID; - link->irq.IRQInfo2 = irq_mask; + link->irq.IRQInfo1 = IRQ_LEVEL_ID; link->irq.Handler = &ray_interrupt; /* General socket configuration */ @@ -402,7 +393,6 @@ static dev_link_t *ray_attach(void) link->next = dev_list; dev_list = link; client_reg.dev_info = &dev_info; - 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 | @@ -568,6 +558,7 @@ static void ray_config(dev_link_t *link) return; } + SET_NETDEV_DEV(dev, &handle_to_dev(handle)); i = register_netdev(dev); if (i != 0) { printk("ray_config register_netdev() failed\n"); @@ -2956,8 +2947,7 @@ static void __exit exit_ray_cs(void) #endif pcmcia_unregister_driver(&ray_driver); - while (dev_list != NULL) - ray_detach(dev_list); + BUG_ON(dev_list != NULL); } /* exit_ray_cs */ module_init(init_ray_cs);