Merge branch 'topic/hda' into for-linus
[pandora-kernel.git] / drivers / net / arm / at91_ether.c
index 6f431a8..7f4bc8a 100644 (file)
@@ -485,7 +485,6 @@ static void update_mac_address(struct net_device *dev)
 static int set_mac_address(struct net_device *dev, void* addr)
 {
        struct sockaddr *address = addr;
-       DECLARE_MAC_BUF(mac);
 
        if (!is_valid_ether_addr(address->sa_data))
                return -EADDRNOTAVAIL;
@@ -493,8 +492,8 @@ static int set_mac_address(struct net_device *dev, void* addr)
        memcpy(dev->dev_addr, address->sa_data, dev->addr_len);
        update_mac_address(dev);
 
-       printk("%s: Setting MAC address to %s\n", dev->name,
-              print_mac(mac, dev->dev_addr));
+       printk("%s: Setting MAC address to %pM\n", dev->name,
+              dev->dev_addr);
 
        return 0;
 }
@@ -578,7 +577,7 @@ static void at91ether_sethashtable(struct net_device *dev)
 /*
  * Enable/Disable promiscuous and multicast modes.
  */
-static void at91ether_set_rx_mode(struct net_device *dev)
+static void at91ether_set_multicast_list(struct net_device *dev)
 {
        unsigned long cfg;
 
@@ -809,7 +808,7 @@ static int at91ether_close(struct net_device *dev)
 /*
  * Transmit packet.
  */
-static int at91ether_tx(struct sk_buff *skb, struct net_device *dev)
+static int at91ether_start_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        struct at91_private *lp = netdev_priv(dev);
 
@@ -829,7 +828,7 @@ static int at91ether_tx(struct sk_buff *skb, struct net_device *dev)
 
                dev->trans_start = jiffies;
        } else {
-               printk(KERN_ERR "at91_ether.c: at91ether_tx() called, but device is busy!\n");
+               printk(KERN_ERR "at91_ether.c: at91ether_start_xmit() called, but device is busy!\n");
                return 1;       /* if we return anything but zero, dev.c:1055 calls kfree_skb(skb)
                                on this skb, he also reports -ENETDOWN and printk's, so either
                                we free and return(0) or don't free and return 1 */
@@ -894,7 +893,6 @@ static void at91ether_rx(struct net_device *dev)
                        memcpy(skb_put(skb, pktlen), p_recv, pktlen);
 
                        skb->protocol = eth_type_trans(skb, dev);
-                       dev->last_rx = jiffies;
                        dev->stats.rx_bytes += pktlen;
                        netif_rx(skb);
                }
@@ -967,6 +965,21 @@ static void at91ether_poll_controller(struct net_device *dev)
 }
 #endif
 
+static const struct net_device_ops at91ether_netdev_ops = {
+       .ndo_open               = at91ether_open,
+       .ndo_stop               = at91ether_close,
+       .ndo_start_xmit         = at91ether_start_xmit,
+       .ndo_get_stats          = at91ether_stats,
+       .ndo_set_multicast_list = at91ether_set_multicast_list,
+       .ndo_set_mac_address    = set_mac_address,
+       .ndo_do_ioctl           = at91ether_ioctl,
+       .ndo_validate_addr      = eth_validate_addr,
+       .ndo_change_mtu         = eth_change_mtu,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+       .ndo_poll_controller    = at91ether_poll_controller,
+#endif
+};
+
 /*
  * Initialize the ethernet interface
  */
@@ -978,7 +991,6 @@ static int __init at91ether_setup(unsigned long phy_type, unsigned short phy_add
        struct at91_private *lp;
        unsigned int val;
        int res;
-       DECLARE_MAC_BUF(mac);
 
        dev = alloc_etherdev(sizeof(struct at91_private));
        if (!dev)
@@ -1008,17 +1020,8 @@ static int __init at91ether_setup(unsigned long phy_type, unsigned short phy_add
        spin_lock_init(&lp->lock);
 
        ether_setup(dev);
-       dev->open = at91ether_open;
-       dev->stop = at91ether_close;
-       dev->hard_start_xmit = at91ether_tx;
-       dev->get_stats = at91ether_stats;
-       dev->set_multicast_list = at91ether_set_rx_mode;
-       dev->set_mac_address = set_mac_address;
+       dev->netdev_ops = &at91ether_netdev_ops;
        dev->ethtool_ops = &at91ether_ethtool_ops;
-       dev->do_ioctl = at91ether_ioctl;
-#ifdef CONFIG_NET_POLL_CONTROLLER
-       dev->poll_controller = at91ether_poll_controller;
-#endif
 
        SET_NETDEV_DEV(dev, &pdev->dev);
 
@@ -1084,11 +1087,11 @@ static int __init at91ether_setup(unsigned long phy_type, unsigned short phy_add
                gpio_request(lp->board_data.phy_irq_pin, "ethernet_phy");
 
        /* Display ethernet banner */
-       printk(KERN_INFO "%s: AT91 ethernet at 0x%08x int=%d %s%s (%s)\n",
+       printk(KERN_INFO "%s: AT91 ethernet at 0x%08x int=%d %s%s (%pM)\n",
               dev->name, (uint) dev->base_addr, dev->irq,
               at91_emac_read(AT91_EMAC_CFG) & AT91_EMAC_SPD ? "100-" : "10-",
               at91_emac_read(AT91_EMAC_CFG) & AT91_EMAC_FD ? "FullDuplex" : "HalfDuplex",
-              print_mac(mac, dev->dev_addr));
+              dev->dev_addr);
        if ((phy_type == MII_DM9161_ID) || (lp->phy_type == MII_DM9161A_ID))
                printk(KERN_INFO "%s: Davicom 9161 PHY %s\n", dev->name, (lp->phy_media == PORT_FIBRE) ? "(Fiber)" : "(Copper)");
        else if (phy_type == MII_LXT971A_ID)