|
@@ -3063,9 +3063,6 @@ static void cas_init_mac(struct cas *cp)
|
|
|
{
|
|
|
unsigned char *e = &cp->dev->dev_addr[0];
|
|
|
int i;
|
|
|
-#ifdef CONFIG_CASSINI_MULTICAST_REG_WRITE
|
|
|
- u32 rxcfg;
|
|
|
-#endif
|
|
|
cas_mac_reset(cp);
|
|
|
|
|
|
/* setup core arbitration weight register */
|
|
@@ -3133,23 +3130,8 @@ static void cas_init_mac(struct cas *cp)
|
|
|
writel(0xc200, cp->regs + REG_MAC_ADDRN(43));
|
|
|
writel(0x0180, cp->regs + REG_MAC_ADDRN(44));
|
|
|
|
|
|
-#ifndef CONFIG_CASSINI_MULTICAST_REG_WRITE
|
|
|
cp->mac_rx_cfg = cas_setup_multicast(cp);
|
|
|
-#else
|
|
|
- /* WTZ: Do what Adrian did in cas_set_multicast. Doing
|
|
|
- * a writel does not seem to be necessary because Cassini
|
|
|
- * seems to preserve the configuration when we do the reset.
|
|
|
- * If the chip is in trouble, though, it is not clear if we
|
|
|
- * can really count on this behavior. cas_set_multicast uses
|
|
|
- * spin_lock_irqsave, but we are called only in cas_init_hw and
|
|
|
- * cas_init_hw is protected by cas_lock_all, which calls
|
|
|
- * spin_lock_irq (so it doesn't need to save the flags, and
|
|
|
- * we should be OK for the writel, as that is the only
|
|
|
- * difference).
|
|
|
- */
|
|
|
- cp->mac_rx_cfg = rxcfg = cas_setup_multicast(cp);
|
|
|
- writel(rxcfg, cp->regs + REG_MAC_RX_CFG);
|
|
|
-#endif
|
|
|
+
|
|
|
spin_lock(&cp->stat_lock[N_TX_RINGS]);
|
|
|
cas_clear_mac_err(cp);
|
|
|
spin_unlock(&cp->stat_lock[N_TX_RINGS]);
|