]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/dl2k.c
via-velocity: lean and clean velocity_init_rings
[linux-2.6-omap-h63xx.git] / drivers / net / dl2k.c
index 4468e0f5d16e3d558902ad1041b3dd27a076299c..f8037110a522e3eb2616414908cacdaafa363c8f 100644 (file)
@@ -499,7 +499,7 @@ rio_timer (unsigned long data)
                        entry = np->old_rx % RX_RING_SIZE;
                        /* Dropped packets don't need to re-allocate */
                        if (np->rx_skbuff[entry] == NULL) {
-                               skb = dev_alloc_skb (np->rx_buf_sz);
+                               skb = netdev_alloc_skb (dev, np->rx_buf_sz);
                                if (skb == NULL) {
                                        np->rx_ring[entry].fraginfo = 0;
                                        printk (KERN_INFO
@@ -570,7 +570,7 @@ alloc_list (struct net_device *dev)
        /* Allocate the rx buffers */
        for (i = 0; i < RX_RING_SIZE; i++) {
                /* Allocated fixed size of skbuff */
-               struct sk_buff *skb = dev_alloc_skb (np->rx_buf_sz);
+               struct sk_buff *skb = netdev_alloc_skb (dev, np->rx_buf_sz);
                np->rx_skbuff[i] = skb;
                if (skb == NULL) {
                        printk (KERN_ERR
@@ -867,7 +867,7 @@ receive_packet (struct net_device *dev)
                                                  PCI_DMA_FROMDEVICE);
                                skb_put (skb = np->rx_skbuff[entry], pkt_len);
                                np->rx_skbuff[entry] = NULL;
-                       } else if ((skb = dev_alloc_skb (pkt_len + 2)) != NULL) {
+                       } else if ((skb = netdev_alloc_skb(dev, pkt_len + 2))) {
                                pci_dma_sync_single_for_cpu(np->pdev,
                                                            desc_to_dma(desc),
                                                            np->rx_buf_sz,
@@ -904,7 +904,7 @@ receive_packet (struct net_device *dev)
                struct sk_buff *skb;
                /* Dropped packets don't need to re-allocate */
                if (np->rx_skbuff[entry] == NULL) {
-                       skb = dev_alloc_skb (np->rx_buf_sz);
+                       skb = netdev_alloc_skb(dev, np->rx_buf_sz);
                        if (skb == NULL) {
                                np->rx_ring[entry].fraginfo = 0;
                                printk (KERN_INFO
@@ -1316,9 +1316,10 @@ rio_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
                            ("%02x:cur:%08x next:%08x status:%08x frag1:%08x frag0:%08x",
                             i,
                             (u32) (np->tx_ring_dma + i * sizeof (*desc)),
-                            (u32) desc->next_desc,
-                            (u32) desc->status, (u32) (desc->fraginfo >> 32),
-                            (u32) desc->fraginfo);
+                            (u32)le64_to_cpu(desc->next_desc),
+                            (u32)le64_to_cpu(desc->status),
+                            (u32)(le64_to_cpu(desc->fraginfo) >> 32),
+                            (u32)le64_to_cpu(desc->fraginfo));
                        printk ("\n");
                }
                printk ("\n");
@@ -1455,8 +1456,8 @@ mii_get_media (struct net_device *dev)
 {
        __u16 negotiate;
        __u16 bmsr;
-       MSCR_t mscr;
-       MSSR_t mssr;
+       __u16 mscr;
+       __u16 mssr;
        int phy_addr;
        struct netdev_private *np;
 
@@ -1471,13 +1472,13 @@ mii_get_media (struct net_device *dev)
                }
                negotiate = mii_read (dev, phy_addr, MII_ANAR) &
                        mii_read (dev, phy_addr, MII_ANLPAR);
-               mscr.image = mii_read (dev, phy_addr, MII_MSCR);
-               mssr.image = mii_read (dev, phy_addr, MII_MSSR);
-               if (mscr.bits.media_1000BT_FD & mssr.bits.lp_1000BT_FD) {
+               mscr = mii_read (dev, phy_addr, MII_MSCR);
+               mssr = mii_read (dev, phy_addr, MII_MSSR);
+               if (mscr & MII_MSCR_1000BT_FD && mssr & MII_MSSR_LP_1000BT_FD) {
                        np->speed = 1000;
                        np->full_duplex = 1;
                        printk (KERN_INFO "Auto 1000 Mbps, Full duplex\n");
-               } else if (mscr.bits.media_1000BT_HD & mssr.bits.lp_1000BT_HD) {
+               } else if (mscr & MII_MSCR_1000BT_HD && mssr & MII_MSSR_LP_1000BT_HD) {
                        np->speed = 1000;
                        np->full_duplex = 0;
                        printk (KERN_INFO "Auto 1000 Mbps, Half duplex\n");
@@ -1539,7 +1540,7 @@ mii_get_media (struct net_device *dev)
 static int
 mii_set_media (struct net_device *dev)
 {
-       PHY_SCR_t pscr;
+       __u16 pscr;
        __u16 bmcr;
        __u16 bmsr;
        __u16 anar;
@@ -1572,9 +1573,9 @@ mii_set_media (struct net_device *dev)
                mii_write (dev, phy_addr, MII_ANAR, anar);
 
                /* Enable Auto crossover */
-               pscr.image = mii_read (dev, phy_addr, MII_PHY_SCR);
-               pscr.bits.mdi_crossover_mode = 3;       /* 11'b */
-               mii_write (dev, phy_addr, MII_PHY_SCR, pscr.image);
+               pscr = mii_read (dev, phy_addr, MII_PHY_SCR);
+               pscr |= 3 << 5; /* 11'b */
+               mii_write (dev, phy_addr, MII_PHY_SCR, pscr);
 
                /* Soft reset PHY */
                mii_write (dev, phy_addr, MII_BMCR, MII_BMCR_RESET);
@@ -1584,9 +1585,9 @@ mii_set_media (struct net_device *dev)
        } else {
                /* Force speed setting */
                /* 1) Disable Auto crossover */
-               pscr.image = mii_read (dev, phy_addr, MII_PHY_SCR);
-               pscr.bits.mdi_crossover_mode = 0;
-               mii_write (dev, phy_addr, MII_PHY_SCR, pscr.image);
+               pscr = mii_read (dev, phy_addr, MII_PHY_SCR);
+               pscr &= ~(3 << 5);
+               mii_write (dev, phy_addr, MII_PHY_SCR, pscr);
 
                /* 2) PHY Reset */
                bmcr = mii_read (dev, phy_addr, MII_BMCR);
@@ -1617,9 +1618,9 @@ mii_set_media (struct net_device *dev)
                }
 #if 0
                /* Set 1000BaseT Master/Slave setting */
-               mscr.image = mii_read (dev, phy_addr, MII_MSCR);
-               mscr.bits.cfg_enable = 1;
-               mscr.bits.cfg_value = 0;
+               mscr = mii_read (dev, phy_addr, MII_MSCR);
+               mscr |= MII_MSCR_CFG_ENABLE;
+               mscr &= ~MII_MSCR_CFG_VALUE = 0;
 #endif
                mii_write (dev, phy_addr, MII_BMCR, bmcr);
                mdelay(10);
@@ -1687,7 +1688,7 @@ static int
 mii_set_media_pcs (struct net_device *dev)
 {
        __u16 bmcr;
-       ESR_t esr;
+       __u16 esr;
        __u16 anar;
        int phy_addr;
        struct netdev_private *np;
@@ -1697,13 +1698,13 @@ mii_set_media_pcs (struct net_device *dev)
        /* Auto-Negotiation? */
        if (np->an_enable) {
                /* Advertise capabilities */
-               esr.image = mii_read (dev, phy_addr, PCS_ESR);
+               esr = mii_read (dev, phy_addr, PCS_ESR);
                anar = mii_read (dev, phy_addr, MII_ANAR) &
                        ~PCS_ANAR_HALF_DUPLEX &
                        ~PCS_ANAR_FULL_DUPLEX;
-               if (esr.bits.media_1000BT_HD | esr.bits.media_1000BX_HD)
+               if (esr & (MII_ESR_1000BT_HD | MII_ESR_1000BX_HD))
                        anar |= PCS_ANAR_HALF_DUPLEX;
-               if (esr.bits.media_1000BT_FD | esr.bits.media_1000BX_FD)
+               if (esr & (MII_ESR_1000BT_FD | MII_ESR_1000BX_FD))
                        anar |= PCS_ANAR_FULL_DUPLEX;
                anar |= PCS_ANAR_PAUSE | PCS_ANAR_ASYMMETRIC;
                mii_write (dev, phy_addr, MII_ANAR, anar);
@@ -1752,7 +1753,7 @@ rio_close (struct net_device *dev)
 
        /* Stop Tx and Rx logics */
        writel (TxDisable | RxDisable | StatsDisable, ioaddr + MACCtrl);
-       synchronize_irq (dev->irq);
+
        free_irq (dev->irq, dev);
        del_timer_sync (&np->timer);