X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fpci-skeleton.c;h=a7bb54df75a89e3bb5d2b0bf9fa348ae3a352f34;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=2385386602d4b824608638789a48d502a028f920;hpb=9213980e6a70d8473e0ffd4b39ab5b6caaba9ff5;p=linux-2.6.git diff --git a/drivers/net/pci-skeleton.c b/drivers/net/pci-skeleton.c index 238538660..a7bb54df7 100644 --- a/drivers/net/pci-skeleton.c +++ b/drivers/net/pci-skeleton.c @@ -415,7 +415,7 @@ typedef enum { /* directly indexed by chip_t, above */ -const static struct { +static const struct { const char *name; u8 version; /* from RTL8139C docs */ u32 RxConfigMask; /* should clear the bits supported by this chip */ @@ -486,14 +486,12 @@ struct netdrv_private { MODULE_AUTHOR ("Jeff Garzik "); MODULE_DESCRIPTION ("Skeleton for a PCI Fast Ethernet driver"); MODULE_LICENSE("GPL"); -MODULE_PARM (multicast_filter_limit, "i"); -MODULE_PARM (max_interrupt_work, "i"); -MODULE_PARM (debug, "i"); -MODULE_PARM (media, "1-" __MODULE_STRING(8) "i"); +module_param(multicast_filter_limit, int, 0); +module_param(max_interrupt_work, int, 0); +module_param_array(media, int, NULL, 0); MODULE_PARM_DESC (multicast_filter_limit, "pci-skeleton maximum number of filtered multicast addresses"); MODULE_PARM_DESC (max_interrupt_work, "pci-skeleton maximum events handled per interrupt"); MODULE_PARM_DESC (media, "pci-skeleton: Bits 0-3: media type, bit 17: full duplex"); -MODULE_PARM_DESC (debug, "(unused)"); static int read_eeprom (void *ioaddr, int location, int addr_len); static int netdrv_open (struct net_device *dev); @@ -588,7 +586,6 @@ static int __devinit netdrv_init_board (struct pci_dev *pdev, void *ioaddr = NULL; struct net_device *dev; struct netdrv_private *tp; - u8 tmp8; int rc, i; u32 pio_start, pio_end, pio_flags, pio_len; unsigned long mmio_start, mmio_end, mmio_flags, mmio_len; @@ -744,7 +741,6 @@ static int __devinit netdrv_init_one (struct pci_dev *pdev, int i, addr_len, option; void *ioaddr = NULL; static int board_idx = -1; - u8 tmp; /* when built into the kernel, we only print version if device is found */ #ifndef MODULE @@ -799,7 +795,7 @@ static int __devinit netdrv_init_one (struct pci_dev *pdev, tp->pci_dev = pdev; tp->board = ent->driver_data; tp->mmio_addr = ioaddr; - tp->lock = SPIN_LOCK_UNLOCKED; + spin_lock_init(&tp->lock); pci_set_drvdata(pdev, dev); @@ -868,7 +864,7 @@ static void __devexit netdrv_remove_one (struct pci_dev *pdev) pci_set_drvdata (pdev, NULL); - pci_power_off (pdev, -1); + pci_disable_device (pdev); DPRINTK ("EXIT\n"); } @@ -1136,7 +1132,6 @@ static void netdrv_hw_start (struct net_device *dev) struct netdrv_private *tp = dev->priv; void *ioaddr = tp->mmio_addr; u32 i; - u8 tmp; DPRINTK ("ENTER\n"); @@ -1875,9 +1870,11 @@ static void netdrv_set_rx_mode (struct net_device *dev) rx_mode = AcceptBroadcast | AcceptMulticast | AcceptMyPhys; mc_filter[1] = mc_filter[0] = 0; for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count; - i++, mclist = mclist->next) - set_bit (ether_crc (ETH_ALEN, mclist->dmi_addr) >> 26, - mc_filter); + i++, mclist = mclist->next) { + int bit_nr = ether_crc(ETH_ALEN, mclist->dmi_addr) >> 26; + + mc_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); + } } /* if called from irq handler, lock already acquired */ @@ -1900,7 +1897,7 @@ static void netdrv_set_rx_mode (struct net_device *dev) #ifdef CONFIG_PM -static int netdrv_suspend (struct pci_dev *pdev, u32 state) +static int netdrv_suspend (struct pci_dev *pdev, pm_message_t state) { struct net_device *dev = pci_get_drvdata (pdev); struct netdrv_private *tp = dev->priv; @@ -1908,7 +1905,7 @@ static int netdrv_suspend (struct pci_dev *pdev, u32 state) unsigned long flags; if (!netif_running(dev)) - return; + return 0; netif_device_detach (dev); spin_lock_irqsave (&tp->lock, flags); @@ -1923,7 +1920,8 @@ static int netdrv_suspend (struct pci_dev *pdev, u32 state) spin_unlock_irqrestore (&tp->lock, flags); - pci_power_off (pdev, -1); + pci_save_state (pdev); + pci_set_power_state (pdev, PCI_D3hot); return 0; } @@ -1932,10 +1930,12 @@ static int netdrv_suspend (struct pci_dev *pdev, u32 state) static int netdrv_resume (struct pci_dev *pdev) { struct net_device *dev = pci_get_drvdata (pdev); + struct netdrv_private *tp = dev->priv; if (!netif_running(dev)) - return; - pci_power_on (pdev); + return 0; + pci_set_power_state (pdev, PCI_D0); + pci_restore_state (pdev); netif_device_attach (dev); netdrv_hw_start (dev);