diff options
-rw-r--r-- | drivers/net/cassini.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c index 04a03f7003a0..0d911bacc25f 100644 --- a/drivers/net/cassini.c +++ b/drivers/net/cassini.c | |||
@@ -3063,9 +3063,6 @@ static void cas_init_mac(struct cas *cp) | |||
3063 | { | 3063 | { |
3064 | unsigned char *e = &cp->dev->dev_addr[0]; | 3064 | unsigned char *e = &cp->dev->dev_addr[0]; |
3065 | int i; | 3065 | int i; |
3066 | #ifdef CONFIG_CASSINI_MULTICAST_REG_WRITE | ||
3067 | u32 rxcfg; | ||
3068 | #endif | ||
3069 | cas_mac_reset(cp); | 3066 | cas_mac_reset(cp); |
3070 | 3067 | ||
3071 | /* setup core arbitration weight register */ | 3068 | /* setup core arbitration weight register */ |
@@ -3133,23 +3130,8 @@ static void cas_init_mac(struct cas *cp) | |||
3133 | writel(0xc200, cp->regs + REG_MAC_ADDRN(43)); | 3130 | writel(0xc200, cp->regs + REG_MAC_ADDRN(43)); |
3134 | writel(0x0180, cp->regs + REG_MAC_ADDRN(44)); | 3131 | writel(0x0180, cp->regs + REG_MAC_ADDRN(44)); |
3135 | 3132 | ||
3136 | #ifndef CONFIG_CASSINI_MULTICAST_REG_WRITE | ||
3137 | cp->mac_rx_cfg = cas_setup_multicast(cp); | 3133 | cp->mac_rx_cfg = cas_setup_multicast(cp); |
3138 | #else | 3134 | |
3139 | /* WTZ: Do what Adrian did in cas_set_multicast. Doing | ||
3140 | * a writel does not seem to be necessary because Cassini | ||
3141 | * seems to preserve the configuration when we do the reset. | ||
3142 | * If the chip is in trouble, though, it is not clear if we | ||
3143 | * can really count on this behavior. cas_set_multicast uses | ||
3144 | * spin_lock_irqsave, but we are called only in cas_init_hw and | ||
3145 | * cas_init_hw is protected by cas_lock_all, which calls | ||
3146 | * spin_lock_irq (so it doesn't need to save the flags, and | ||
3147 | * we should be OK for the writel, as that is the only | ||
3148 | * difference). | ||
3149 | */ | ||
3150 | cp->mac_rx_cfg = rxcfg = cas_setup_multicast(cp); | ||
3151 | writel(rxcfg, cp->regs + REG_MAC_RX_CFG); | ||
3152 | #endif | ||
3153 | spin_lock(&cp->stat_lock[N_TX_RINGS]); | 3135 | spin_lock(&cp->stat_lock[N_TX_RINGS]); |
3154 | cas_clear_mac_err(cp); | 3136 | cas_clear_mac_err(cp); |
3155 | spin_unlock(&cp->stat_lock[N_TX_RINGS]); | 3137 | spin_unlock(&cp->stat_lock[N_TX_RINGS]); |