diff options
Diffstat (limited to 'drivers/net/ethernet/8390/ne2k-pci.c')
| -rw-r--r-- | drivers/net/ethernet/8390/ne2k-pci.c | 57 | 
1 files changed, 37 insertions, 20 deletions
diff --git a/drivers/net/ethernet/8390/ne2k-pci.c b/drivers/net/ethernet/8390/ne2k-pci.c index 92201080e07..f395c967262 100644 --- a/drivers/net/ethernet/8390/ne2k-pci.c +++ b/drivers/net/ethernet/8390/ne2k-pci.c @@ -33,8 +33,6 @@  /* The user-configurable values.     These may be modified when a driver module is loaded.*/ -static int debug = 1;			/* 1 normal messages, 0 quiet .. 7 verbose. */ -  #define MAX_UNITS 8				/* More are supported, limit only on options */  /* Used to pass the full-duplex flag, etc. */  static int full_duplex[MAX_UNITS]; @@ -60,6 +58,8 @@ static int options[MAX_UNITS];  #include "8390.h" +static u32 ne2k_msg_enable; +  /* These identify the driver base version and may not be removed. */  static const char version[] =  	KERN_INFO DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE @@ -76,10 +76,10 @@ MODULE_AUTHOR("Donald Becker / Paul Gortmaker");  MODULE_DESCRIPTION("PCI NE2000 clone driver");  MODULE_LICENSE("GPL"); -module_param(debug, int, 0); +module_param_named(msg_enable, ne2k_msg_enable, uint, (S_IRUSR|S_IRGRP|S_IROTH));  module_param_array(options, int, NULL, 0);  module_param_array(full_duplex, int, NULL, 0); -MODULE_PARM_DESC(debug, "debug level (1-2)"); +MODULE_PARM_DESC(msg_enable, "Debug message level (see linux/netdevice.h for bitmap)");  MODULE_PARM_DESC(options, "Bit 5: full duplex");  MODULE_PARM_DESC(full_duplex, "full duplex setting(s) (1)"); @@ -226,6 +226,7 @@ static int ne2k_pci_init_one(struct pci_dev *pdev,  	static unsigned int fnd_cnt;  	long ioaddr;  	int flags = pci_clone_list[chip_idx].flags; +	struct ei_device *ei_local;  /* when built into the kernel, we only print version if device is found */  #ifndef MODULE @@ -280,6 +281,8 @@ static int ne2k_pci_init_one(struct pci_dev *pdev,  		goto err_out_free_res;  	}  	dev->netdev_ops = &ne2k_netdev_ops; +	ei_local = netdev_priv(dev); +	ei_local->msg_enable = ne2k_msg_enable;  	SET_NETDEV_DEV(dev, &pdev->dev); @@ -379,9 +382,9 @@ static int ne2k_pci_init_one(struct pci_dev *pdev,  	if (i)  		goto err_out_free_netdev; -	printk("%s: %s found at %#lx, IRQ %d, %pM.\n", -	       dev->name, pci_clone_list[chip_idx].name, ioaddr, dev->irq, -	       dev->dev_addr); +	netdev_info(dev, "%s found at %#lx, IRQ %d, %pM.\n", +		    pci_clone_list[chip_idx].name, ioaddr, dev->irq, +		    dev->dev_addr);  	return 0; @@ -389,9 +392,7 @@ err_out_free_netdev:  	free_netdev (dev);  err_out_free_res:  	release_region (ioaddr, NE_IO_EXTENT); -	pci_set_drvdata (pdev, NULL);  	return -ENODEV; -  }  /* @@ -452,9 +453,10 @@ static int ne2k_pci_close(struct net_device *dev)  static void ne2k_pci_reset_8390(struct net_device *dev)  {  	unsigned long reset_start_time = jiffies; +	struct ei_device *ei_local = netdev_priv(dev); -	if (debug > 1) printk("%s: Resetting the 8390 t=%ld...", -						  dev->name, jiffies); +	netif_dbg(ei_local, hw, dev, "resetting the 8390 t=%ld...\n", +		  jiffies);  	outb(inb(NE_BASE + NE_RESET), NE_BASE + NE_RESET); @@ -464,7 +466,7 @@ static void ne2k_pci_reset_8390(struct net_device *dev)  	/* This check _should_not_ be necessary, omit eventually. */  	while ((inb(NE_BASE+EN0_ISR) & ENISR_RESET) == 0)  		if (jiffies - reset_start_time > 2) { -			printk("%s: ne2k_pci_reset_8390() did not complete.\n", dev->name); +			netdev_err(dev, "ne2k_pci_reset_8390() did not complete.\n");  			break;  		}  	outb(ENISR_RESET, NE_BASE + EN0_ISR);	/* Ack intr. */ @@ -481,9 +483,9 @@ static void ne2k_pci_get_8390_hdr(struct net_device *dev, struct e8390_pkt_hdr *  	/* This *shouldn't* happen. If it does, it's the last thing you'll see */  	if (ei_status.dmaing) { -		printk("%s: DMAing conflict in ne2k_pci_get_8390_hdr " +		netdev_err(dev, "DMAing conflict in ne2k_pci_get_8390_hdr "  			   "[DMAstat:%d][irqlock:%d].\n", -			   dev->name, ei_status.dmaing, ei_status.irqlock); +			   ei_status.dmaing, ei_status.irqlock);  		return;  	} @@ -519,9 +521,9 @@ static void ne2k_pci_block_input(struct net_device *dev, int count,  	/* This *shouldn't* happen. If it does, it's the last thing you'll see */  	if (ei_status.dmaing) { -		printk("%s: DMAing conflict in ne2k_pci_block_input " +		netdev_err(dev, "DMAing conflict in ne2k_pci_block_input "  			   "[DMAstat:%d][irqlock:%d].\n", -			   dev->name, ei_status.dmaing, ei_status.irqlock); +			   ei_status.dmaing, ei_status.irqlock);  		return;  	}  	ei_status.dmaing |= 0x01; @@ -574,9 +576,9 @@ static void ne2k_pci_block_output(struct net_device *dev, int count,  	/* This *shouldn't* happen. If it does, it's the last thing you'll see */  	if (ei_status.dmaing) { -		printk("%s: DMAing conflict in ne2k_pci_block_output." +		netdev_err(dev, "DMAing conflict in ne2k_pci_block_output."  			   "[DMAstat:%d][irqlock:%d]\n", -			   dev->name, ei_status.dmaing, ei_status.irqlock); +			   ei_status.dmaing, ei_status.irqlock);  		return;  	}  	ei_status.dmaing |= 0x01; @@ -621,7 +623,7 @@ static void ne2k_pci_block_output(struct net_device *dev, int count,  	while ((inb(nic_base + EN0_ISR) & ENISR_RDC) == 0)  		if (jiffies - dma_start > 2) {			/* Avoid clock roll-over. */ -			printk(KERN_WARNING "%s: timeout waiting for Tx RDC.\n", dev->name); +			netdev_warn(dev, "timeout waiting for Tx RDC.\n");  			ne2k_pci_reset_8390(dev);  			NS8390_init(dev,1);  			break; @@ -642,8 +644,24 @@ static void ne2k_pci_get_drvinfo(struct net_device *dev,  	strlcpy(info->bus_info, pci_name(pci_dev), sizeof(info->bus_info));  } +static u32 ne2k_pci_get_msglevel(struct net_device *dev) +{ +	struct ei_device *ei_local = netdev_priv(dev); + +	return ei_local->msg_enable; +} + +static void ne2k_pci_set_msglevel(struct net_device *dev, u32 v) +{ +	struct ei_device *ei_local = netdev_priv(dev); + +	ei_local->msg_enable = v; +} +  static const struct ethtool_ops ne2k_pci_ethtool_ops = {  	.get_drvinfo		= ne2k_pci_get_drvinfo, +	.get_msglevel		= ne2k_pci_get_msglevel, +	.set_msglevel		= ne2k_pci_set_msglevel,  };  static void ne2k_pci_remove_one(struct pci_dev *pdev) @@ -655,7 +673,6 @@ static void ne2k_pci_remove_one(struct pci_dev *pdev)  	release_region(dev->base_addr, NE_IO_EXTENT);  	free_netdev(dev);  	pci_disable_device(pdev); -	pci_set_drvdata(pdev, NULL);  }  #ifdef CONFIG_PM  | 
