diff options
Diffstat (limited to 'drivers/net/wireless/ray_cs.c')
| -rw-r--r-- | drivers/net/wireless/ray_cs.c | 395 | 
1 files changed, 192 insertions, 203 deletions
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c index 88cd58eb3b9..88e1e4e32b2 100644 --- a/drivers/net/wireless/ray_cs.c +++ b/drivers/net/wireless/ray_cs.c @@ -71,25 +71,7 @@ typedef u_char mac_addr[ETH_ALEN];	/* Hardware address */  #include "rayctl.h"  #include "ray_cs.h" -/* All the PCMCIA modules use PCMCIA_DEBUG to control debugging.  If -   you do not define PCMCIA_DEBUG at all, all the debug code will be -   left out.  If you compile with PCMCIA_DEBUG=0, the debug code will -   be present but disabled -- but it can then be enabled for specific -   modules at load time with a 'pc_debug=#' option to insmod. -*/ -#ifdef RAYLINK_DEBUG -#define PCMCIA_DEBUG RAYLINK_DEBUG -#endif -#ifdef PCMCIA_DEBUG -static int ray_debug; -static int pc_debug = PCMCIA_DEBUG; -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 -#define DEBUG(n, args...) -#endif  /** Prototypes based on PCMCIA skeleton driver *******************************/  static int ray_config(struct pcmcia_device *link);  static void ray_release(struct pcmcia_device *link); @@ -325,7 +307,7 @@ static int ray_probe(struct pcmcia_device *p_dev)  	ray_dev_t *local;  	struct net_device *dev; -	DEBUG(1, "ray_attach()\n"); +	dev_dbg(&p_dev->dev, "ray_attach()\n");  	/* Allocate space for private device-specific data */  	dev = alloc_etherdev(sizeof(ray_dev_t)); @@ -341,8 +323,7 @@ static int ray_probe(struct pcmcia_device *p_dev)  	p_dev->io.IOAddrLines = 5;  	/* Interrupt setup. For PCMCIA, driver takes what's given */ -	p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT; -	p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID; +	p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;  	p_dev->irq.Handler = &ray_interrupt;  	/* General socket configuration */ @@ -351,13 +332,12 @@ static int ray_probe(struct pcmcia_device *p_dev)  	p_dev->conf.ConfigIndex = 1;  	p_dev->priv = dev; -	p_dev->irq.Instance = dev;  	local->finder = p_dev;  	local->card_status = CARD_INSERTED;  	local->authentication_state = UNAUTHENTICATED;  	local->num_multi = 0; -	DEBUG(2, "ray_attach p_dev = %p,  dev = %p,  local = %p, intr = %p\n", +	dev_dbg(&p_dev->dev, "ray_attach p_dev = %p,  dev = %p,  local = %p, intr = %p\n",  	      p_dev, dev, local, &ray_interrupt);  	/* Raylink entries in the device structure */ @@ -370,7 +350,7 @@ static int ray_probe(struct pcmcia_device *p_dev)  #endif /* WIRELESS_SPY */ -	DEBUG(2, "ray_cs ray_attach calling ether_setup.)\n"); +	dev_dbg(&p_dev->dev, "ray_cs ray_attach calling ether_setup.)\n");  	netif_stop_queue(dev);  	init_timer(&local->timer); @@ -393,7 +373,7 @@ static void ray_detach(struct pcmcia_device *link)  	struct net_device *dev;  	ray_dev_t *local; -	DEBUG(1, "ray_detach(0x%p)\n", link); +	dev_dbg(&link->dev, "ray_detach\n");  	this_device = NULL;  	dev = link->priv; @@ -408,7 +388,7 @@ static void ray_detach(struct pcmcia_device *link)  			unregister_netdev(dev);  		free_netdev(dev);  	} -	DEBUG(2, "ray_cs ray_detach ending\n"); +	dev_dbg(&link->dev, "ray_cs ray_detach ending\n");  } /* ray_detach */  /*============================================================================= @@ -416,19 +396,17 @@ static void ray_detach(struct pcmcia_device *link)      is received, to configure the PCMCIA socket, and to make the      ethernet device available to the system.  =============================================================================*/ -#define CS_CHECK(fn, ret) \ -do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)  #define MAX_TUPLE_SIZE 128  static int ray_config(struct pcmcia_device *link)  { -	int last_fn = 0, last_ret = 0; +	int ret = 0;  	int i;  	win_req_t req;  	memreq_t mem;  	struct net_device *dev = (struct net_device *)link->priv;  	ray_dev_t *local = netdev_priv(dev); -	DEBUG(1, "ray_config(0x%p)\n", link); +	dev_dbg(&link->dev, "ray_config\n");  	/* Determine card type and firmware version */  	printk(KERN_INFO "ray_cs Detected: %s%s%s%s\n", @@ -440,14 +418,17 @@ static int ray_config(struct pcmcia_device *link)  	/* Now allocate an interrupt line.  Note that this does not  	   actually assign a handler to the interrupt.  	 */ -	CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); +	ret = pcmcia_request_irq(link, &link->irq); +	if (ret) +		goto failed;  	dev->irq = link->irq.AssignedIRQ;  	/* This actually configures the PCMCIA socket -- setting up  	   the I/O windows and the interrupt mapping.  	 */ -	CS_CHECK(RequestConfiguration, -		 pcmcia_request_configuration(link, &link->conf)); +	ret = pcmcia_request_configuration(link, &link->conf); +	if (ret) +		goto failed;  /*** Set up 32k window for shared memory (transmit and control) ************/  	req.Attributes = @@ -455,10 +436,14 @@ static int ray_config(struct pcmcia_device *link)  	req.Base = 0;  	req.Size = 0x8000;  	req.AccessSpeed = ray_mem_speed; -	CS_CHECK(RequestWindow, pcmcia_request_window(&link, &req, &link->win)); +	ret = pcmcia_request_window(link, &req, &link->win); +	if (ret) +		goto failed;  	mem.CardOffset = 0x0000;  	mem.Page = 0; -	CS_CHECK(MapMemPage, pcmcia_map_mem_page(link->win, &mem)); +	ret = pcmcia_map_mem_page(link, link->win, &mem); +	if (ret) +		goto failed;  	local->sram = ioremap(req.Base, req.Size);  /*** Set up 16k window for shared memory (receive buffer) ***************/ @@ -467,11 +452,14 @@ static int ray_config(struct pcmcia_device *link)  	req.Base = 0;  	req.Size = 0x4000;  	req.AccessSpeed = ray_mem_speed; -	CS_CHECK(RequestWindow, -		 pcmcia_request_window(&link, &req, &local->rmem_handle)); +	ret = pcmcia_request_window(link, &req, &local->rmem_handle); +	if (ret) +		goto failed;  	mem.CardOffset = 0x8000;  	mem.Page = 0; -	CS_CHECK(MapMemPage, pcmcia_map_mem_page(local->rmem_handle, &mem)); +	ret = pcmcia_map_mem_page(link, local->rmem_handle, &mem); +	if (ret) +		goto failed;  	local->rmem = ioremap(req.Base, req.Size);  /*** Set up window for attribute memory ***********************************/ @@ -480,22 +468,25 @@ static int ray_config(struct pcmcia_device *link)  	req.Base = 0;  	req.Size = 0x1000;  	req.AccessSpeed = ray_mem_speed; -	CS_CHECK(RequestWindow, -		 pcmcia_request_window(&link, &req, &local->amem_handle)); +	ret = pcmcia_request_window(link, &req, &local->amem_handle); +	if (ret) +		goto failed;  	mem.CardOffset = 0x0000;  	mem.Page = 0; -	CS_CHECK(MapMemPage, pcmcia_map_mem_page(local->amem_handle, &mem)); +	ret = pcmcia_map_mem_page(link, local->amem_handle, &mem); +	if (ret) +		goto failed;  	local->amem = ioremap(req.Base, req.Size); -	DEBUG(3, "ray_config sram=%p\n", local->sram); -	DEBUG(3, "ray_config rmem=%p\n", local->rmem); -	DEBUG(3, "ray_config amem=%p\n", local->amem); +	dev_dbg(&link->dev, "ray_config sram=%p\n", local->sram); +	dev_dbg(&link->dev, "ray_config rmem=%p\n", local->rmem); +	dev_dbg(&link->dev, "ray_config amem=%p\n", local->amem);  	if (ray_init(dev) < 0) {  		ray_release(link);  		return -ENODEV;  	} -	SET_NETDEV_DEV(dev, &handle_to_dev(link)); +	SET_NETDEV_DEV(dev, &link->dev);  	i = register_netdev(dev);  	if (i != 0) {  		printk("ray_config register_netdev() failed\n"); @@ -511,9 +502,7 @@ static int ray_config(struct pcmcia_device *link)  	return 0; -cs_failed: -	cs_error(link, last_fn, last_ret); - +failed:  	ray_release(link);  	return -ENODEV;  } /* ray_config */ @@ -543,9 +532,9 @@ static int ray_init(struct net_device *dev)  	struct ccs __iomem *pccs;  	ray_dev_t *local = netdev_priv(dev);  	struct pcmcia_device *link = local->finder; -	DEBUG(1, "ray_init(0x%p)\n", dev); +	dev_dbg(&link->dev, "ray_init(0x%p)\n", dev);  	if (!(pcmcia_dev_present(link))) { -		DEBUG(0, "ray_init - device not present\n"); +		dev_dbg(&link->dev, "ray_init - device not present\n");  		return -1;  	} @@ -567,13 +556,13 @@ static int ray_init(struct net_device *dev)  	local->fw_ver = local->startup_res.firmware_version[0];  	local->fw_bld = local->startup_res.firmware_version[1];  	local->fw_var = local->startup_res.firmware_version[2]; -	DEBUG(1, "ray_init firmware version %d.%d \n", local->fw_ver, +	dev_dbg(&link->dev, "ray_init firmware version %d.%d \n", local->fw_ver,  	      local->fw_bld);  	local->tib_length = 0x20;  	if ((local->fw_ver == 5) && (local->fw_bld >= 30))  		local->tib_length = local->startup_res.tib_length; -	DEBUG(2, "ray_init tib_length = 0x%02x\n", local->tib_length); +	dev_dbg(&link->dev, "ray_init tib_length = 0x%02x\n", local->tib_length);  	/* Initialize CCS's to buffer free state */  	pccs = ccs_base(local);  	for (i = 0; i < NUMBER_OF_CCS; i++) { @@ -592,7 +581,7 @@ static int ray_init(struct net_device *dev)  	clear_interrupt(local);	/* Clear any interrupt from the card */  	local->card_status = CARD_AWAITING_PARAM; -	DEBUG(2, "ray_init ending\n"); +	dev_dbg(&link->dev, "ray_init ending\n");  	return 0;  } /* ray_init */ @@ -605,9 +594,9 @@ static int dl_startup_params(struct net_device *dev)  	struct ccs __iomem *pccs;  	struct pcmcia_device *link = local->finder; -	DEBUG(1, "dl_startup_params entered\n"); +	dev_dbg(&link->dev, "dl_startup_params entered\n");  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs dl_startup_params - device not present\n"); +		dev_dbg(&link->dev, "ray_cs dl_startup_params - device not present\n");  		return -1;  	} @@ -625,7 +614,7 @@ static int dl_startup_params(struct net_device *dev)  	local->dl_param_ccs = ccsindex;  	pccs = ccs_base(local) + ccsindex;  	writeb(CCS_DOWNLOAD_STARTUP_PARAMS, &pccs->cmd); -	DEBUG(2, "dl_startup_params start ccsindex = %d\n", +	dev_dbg(&link->dev, "dl_startup_params start ccsindex = %d\n",  	      local->dl_param_ccs);  	/* Interrupt the firmware to process the command */  	if (interrupt_ecf(local, ccsindex)) { @@ -641,7 +630,7 @@ static int dl_startup_params(struct net_device *dev)  	local->timer.data = (long)local;  	local->timer.function = &verify_dl_startup;  	add_timer(&local->timer); -	DEBUG(2, +	dev_dbg(&link->dev,  	      "ray_cs dl_startup_params started timer for verify_dl_startup\n");  	return 0;  } /* dl_startup_params */ @@ -717,11 +706,11 @@ static void verify_dl_startup(u_long data)  	struct pcmcia_device *link = local->finder;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs verify_dl_startup - device not present\n"); +		dev_dbg(&link->dev, "ray_cs verify_dl_startup - device not present\n");  		return;  	} -#ifdef PCMCIA_DEBUG -	if (pc_debug > 2) { +#if 0 +	{  		int i;  		printk(KERN_DEBUG  		       "verify_dl_startup parameters sent via ccs %d:\n", @@ -760,7 +749,7 @@ static void start_net(u_long data)  	int ccsindex;  	struct pcmcia_device *link = local->finder;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs start_net - device not present\n"); +		dev_dbg(&link->dev, "ray_cs start_net - device not present\n");  		return;  	}  	/* Fill in the CCS fields for the ECF */ @@ -771,7 +760,7 @@ static void start_net(u_long data)  	writeb(0, &pccs->var.start_network.update_param);  	/* Interrupt the firmware to process the command */  	if (interrupt_ecf(local, ccsindex)) { -		DEBUG(1, "ray start net failed - card not ready for intr\n"); +		dev_dbg(&link->dev, "ray start net failed - card not ready for intr\n");  		writeb(CCS_BUFFER_FREE, &(pccs++)->buffer_status);  		return;  	} @@ -790,7 +779,7 @@ static void join_net(u_long data)  	struct pcmcia_device *link = local->finder;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs join_net - device not present\n"); +		dev_dbg(&link->dev, "ray_cs join_net - device not present\n");  		return;  	}  	/* Fill in the CCS fields for the ECF */ @@ -802,7 +791,7 @@ static void join_net(u_long data)  	writeb(0, &pccs->var.join_network.net_initiated);  	/* Interrupt the firmware to process the command */  	if (interrupt_ecf(local, ccsindex)) { -		DEBUG(1, "ray join net failed - card not ready for intr\n"); +		dev_dbg(&link->dev, "ray join net failed - card not ready for intr\n");  		writeb(CCS_BUFFER_FREE, &(pccs++)->buffer_status);  		return;  	} @@ -821,7 +810,7 @@ static void ray_release(struct pcmcia_device *link)  	ray_dev_t *local = netdev_priv(dev);  	int i; -	DEBUG(1, "ray_release(0x%p)\n", link); +	dev_dbg(&link->dev, "ray_release\n");  	del_timer(&local->timer); @@ -829,15 +818,15 @@ static void ray_release(struct pcmcia_device *link)  	iounmap(local->rmem);  	iounmap(local->amem);  	/* Do bother checking to see if these succeed or not */ -	i = pcmcia_release_window(local->amem_handle); +	i = pcmcia_release_window(link, local->amem_handle);  	if (i != 0) -		DEBUG(0, "ReleaseWindow(local->amem) ret = %x\n", i); -	i = pcmcia_release_window(local->rmem_handle); +		dev_dbg(&link->dev, "ReleaseWindow(local->amem) ret = %x\n", i); +	i = pcmcia_release_window(link, local->rmem_handle);  	if (i != 0) -		DEBUG(0, "ReleaseWindow(local->rmem) ret = %x\n", i); +		dev_dbg(&link->dev, "ReleaseWindow(local->rmem) ret = %x\n", i);  	pcmcia_disable_device(link); -	DEBUG(2, "ray_release ending\n"); +	dev_dbg(&link->dev, "ray_release ending\n");  }  static int ray_suspend(struct pcmcia_device *link) @@ -871,9 +860,9 @@ static int ray_dev_init(struct net_device *dev)  	ray_dev_t *local = netdev_priv(dev);  	struct pcmcia_device *link = local->finder; -	DEBUG(1, "ray_dev_init(dev=%p)\n", dev); +	dev_dbg(&link->dev, "ray_dev_init(dev=%p)\n", dev);  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_dev_init - device not present\n"); +		dev_dbg(&link->dev, "ray_dev_init - device not present\n");  		return -1;  	}  #ifdef RAY_IMMEDIATE_INIT @@ -887,7 +876,7 @@ static int ray_dev_init(struct net_device *dev)  	/* Postpone the card init so that we can still configure the card,  	 * for example using the Wireless Extensions. The init will happen  	 * in ray_open() - Jean II */ -	DEBUG(1, +	dev_dbg(&link->dev,  	      "ray_dev_init: postponing card init to ray_open() ; Status = %d\n",  	      local->card_status);  #endif /* RAY_IMMEDIATE_INIT */ @@ -896,7 +885,7 @@ static int ray_dev_init(struct net_device *dev)  	memcpy(dev->dev_addr, &local->sparm.b4.a_mac_addr, ADDRLEN);  	memset(dev->broadcast, 0xff, ETH_ALEN); -	DEBUG(2, "ray_dev_init ending\n"); +	dev_dbg(&link->dev, "ray_dev_init ending\n");  	return 0;  } @@ -906,9 +895,9 @@ static int ray_dev_config(struct net_device *dev, struct ifmap *map)  	ray_dev_t *local = netdev_priv(dev);  	struct pcmcia_device *link = local->finder;  	/* Dummy routine to satisfy device structure */ -	DEBUG(1, "ray_dev_config(dev=%p,ifmap=%p)\n", dev, map); +	dev_dbg(&link->dev, "ray_dev_config(dev=%p,ifmap=%p)\n", dev, map);  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_dev_config - device not present\n"); +		dev_dbg(&link->dev, "ray_dev_config - device not present\n");  		return -1;  	} @@ -924,14 +913,14 @@ static netdev_tx_t ray_dev_start_xmit(struct sk_buff *skb,  	short length = skb->len;  	if (!pcmcia_dev_present(link)) { -		DEBUG(2, "ray_dev_start_xmit - device not present\n"); +		dev_dbg(&link->dev, "ray_dev_start_xmit - device not present\n");  		dev_kfree_skb(skb);  		return NETDEV_TX_OK;  	} -	DEBUG(3, "ray_dev_start_xmit(skb=%p, dev=%p)\n", skb, dev); +	dev_dbg(&link->dev, "ray_dev_start_xmit(skb=%p, dev=%p)\n", skb, dev);  	if (local->authentication_state == NEED_TO_AUTH) { -		DEBUG(0, "ray_cs Sending authentication request.\n"); +		dev_dbg(&link->dev, "ray_cs Sending authentication request.\n");  		if (!build_auth_frame(local, local->auth_id, OPEN_AUTH_REQUEST)) {  			local->authentication_state = AUTHENTICATED;  			netif_stop_queue(dev); @@ -971,7 +960,7 @@ static int ray_hw_xmit(unsigned char *data, int len, struct net_device *dev,  	struct tx_msg __iomem *ptx;	/* Address of xmit buffer in PC space */  	short int addr;		/* Address of xmit buffer in card space */ -	DEBUG(3, "ray_hw_xmit(data=%p, len=%d, dev=%p)\n", data, len, dev); +	pr_debug("ray_hw_xmit(data=%p, len=%d, dev=%p)\n", data, len, dev);  	if (len + TX_HEADER_LENGTH > TX_BUF_SIZE) {  		printk(KERN_INFO "ray_hw_xmit packet too large: %d bytes\n",  		       len); @@ -979,9 +968,9 @@ static int ray_hw_xmit(unsigned char *data, int len, struct net_device *dev,  	}  	switch (ccsindex = get_free_tx_ccs(local)) {  	case ECCSBUSY: -		DEBUG(2, "ray_hw_xmit tx_ccs table busy\n"); +		pr_debug("ray_hw_xmit tx_ccs table busy\n");  	case ECCSFULL: -		DEBUG(2, "ray_hw_xmit No free tx ccs\n"); +		pr_debug("ray_hw_xmit No free tx ccs\n");  	case ECARDGONE:  		netif_stop_queue(dev);  		return XMIT_NO_CCS; @@ -1018,12 +1007,12 @@ static int ray_hw_xmit(unsigned char *data, int len, struct net_device *dev,  	writeb(PSM_CAM, &pccs->var.tx_request.pow_sav_mode);  	writeb(local->net_default_tx_rate, &pccs->var.tx_request.tx_rate);  	writeb(0, &pccs->var.tx_request.antenna); -	DEBUG(3, "ray_hw_xmit default_tx_rate = 0x%x\n", +	pr_debug("ray_hw_xmit default_tx_rate = 0x%x\n",  	      local->net_default_tx_rate);  	/* Interrupt the firmware to process the command */  	if (interrupt_ecf(local, ccsindex)) { -		DEBUG(2, "ray_hw_xmit failed - ECF not ready for intr\n"); +		pr_debug("ray_hw_xmit failed - ECF not ready for intr\n");  /* TBD very inefficient to copy packet to buffer, and then not     send it, but the alternative is to queue the messages and that     won't be done for a while.  Maybe set tbusy until a CCS is free? @@ -1040,7 +1029,7 @@ static int translate_frame(ray_dev_t *local, struct tx_msg __iomem *ptx,  {  	__be16 proto = ((struct ethhdr *)data)->h_proto;  	if (ntohs(proto) >= 1536) { /* DIX II ethernet frame */ -		DEBUG(3, "ray_cs translate_frame DIX II\n"); +		pr_debug("ray_cs translate_frame DIX II\n");  		/* Copy LLC header to card buffer */  		memcpy_toio(&ptx->var, eth2_llc, sizeof(eth2_llc));  		memcpy_toio(((void __iomem *)&ptx->var) + sizeof(eth2_llc), @@ -1056,9 +1045,9 @@ static int translate_frame(ray_dev_t *local, struct tx_msg __iomem *ptx,  			    len - ETH_HLEN);  		return (int)sizeof(struct snaphdr_t) - ETH_HLEN;  	} else { /* already  802 type, and proto is length */ -		DEBUG(3, "ray_cs translate_frame 802\n"); +		pr_debug("ray_cs translate_frame 802\n");  		if (proto == htons(0xffff)) { /* evil netware IPX 802.3 without LLC */ -			DEBUG(3, "ray_cs translate_frame evil IPX\n"); +			pr_debug("ray_cs translate_frame evil IPX\n");  			memcpy_toio(&ptx->var, data + ETH_HLEN, len - ETH_HLEN);  			return 0 - ETH_HLEN;  		} @@ -1603,7 +1592,7 @@ static int ray_open(struct net_device *dev)  	struct pcmcia_device *link;  	link = local->finder; -	DEBUG(1, "ray_open('%s')\n", dev->name); +	dev_dbg(&link->dev, "ray_open('%s')\n", dev->name);  	if (link->open == 0)  		local->num_multi = 0; @@ -1613,7 +1602,7 @@ static int ray_open(struct net_device *dev)  	if (local->card_status == CARD_AWAITING_PARAM) {  		int i; -		DEBUG(1, "ray_open: doing init now !\n"); +		dev_dbg(&link->dev, "ray_open: doing init now !\n");  		/* Download startup parameters */  		if ((i = dl_startup_params(dev)) < 0) { @@ -1629,7 +1618,7 @@ static int ray_open(struct net_device *dev)  	else  		netif_start_queue(dev); -	DEBUG(2, "ray_open ending\n"); +	dev_dbg(&link->dev, "ray_open ending\n");  	return 0;  } /* end ray_open */ @@ -1640,7 +1629,7 @@ static int ray_dev_close(struct net_device *dev)  	struct pcmcia_device *link;  	link = local->finder; -	DEBUG(1, "ray_dev_close('%s')\n", dev->name); +	dev_dbg(&link->dev, "ray_dev_close('%s')\n", dev->name);  	link->open--;  	netif_stop_queue(dev); @@ -1656,7 +1645,7 @@ static int ray_dev_close(struct net_device *dev)  /*===========================================================================*/  static void ray_reset(struct net_device *dev)  { -	DEBUG(1, "ray_reset entered\n"); +	pr_debug("ray_reset entered\n");  	return;  } @@ -1669,17 +1658,17 @@ static int interrupt_ecf(ray_dev_t *local, int ccs)  	struct pcmcia_device *link = local->finder;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs interrupt_ecf - device not present\n"); +		dev_dbg(&link->dev, "ray_cs interrupt_ecf - device not present\n");  		return -1;  	} -	DEBUG(2, "interrupt_ecf(local=%p, ccs = 0x%x\n", local, ccs); +	dev_dbg(&link->dev, "interrupt_ecf(local=%p, ccs = 0x%x\n", local, ccs);  	while (i &&  	       (readb(local->amem + CIS_OFFSET + ECF_INTR_OFFSET) &  		ECF_INTR_SET))  		i--;  	if (i == 0) { -		DEBUG(2, "ray_cs interrupt_ecf card not ready for interrupt\n"); +		dev_dbg(&link->dev, "ray_cs interrupt_ecf card not ready for interrupt\n");  		return -1;  	}  	/* Fill the mailbox, then kick the card */ @@ -1698,12 +1687,12 @@ static int get_free_tx_ccs(ray_dev_t *local)  	struct pcmcia_device *link = local->finder;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs get_free_tx_ccs - device not present\n"); +		dev_dbg(&link->dev, "ray_cs get_free_tx_ccs - device not present\n");  		return ECARDGONE;  	}  	if (test_and_set_bit(0, &local->tx_ccs_lock)) { -		DEBUG(1, "ray_cs tx_ccs_lock busy\n"); +		dev_dbg(&link->dev, "ray_cs tx_ccs_lock busy\n");  		return ECCSBUSY;  	} @@ -1716,7 +1705,7 @@ static int get_free_tx_ccs(ray_dev_t *local)  		}  	}  	local->tx_ccs_lock = 0; -	DEBUG(2, "ray_cs ERROR no free tx CCS for raylink card\n"); +	dev_dbg(&link->dev, "ray_cs ERROR no free tx CCS for raylink card\n");  	return ECCSFULL;  } /* get_free_tx_ccs */ @@ -1730,11 +1719,11 @@ static int get_free_ccs(ray_dev_t *local)  	struct pcmcia_device *link = local->finder;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs get_free_ccs - device not present\n"); +		dev_dbg(&link->dev, "ray_cs get_free_ccs - device not present\n");  		return ECARDGONE;  	}  	if (test_and_set_bit(0, &local->ccs_lock)) { -		DEBUG(1, "ray_cs ccs_lock busy\n"); +		dev_dbg(&link->dev, "ray_cs ccs_lock busy\n");  		return ECCSBUSY;  	} @@ -1747,7 +1736,7 @@ static int get_free_ccs(ray_dev_t *local)  		}  	}  	local->ccs_lock = 0; -	DEBUG(1, "ray_cs ERROR no free CCS for raylink card\n"); +	dev_dbg(&link->dev, "ray_cs ERROR no free CCS for raylink card\n");  	return ECCSFULL;  } /* get_free_ccs */ @@ -1823,7 +1812,7 @@ static struct net_device_stats *ray_get_stats(struct net_device *dev)  	struct pcmcia_device *link = local->finder;  	struct status __iomem *p = local->sram + STATUS_BASE;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs net_device_stats - device not present\n"); +		dev_dbg(&link->dev, "ray_cs net_device_stats - device not present\n");  		return &local->stats;  	}  	if (readb(&p->mrx_overflow_for_host)) { @@ -1856,12 +1845,12 @@ static void ray_update_parm(struct net_device *dev, UCHAR objid, UCHAR *value,  	struct ccs __iomem *pccs;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_update_parm - device not present\n"); +		dev_dbg(&link->dev, "ray_update_parm - device not present\n");  		return;  	}  	if ((ccsindex = get_free_ccs(local)) < 0) { -		DEBUG(0, "ray_update_parm - No free ccs\n"); +		dev_dbg(&link->dev, "ray_update_parm - No free ccs\n");  		return;  	}  	pccs = ccs_base(local) + ccsindex; @@ -1874,7 +1863,7 @@ static void ray_update_parm(struct net_device *dev, UCHAR objid, UCHAR *value,  	}  	/* Interrupt the firmware to process the command */  	if (interrupt_ecf(local, ccsindex)) { -		DEBUG(0, "ray_cs associate failed - ECF not ready for intr\n"); +		dev_dbg(&link->dev, "ray_cs associate failed - ECF not ready for intr\n");  		writeb(CCS_BUFFER_FREE, &(pccs++)->buffer_status);  	}  } @@ -1891,12 +1880,12 @@ static void ray_update_multi_list(struct net_device *dev, int all)  	void __iomem *p = local->sram + HOST_TO_ECF_BASE;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_update_multi_list - device not present\n"); +		dev_dbg(&link->dev, "ray_update_multi_list - device not present\n");  		return;  	} else -		DEBUG(2, "ray_update_multi_list(%p)\n", dev); +		dev_dbg(&link->dev, "ray_update_multi_list(%p)\n", dev);  	if ((ccsindex = get_free_ccs(local)) < 0) { -		DEBUG(1, "ray_update_multi - No free ccs\n"); +		dev_dbg(&link->dev, "ray_update_multi - No free ccs\n");  		return;  	}  	pccs = ccs_base(local) + ccsindex; @@ -1910,7 +1899,7 @@ static void ray_update_multi_list(struct net_device *dev, int all)  		for (dmip = &dev->mc_list; (dmi = *dmip) != NULL;  		     dmip = &dmi->next) {  			memcpy_toio(p, dmi->dmi_addr, ETH_ALEN); -			DEBUG(1, +			dev_dbg(&link->dev,  			      "ray_update_multi add addr %02x%02x%02x%02x%02x%02x\n",  			      dmi->dmi_addr[0], dmi->dmi_addr[1],  			      dmi->dmi_addr[2], dmi->dmi_addr[3], @@ -1921,12 +1910,12 @@ static void ray_update_multi_list(struct net_device *dev, int all)  		if (i > 256 / ADDRLEN)  			i = 256 / ADDRLEN;  		writeb((UCHAR) i, &pccs->var); -		DEBUG(1, "ray_cs update_multi %d addresses in list\n", i); +		dev_dbg(&link->dev, "ray_cs update_multi %d addresses in list\n", i);  		/* Interrupt the firmware to process the command */  		local->num_multi = i;  	}  	if (interrupt_ecf(local, ccsindex)) { -		DEBUG(1, +		dev_dbg(&link->dev,  		      "ray_cs update_multi failed - ECF not ready for intr\n");  		writeb(CCS_BUFFER_FREE, &(pccs++)->buffer_status);  	} @@ -1938,11 +1927,11 @@ static void set_multicast_list(struct net_device *dev)  	ray_dev_t *local = netdev_priv(dev);  	UCHAR promisc; -	DEBUG(2, "ray_cs set_multicast_list(%p)\n", dev); +	pr_debug("ray_cs set_multicast_list(%p)\n", dev);  	if (dev->flags & IFF_PROMISC) {  		if (local->sparm.b5.a_promiscuous_mode == 0) { -			DEBUG(1, "ray_cs set_multicast_list promisc on\n"); +			pr_debug("ray_cs set_multicast_list promisc on\n");  			local->sparm.b5.a_promiscuous_mode = 1;  			promisc = 1;  			ray_update_parm(dev, OBJID_promiscuous_mode, @@ -1950,7 +1939,7 @@ static void set_multicast_list(struct net_device *dev)  		}  	} else {  		if (local->sparm.b5.a_promiscuous_mode == 1) { -			DEBUG(1, "ray_cs set_multicast_list promisc off\n"); +			pr_debug("ray_cs set_multicast_list promisc off\n");  			local->sparm.b5.a_promiscuous_mode = 0;  			promisc = 0;  			ray_update_parm(dev, OBJID_promiscuous_mode, @@ -1984,19 +1973,19 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  	if (dev == NULL)	/* Note that we want interrupts with dev->start == 0 */  		return IRQ_NONE; -	DEBUG(4, "ray_cs: interrupt for *dev=%p\n", dev); +	pr_debug("ray_cs: interrupt for *dev=%p\n", dev);  	local = netdev_priv(dev);  	link = (struct pcmcia_device *)local->finder;  	if (!pcmcia_dev_present(link)) { -		DEBUG(2, -		      "ray_cs interrupt from device not present or suspended.\n"); +		pr_debug( +			"ray_cs interrupt from device not present or suspended.\n");  		return IRQ_NONE;  	}  	rcsindex = readb(&((struct scb __iomem *)(local->sram))->rcs_index);  	if (rcsindex >= (NUMBER_OF_CCS + NUMBER_OF_RCS)) { -		DEBUG(1, "ray_cs interrupt bad rcsindex = 0x%x\n", rcsindex); +		dev_dbg(&link->dev, "ray_cs interrupt bad rcsindex = 0x%x\n", rcsindex);  		clear_interrupt(local);  		return IRQ_HANDLED;  	} @@ -2008,33 +1997,33 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  		case CCS_DOWNLOAD_STARTUP_PARAMS:	/* Happens in firmware someday */  			del_timer(&local->timer);  			if (status == CCS_COMMAND_COMPLETE) { -				DEBUG(1, +				dev_dbg(&link->dev,  				      "ray_cs interrupt download_startup_parameters OK\n");  			} else { -				DEBUG(1, +				dev_dbg(&link->dev,  				      "ray_cs interrupt download_startup_parameters fail\n");  			}  			break;  		case CCS_UPDATE_PARAMS: -			DEBUG(1, "ray_cs interrupt update params done\n"); +			dev_dbg(&link->dev, "ray_cs interrupt update params done\n");  			if (status != CCS_COMMAND_COMPLETE) {  				tmp =  				    readb(&pccs->var.update_param.  					  failure_cause); -				DEBUG(0, +				dev_dbg(&link->dev,  				      "ray_cs interrupt update params failed - reason %d\n",  				      tmp);  			}  			break;  		case CCS_REPORT_PARAMS: -			DEBUG(1, "ray_cs interrupt report params done\n"); +			dev_dbg(&link->dev, "ray_cs interrupt report params done\n");  			break;  		case CCS_UPDATE_MULTICAST_LIST:	/* Note that this CCS isn't returned */ -			DEBUG(1, +			dev_dbg(&link->dev,  			      "ray_cs interrupt CCS Update Multicast List done\n");  			break;  		case CCS_UPDATE_POWER_SAVINGS_MODE: -			DEBUG(1, +			dev_dbg(&link->dev,  			      "ray_cs interrupt update power save mode done\n");  			break;  		case CCS_START_NETWORK: @@ -2043,11 +2032,11 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  				if (readb  				    (&pccs->var.start_network.net_initiated) ==  				    1) { -					DEBUG(0, +					dev_dbg(&link->dev,  					      "ray_cs interrupt network \"%s\" started\n",  					      local->sparm.b4.a_current_ess_id);  				} else { -					DEBUG(0, +					dev_dbg(&link->dev,  					      "ray_cs interrupt network \"%s\" joined\n",  					      local->sparm.b4.a_current_ess_id);  				} @@ -2075,12 +2064,12 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  				local->timer.expires = jiffies + HZ * 5;  				local->timer.data = (long)local;  				if (status == CCS_START_NETWORK) { -					DEBUG(0, +					dev_dbg(&link->dev,  					      "ray_cs interrupt network \"%s\" start failed\n",  					      local->sparm.b4.a_current_ess_id);  					local->timer.function = &start_net;  				} else { -					DEBUG(0, +					dev_dbg(&link->dev,  					      "ray_cs interrupt network \"%s\" join failed\n",  					      local->sparm.b4.a_current_ess_id);  					local->timer.function = &join_net; @@ -2091,19 +2080,19 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  		case CCS_START_ASSOCIATION:  			if (status == CCS_COMMAND_COMPLETE) {  				local->card_status = CARD_ASSOC_COMPLETE; -				DEBUG(0, "ray_cs association successful\n"); +				dev_dbg(&link->dev, "ray_cs association successful\n");  			} else { -				DEBUG(0, "ray_cs association failed,\n"); +				dev_dbg(&link->dev, "ray_cs association failed,\n");  				local->card_status = CARD_ASSOC_FAILED;  				join_net((u_long) local);  			}  			break;  		case CCS_TX_REQUEST:  			if (status == CCS_COMMAND_COMPLETE) { -				DEBUG(3, +				dev_dbg(&link->dev,  				      "ray_cs interrupt tx request complete\n");  			} else { -				DEBUG(1, +				dev_dbg(&link->dev,  				      "ray_cs interrupt tx request failed\n");  			}  			if (!sniffer) @@ -2111,21 +2100,21 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  			netif_wake_queue(dev);  			break;  		case CCS_TEST_MEMORY: -			DEBUG(1, "ray_cs interrupt mem test done\n"); +			dev_dbg(&link->dev, "ray_cs interrupt mem test done\n");  			break;  		case CCS_SHUTDOWN: -			DEBUG(1, +			dev_dbg(&link->dev,  			      "ray_cs interrupt Unexpected CCS returned - Shutdown\n");  			break;  		case CCS_DUMP_MEMORY: -			DEBUG(1, "ray_cs interrupt dump memory done\n"); +			dev_dbg(&link->dev, "ray_cs interrupt dump memory done\n");  			break;  		case CCS_START_TIMER: -			DEBUG(2, +			dev_dbg(&link->dev,  			      "ray_cs interrupt DING - raylink timer expired\n");  			break;  		default: -			DEBUG(1, +			dev_dbg(&link->dev,  			      "ray_cs interrupt Unexpected CCS 0x%x returned 0x%x\n",  			      rcsindex, cmd);  		} @@ -2139,7 +2128,7 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  			ray_rx(dev, local, prcs);  			break;  		case REJOIN_NET_COMPLETE: -			DEBUG(1, "ray_cs interrupt rejoin net complete\n"); +			dev_dbg(&link->dev, "ray_cs interrupt rejoin net complete\n");  			local->card_status = CARD_ACQ_COMPLETE;  			/* do we need to clear tx buffers CCS's? */  			if (local->sparm.b4.a_network_type == ADHOC) { @@ -2149,7 +2138,7 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  				memcpy_fromio(&local->bss_id,  					      prcs->var.rejoin_net_complete.  					      bssid, ADDRLEN); -				DEBUG(1, +				dev_dbg(&link->dev,  				      "ray_cs new BSSID = %02x%02x%02x%02x%02x%02x\n",  				      local->bss_id[0], local->bss_id[1],  				      local->bss_id[2], local->bss_id[3], @@ -2159,15 +2148,15 @@ static irqreturn_t ray_interrupt(int irq, void *dev_id)  			}  			break;  		case ROAMING_INITIATED: -			DEBUG(1, "ray_cs interrupt roaming initiated\n"); +			dev_dbg(&link->dev, "ray_cs interrupt roaming initiated\n");  			netif_stop_queue(dev);  			local->card_status = CARD_DOING_ACQ;  			break;  		case JAPAN_CALL_SIGN_RXD: -			DEBUG(1, "ray_cs interrupt japan call sign rx\n"); +			dev_dbg(&link->dev, "ray_cs interrupt japan call sign rx\n");  			break;  		default: -			DEBUG(1, +			dev_dbg(&link->dev,  			      "ray_cs Unexpected interrupt for RCS 0x%x cmd = 0x%x\n",  			      rcsindex,  			      (unsigned int)readb(&prcs->interrupt_id)); @@ -2186,7 +2175,7 @@ static void ray_rx(struct net_device *dev, ray_dev_t *local,  	int rx_len;  	unsigned int pkt_addr;  	void __iomem *pmsg; -	DEBUG(4, "ray_rx process rx packet\n"); +	pr_debug("ray_rx process rx packet\n");  	/* Calculate address of packet within Rx buffer */  	pkt_addr = ((readb(&prcs->var.rx_packet.rx_data_ptr[0]) << 8) @@ -2199,28 +2188,28 @@ static void ray_rx(struct net_device *dev, ray_dev_t *local,  	pmsg = local->rmem + pkt_addr;  	switch (readb(pmsg)) {  	case DATA_TYPE: -		DEBUG(4, "ray_rx data type\n"); +		pr_debug("ray_rx data type\n");  		rx_data(dev, prcs, pkt_addr, rx_len);  		break;  	case AUTHENTIC_TYPE: -		DEBUG(4, "ray_rx authentic type\n"); +		pr_debug("ray_rx authentic type\n");  		if (sniffer)  			rx_data(dev, prcs, pkt_addr, rx_len);  		else  			rx_authenticate(local, prcs, pkt_addr, rx_len);  		break;  	case DEAUTHENTIC_TYPE: -		DEBUG(4, "ray_rx deauth type\n"); +		pr_debug("ray_rx deauth type\n");  		if (sniffer)  			rx_data(dev, prcs, pkt_addr, rx_len);  		else  			rx_deauthenticate(local, prcs, pkt_addr, rx_len);  		break;  	case NULL_MSG_TYPE: -		DEBUG(3, "ray_cs rx NULL msg\n"); +		pr_debug("ray_cs rx NULL msg\n");  		break;  	case BEACON_TYPE: -		DEBUG(4, "ray_rx beacon type\n"); +		pr_debug("ray_rx beacon type\n");  		if (sniffer)  			rx_data(dev, prcs, pkt_addr, rx_len); @@ -2233,7 +2222,7 @@ static void ray_rx(struct net_device *dev, ray_dev_t *local,  		ray_get_stats(dev);  		break;  	default: -		DEBUG(0, "ray_cs unknown pkt type %2x\n", +		pr_debug("ray_cs unknown pkt type %2x\n",  		      (unsigned int)readb(pmsg));  		break;  	} @@ -2262,7 +2251,7 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs,  			    rx_len >  			    (dev->mtu + RX_MAC_HEADER_LENGTH + ETH_HLEN +  			     FCS_LEN)) { -				DEBUG(0, +				pr_debug(  				      "ray_cs invalid packet length %d received \n",  				      rx_len);  				return; @@ -2273,17 +2262,17 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs,  			    rx_len >  			    (dev->mtu + RX_MAC_HEADER_LENGTH + ETH_HLEN +  			     FCS_LEN)) { -				DEBUG(0, +				pr_debug(  				      "ray_cs invalid packet length %d received \n",  				      rx_len);  				return;  			}  		}  	} -	DEBUG(4, "ray_cs rx_data packet\n"); +	pr_debug("ray_cs rx_data packet\n");  	/* If fragmented packet, verify sizes of fragments add up */  	if (readb(&prcs->var.rx_packet.next_frag_rcs_index) != 0xFF) { -		DEBUG(1, "ray_cs rx'ed fragment\n"); +		pr_debug("ray_cs rx'ed fragment\n");  		tmp = (readb(&prcs->var.rx_packet.totalpacketlength[0]) << 8)  		    + readb(&prcs->var.rx_packet.totalpacketlength[1]);  		total_len = tmp; @@ -2301,7 +2290,7 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs,  		} while (1);  		if (tmp < 0) { -			DEBUG(0, +			pr_debug(  			      "ray_cs rx_data fragment lengths don't add up\n");  			local->stats.rx_dropped++;  			release_frag_chain(local, prcs); @@ -2313,7 +2302,7 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs,  	skb = dev_alloc_skb(total_len + 5);  	if (skb == NULL) { -		DEBUG(0, "ray_cs rx_data could not allocate skb\n"); +		pr_debug("ray_cs rx_data could not allocate skb\n");  		local->stats.rx_dropped++;  		if (readb(&prcs->var.rx_packet.next_frag_rcs_index) != 0xFF)  			release_frag_chain(local, prcs); @@ -2321,7 +2310,7 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs,  	}  	skb_reserve(skb, 2);	/* Align IP on 16 byte (TBD check this) */ -	DEBUG(4, "ray_cs rx_data total_len = %x, rx_len = %x\n", total_len, +	pr_debug("ray_cs rx_data total_len = %x, rx_len = %x\n", total_len,  	      rx_len);  /************************/ @@ -2354,7 +2343,7 @@ static void rx_data(struct net_device *dev, struct rcs __iomem *prcs,  	tmp = 17;  	if (readb(&prcs->var.rx_packet.next_frag_rcs_index) != 0xFF) {  		prcslink = prcs; -		DEBUG(1, "ray_cs rx_data in fragment loop\n"); +		pr_debug("ray_cs rx_data in fragment loop\n");  		do {  			prcslink = rcs_base(local)  			    + @@ -2426,8 +2415,8 @@ static void untranslate(ray_dev_t *local, struct sk_buff *skb, int len)  	memcpy(destaddr, ieee80211_get_DA(pmac), ADDRLEN);  	memcpy(srcaddr, ieee80211_get_SA(pmac), ADDRLEN); -#ifdef PCMCIA_DEBUG -	if (pc_debug > 3) { +#if 0 +	if {  		print_hex_dump(KERN_DEBUG, "skb->data before untranslate: ",  			       DUMP_PREFIX_NONE, 16, 1,  			       skb->data, 64, true); @@ -2441,7 +2430,7 @@ static void untranslate(ray_dev_t *local, struct sk_buff *skb, int len)  	if (psnap->dsap != 0xaa || psnap->ssap != 0xaa || psnap->ctrl != 3) {  		/* not a snap type so leave it alone */ -		DEBUG(3, "ray_cs untranslate NOT SNAP %02x %02x %02x\n", +		pr_debug("ray_cs untranslate NOT SNAP %02x %02x %02x\n",  		      psnap->dsap, psnap->ssap, psnap->ctrl);  		delta = RX_MAC_HEADER_LENGTH - ETH_HLEN; @@ -2450,7 +2439,7 @@ static void untranslate(ray_dev_t *local, struct sk_buff *skb, int len)  	} else { /* Its a SNAP */  		if (memcmp(psnap->org, org_bridge, 3) == 0) {  		/* EtherII and nuke the LLC */ -			DEBUG(3, "ray_cs untranslate Bridge encap\n"); +			pr_debug("ray_cs untranslate Bridge encap\n");  			delta = RX_MAC_HEADER_LENGTH  			    + sizeof(struct snaphdr_t) - ETH_HLEN;  			peth = (struct ethhdr *)(skb->data + delta); @@ -2459,14 +2448,14 @@ static void untranslate(ray_dev_t *local, struct sk_buff *skb, int len)  			switch (ntohs(type)) {  			case ETH_P_IPX:  			case ETH_P_AARP: -				DEBUG(3, "ray_cs untranslate RFC IPX/AARP\n"); +				pr_debug("ray_cs untranslate RFC IPX/AARP\n");  				delta = RX_MAC_HEADER_LENGTH - ETH_HLEN;  				peth = (struct ethhdr *)(skb->data + delta);  				peth->h_proto =  				    htons(len - RX_MAC_HEADER_LENGTH);  				break;  			default: -				DEBUG(3, "ray_cs untranslate RFC default\n"); +				pr_debug("ray_cs untranslate RFC default\n");  				delta = RX_MAC_HEADER_LENGTH +  				    sizeof(struct snaphdr_t) - ETH_HLEN;  				peth = (struct ethhdr *)(skb->data + delta); @@ -2482,12 +2471,12 @@ static void untranslate(ray_dev_t *local, struct sk_buff *skb, int len)  	}  /* TBD reserve  skb_reserve(skb, delta); */  	skb_pull(skb, delta); -	DEBUG(3, "untranslate after skb_pull(%d), skb->data = %p\n", delta, +	pr_debug("untranslate after skb_pull(%d), skb->data = %p\n", delta,  	      skb->data);  	memcpy(peth->h_dest, destaddr, ADDRLEN);  	memcpy(peth->h_source, srcaddr, ADDRLEN); -#ifdef PCMCIA_DEBUG -	if (pc_debug > 3) { +#if 0 +	{  		int i;  		printk(KERN_DEBUG "skb->data after untranslate:");  		for (i = 0; i < 64; i++) @@ -2529,7 +2518,7 @@ static void release_frag_chain(ray_dev_t *local, struct rcs __iomem *prcs)  	while (tmp--) {  		writeb(CCS_BUFFER_FREE, &prcslink->buffer_status);  		if (rcsindex >= (NUMBER_OF_CCS + NUMBER_OF_RCS)) { -			DEBUG(1, "ray_cs interrupt bad rcsindex = 0x%x\n", +			pr_debug("ray_cs interrupt bad rcsindex = 0x%x\n",  			      rcsindex);  			break;  		} @@ -2543,9 +2532,9 @@ static void release_frag_chain(ray_dev_t *local, struct rcs __iomem *prcs)  static void authenticate(ray_dev_t *local)  {  	struct pcmcia_device *link = local->finder; -	DEBUG(0, "ray_cs Starting authentication.\n"); +	dev_dbg(&link->dev, "ray_cs Starting authentication.\n");  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs authenticate - device not present\n"); +		dev_dbg(&link->dev, "ray_cs authenticate - device not present\n");  		return;  	} @@ -2573,11 +2562,11 @@ static void rx_authenticate(ray_dev_t *local, struct rcs __iomem *prcs,  	copy_from_rx_buff(local, buff, pkt_addr, rx_len & 0xff);  	/* if we are trying to get authenticated */  	if (local->sparm.b4.a_network_type == ADHOC) { -		DEBUG(1, "ray_cs rx_auth var= %02x %02x %02x %02x %02x %02x\n", +		pr_debug("ray_cs rx_auth var= %02x %02x %02x %02x %02x %02x\n",  		      msg->var[0], msg->var[1], msg->var[2], msg->var[3],  		      msg->var[4], msg->var[5]);  		if (msg->var[2] == 1) { -			DEBUG(0, "ray_cs Sending authentication response.\n"); +			pr_debug("ray_cs Sending authentication response.\n");  			if (!build_auth_frame  			    (local, msg->mac.addr_2, OPEN_AUTH_RESPONSE)) {  				local->authentication_state = NEED_TO_AUTH; @@ -2591,13 +2580,13 @@ static void rx_authenticate(ray_dev_t *local, struct rcs __iomem *prcs,  			/* Verify authentication sequence #2 and success */  			if (msg->var[2] == 2) {  				if ((msg->var[3] | msg->var[4]) == 0) { -					DEBUG(1, "Authentication successful\n"); +					pr_debug("Authentication successful\n");  					local->card_status = CARD_AUTH_COMPLETE;  					associate(local);  					local->authentication_state =  					    AUTHENTICATED;  				} else { -					DEBUG(0, "Authentication refused\n"); +					pr_debug("Authentication refused\n");  					local->card_status = CARD_AUTH_REFUSED;  					join_net((u_long) local);  					local->authentication_state = @@ -2617,22 +2606,22 @@ static void associate(ray_dev_t *local)  	struct net_device *dev = link->priv;  	int ccsindex;  	if (!(pcmcia_dev_present(link))) { -		DEBUG(2, "ray_cs associate - device not present\n"); +		dev_dbg(&link->dev, "ray_cs associate - device not present\n");  		return;  	}  	/* If no tx buffers available, return */  	if ((ccsindex = get_free_ccs(local)) < 0) {  /* TBD should never be here but... what if we are? */ -		DEBUG(1, "ray_cs associate - No free ccs\n"); +		dev_dbg(&link->dev, "ray_cs associate - No free ccs\n");  		return;  	} -	DEBUG(1, "ray_cs Starting association with access point\n"); +	dev_dbg(&link->dev, "ray_cs Starting association with access point\n");  	pccs = ccs_base(local) + ccsindex;  	/* fill in the CCS */  	writeb(CCS_START_ASSOCIATION, &pccs->cmd);  	/* Interrupt the firmware to process the command */  	if (interrupt_ecf(local, ccsindex)) { -		DEBUG(1, "ray_cs associate failed - ECF not ready for intr\n"); +		dev_dbg(&link->dev, "ray_cs associate failed - ECF not ready for intr\n");  		writeb(CCS_BUFFER_FREE, &(pccs++)->buffer_status);  		del_timer(&local->timer); @@ -2655,7 +2644,7 @@ static void rx_deauthenticate(ray_dev_t *local, struct rcs __iomem *prcs,  /*  UCHAR buff[256];      struct rx_msg *msg = (struct rx_msg *)buff;  */ -	DEBUG(0, "Deauthentication frame received\n"); +	pr_debug("Deauthentication frame received\n");  	local->authentication_state = UNAUTHENTICATED;  	/* Need to reauthenticate or rejoin depending on reason code */  /*  copy_from_rx_buff(local, buff, pkt_addr, rx_len & 0xff); @@ -2823,7 +2812,7 @@ static int build_auth_frame(ray_dev_t *local, UCHAR *dest, int auth_type)  	/* If no tx buffers available, return */  	if ((ccsindex = get_free_tx_ccs(local)) < 0) { -		DEBUG(1, "ray_cs send authenticate - No free tx ccs\n"); +		pr_debug("ray_cs send authenticate - No free tx ccs\n");  		return -1;  	} @@ -2855,7 +2844,7 @@ static int build_auth_frame(ray_dev_t *local, UCHAR *dest, int auth_type)  	/* Interrupt the firmware to process the command */  	if (interrupt_ecf(local, ccsindex)) { -		DEBUG(1, +		pr_debug(  		      "ray_cs send authentication request failed - ECF not ready for intr\n");  		writeb(CCS_BUFFER_FREE, &(pccs++)->buffer_status);  		return -1; @@ -2865,21 +2854,11 @@ static int build_auth_frame(ray_dev_t *local, UCHAR *dest, int auth_type)  /*===========================================================================*/  #ifdef CONFIG_PROC_FS -static void raycs_write(const char *name, write_proc_t *w, void *data) -{ -	struct proc_dir_entry *entry = -	    create_proc_entry(name, S_IFREG | S_IWUSR, NULL); -	if (entry) { -		entry->write_proc = w; -		entry->data = data; -	} -} - -static int write_essid(struct file *file, const char __user *buffer, -		       unsigned long count, void *data) +static ssize_t ray_cs_essid_proc_write(struct file *file, +		const char __user *buffer, size_t count, loff_t *pos)  {  	static char proc_essid[33]; -	int len = count; +	unsigned int len = count;  	if (len > 32)  		len = 32; @@ -2890,8 +2869,13 @@ static int write_essid(struct file *file, const char __user *buffer,  	return count;  } -static int write_int(struct file *file, const char __user *buffer, -		     unsigned long count, void *data) +static const struct file_operations ray_cs_essid_proc_fops = { +	.owner		= THIS_MODULE, +	.write		= ray_cs_essid_proc_write, +}; + +static ssize_t int_proc_write(struct file *file, const char __user *buffer, +			      size_t count, loff_t *pos)  {  	static char proc_number[10];  	char *p; @@ -2914,9 +2898,14 @@ static int write_int(struct file *file, const char __user *buffer,  		nr = nr * 10 + c;  		p++;  	} while (--len); -	*(int *)data = nr; +	*(int *)PDE(file->f_path.dentry->d_inode)->data = nr;  	return count;  } + +static const struct file_operations int_proc_fops = { +	.owner		= THIS_MODULE, +	.write		= int_proc_write, +};  #endif  static struct pcmcia_device_id ray_ids[] = { @@ -2942,18 +2931,18 @@ static int __init init_ray_cs(void)  {  	int rc; -	DEBUG(1, "%s\n", rcsid); +	pr_debug("%s\n", rcsid);  	rc = pcmcia_register_driver(&ray_driver); -	DEBUG(1, "raylink init_module register_pcmcia_driver returns 0x%x\n", +	pr_debug("raylink init_module register_pcmcia_driver returns 0x%x\n",  	      rc);  #ifdef CONFIG_PROC_FS  	proc_mkdir("driver/ray_cs", NULL);  	proc_create("driver/ray_cs/ray_cs", 0, NULL, &ray_cs_proc_fops); -	raycs_write("driver/ray_cs/essid", write_essid, NULL); -	raycs_write("driver/ray_cs/net_type", write_int, &net_type); -	raycs_write("driver/ray_cs/translate", write_int, &translate); +	proc_create("driver/ray_cs/essid", S_IWUSR, NULL, &ray_cs_essid_proc_fops); +	proc_create_data("driver/ray_cs/net_type", S_IWUSR, NULL, &int_proc_fops, &net_type); +	proc_create_data("driver/ray_cs/translate", S_IWUSR, NULL, &int_proc_fops, &translate);  #endif  	if (translate != 0)  		translate = 1; @@ -2964,7 +2953,7 @@ static int __init init_ray_cs(void)  static void __exit exit_ray_cs(void)  { -	DEBUG(0, "ray_cs: cleanup_module\n"); +	pr_debug("ray_cs: cleanup_module\n");  #ifdef CONFIG_PROC_FS  	remove_proc_entry("driver/ray_cs/ray_cs", NULL);  |