[WATCHDOG] davinci: use clock framework for timer frequency
[safe/jmp/linux-2.6] / drivers / net / mv643xx_eth.c
index b4e18a5..b62e61d 100644 (file)
@@ -1066,40 +1066,6 @@ static void txq_set_fixed_prio_mode(struct tx_queue *txq)
        }
 }
 
-static void txq_set_wrr(struct tx_queue *txq, int weight)
-{
-       struct mv643xx_eth_private *mp = txq_to_mp(txq);
-       int off;
-       u32 val;
-
-       /*
-        * Turn off fixed priority mode.
-        */
-       off = 0;
-       switch (mp->shared->tx_bw_control) {
-       case TX_BW_CONTROL_OLD_LAYOUT:
-               off = TXQ_FIX_PRIO_CONF;
-               break;
-       case TX_BW_CONTROL_NEW_LAYOUT:
-               off = TXQ_FIX_PRIO_CONF_MOVED;
-               break;
-       }
-
-       if (off) {
-               val = rdlp(mp, off);
-               val &= ~(1 << txq->index);
-               wrlp(mp, off, val);
-
-               /*
-                * Configure WRR weight for this queue.
-                */
-
-               val = rdlp(mp, off);
-               val = (val & ~0xff) | (weight & 0xff);
-               wrlp(mp, TXQ_BW_WRR_CONF(txq->index), val);
-       }
-}
-
 
 /* mii management interface *************************************************/
 static irqreturn_t mv643xx_eth_err_irq(int irq, void *dev_id)
@@ -1729,7 +1695,7 @@ static u32 uc_addr_filter_mask(struct net_device *dev)
                return 0;
 
        nibbles = 1 << (dev->dev_addr[5] & 0x0f);
-       list_for_each_entry(ha, &dev->uc_list, list) {
+       list_for_each_entry(ha, &dev->uc.list, list) {
                if (memcmp(dev->dev_addr, ha->addr, 5))
                        return 0;
                if ((dev->dev_addr[5] ^ ha->addr[5]) & 0xf0)
@@ -1750,12 +1716,12 @@ static void mv643xx_eth_program_unicast_filter(struct net_device *dev)
 
        uc_addr_set(mp, dev->dev_addr);
 
-       port_config = rdlp(mp, PORT_CONFIG);
+       port_config = rdlp(mp, PORT_CONFIG) & ~UNICAST_PROMISCUOUS_MODE;
+
        nibbles = uc_addr_filter_mask(dev);
        if (!nibbles) {
                port_config |= UNICAST_PROMISCUOUS_MODE;
-               wrlp(mp, PORT_CONFIG, port_config);
-               return;
+               nibbles = 0xffff;
        }
 
        for (i = 0; i < 16; i += 4) {
@@ -1776,7 +1742,6 @@ static void mv643xx_eth_program_unicast_filter(struct net_device *dev)
                wrl(mp, off, v);
        }
 
-       port_config &= ~UNICAST_PROMISCUOUS_MODE;
        wrlp(mp, PORT_CONFIG, port_config);
 }