aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/smsc9420.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/smsc9420.c')
-rw-r--r--drivers/net/smsc9420.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/net/smsc9420.c b/drivers/net/smsc9420.c
index 0f7909276237..aafaebf45748 100644
--- a/drivers/net/smsc9420.c
+++ b/drivers/net/smsc9420.c
@@ -26,6 +26,7 @@
26#include <linux/if_vlan.h> 26#include <linux/if_vlan.h>
27#include <linux/dma-mapping.h> 27#include <linux/dma-mapping.h>
28#include <linux/crc32.h> 28#include <linux/crc32.h>
29#include <linux/slab.h>
29#include <asm/unaligned.h> 30#include <asm/unaligned.h>
30#include "smsc9420.h" 31#include "smsc9420.h"
31 32
@@ -80,7 +81,7 @@ struct smsc9420_pdata {
80 int last_carrier; 81 int last_carrier;
81}; 82};
82 83
83static const struct pci_device_id smsc9420_id_table[] = { 84static DEFINE_PCI_DEVICE_TABLE(smsc9420_id_table) = {
84 { PCI_VENDOR_ID_9420, PCI_DEVICE_ID_9420, PCI_ANY_ID, PCI_ANY_ID, }, 85 { PCI_VENDOR_ID_9420, PCI_DEVICE_ID_9420, PCI_ANY_ID, PCI_ANY_ID, },
85 { 0, } 86 { 0, }
86}; 87};
@@ -1062,12 +1063,12 @@ static void smsc9420_set_multicast_list(struct net_device *dev)
1062 mac_cr &= (~MAC_CR_PRMS_); 1063 mac_cr &= (~MAC_CR_PRMS_);
1063 mac_cr |= MAC_CR_MCPAS_; 1064 mac_cr |= MAC_CR_MCPAS_;
1064 mac_cr &= (~MAC_CR_HPFILT_); 1065 mac_cr &= (~MAC_CR_HPFILT_);
1065 } else if (dev->mc_count > 0) { 1066 } else if (!netdev_mc_empty(dev)) {
1066 struct dev_mc_list *mc_list = dev->mc_list; 1067 struct dev_mc_list *mc_list;
1067 u32 hash_lo = 0, hash_hi = 0; 1068 u32 hash_lo = 0, hash_hi = 0;
1068 1069
1069 smsc_dbg(HW, "Multicast filter enabled"); 1070 smsc_dbg(HW, "Multicast filter enabled");
1070 while (mc_list) { 1071 netdev_for_each_mc_addr(mc_list, dev) {
1071 u32 bit_num = smsc9420_hash(mc_list->dmi_addr); 1072 u32 bit_num = smsc9420_hash(mc_list->dmi_addr);
1072 u32 mask = 1 << (bit_num & 0x1F); 1073 u32 mask = 1 << (bit_num & 0x1F);
1073 1074
@@ -1076,7 +1077,6 @@ static void smsc9420_set_multicast_list(struct net_device *dev)
1076 else 1077 else
1077 hash_lo |= mask; 1078 hash_lo |= mask;
1078 1079
1079 mc_list = mc_list->next;
1080 } 1080 }
1081 smsc9420_reg_write(pd, HASHH, hash_hi); 1081 smsc9420_reg_write(pd, HASHH, hash_hi);
1082 smsc9420_reg_write(pd, HASHL, hash_lo); 1082 smsc9420_reg_write(pd, HASHL, hash_lo);
@@ -1175,7 +1175,7 @@ static int smsc9420_mii_probe(struct net_device *dev)
1175 phydev->phy_id); 1175 phydev->phy_id);
1176 1176
1177 phydev = phy_connect(dev, dev_name(&phydev->dev), 1177 phydev = phy_connect(dev, dev_name(&phydev->dev),
1178 &smsc9420_phy_adjust_link, 0, PHY_INTERFACE_MODE_MII); 1178 smsc9420_phy_adjust_link, 0, PHY_INTERFACE_MODE_MII);
1179 1179
1180 if (IS_ERR(phydev)) { 1180 if (IS_ERR(phydev)) {
1181 pr_err("%s: Could not attach to PHY\n", dev->name); 1181 pr_err("%s: Could not attach to PHY\n", dev->name);
@@ -1348,7 +1348,7 @@ static int smsc9420_open(struct net_device *dev)
1348 1348
1349 netif_carrier_off(dev); 1349 netif_carrier_off(dev);
1350 1350
1351 /* disable, mask and acknowlege all interrupts */ 1351 /* disable, mask and acknowledge all interrupts */
1352 spin_lock_irqsave(&pd->int_lock, flags); 1352 spin_lock_irqsave(&pd->int_lock, flags);
1353 int_cfg = smsc9420_reg_read(pd, INT_CFG) & (~INT_CFG_IRQ_EN_); 1353 int_cfg = smsc9420_reg_read(pd, INT_CFG) & (~INT_CFG_IRQ_EN_);
1354 smsc9420_reg_write(pd, INT_CFG, int_cfg); 1354 smsc9420_reg_write(pd, INT_CFG, int_cfg);