#include <linux/crc32.h>
 #include <linux/errno.h>
 #include <linux/ethtool.h>
+#include <linux/mii.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/skbuff.h>
 
                /* Reset the PHY. */
                bp->sw_bmcr     = (BMCR_ISOLATE | BMCR_PDOWN | BMCR_LOOPBACK);
-               bigmac_tcvr_write(bp, tregs, BIGMAC_BMCR, bp->sw_bmcr);
+               bigmac_tcvr_write(bp, tregs, MII_BMCR, bp->sw_bmcr);
                bp->sw_bmcr     = (BMCR_RESET);
-               bigmac_tcvr_write(bp, tregs, BIGMAC_BMCR, bp->sw_bmcr);
+               bigmac_tcvr_write(bp, tregs, MII_BMCR, bp->sw_bmcr);
 
                timeout = 64;
                while (--timeout) {
-                       bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, BIGMAC_BMCR);
+                       bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, MII_BMCR);
                        if ((bp->sw_bmcr & BMCR_RESET) == 0)
                                break;
                        udelay(20);
                if (timeout == 0)
                        printk(KERN_ERR "%s: PHY reset failed.\n", bp->dev->name);
 
-               bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, BIGMAC_BMCR);
+               bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, MII_BMCR);
 
                /* Now we try 10baseT. */
                bp->sw_bmcr &= ~(BMCR_SPEED100);
-               bigmac_tcvr_write(bp, tregs, BIGMAC_BMCR, bp->sw_bmcr);
+               bigmac_tcvr_write(bp, tregs, MII_BMCR, bp->sw_bmcr);
                return 0;
        }
 
 
        bp->timer_ticks++;
        if (bp->timer_state == ltrywait) {
-               bp->sw_bmsr = bigmac_tcvr_read(bp, tregs, BIGMAC_BMSR);
-               bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, BIGMAC_BMCR);
+               bp->sw_bmsr = bigmac_tcvr_read(bp, tregs, MII_BMSR);
+               bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, MII_BMCR);
                if (bp->sw_bmsr & BMSR_LSTATUS) {
                        printk(KERN_INFO "%s: Link is now up at %s.\n",
                               bp->dev->name,
        int timeout;
 
        /* Grab new software copies of PHY registers. */
-       bp->sw_bmsr     = bigmac_tcvr_read(bp, tregs, BIGMAC_BMSR);
-       bp->sw_bmcr     = bigmac_tcvr_read(bp, tregs, BIGMAC_BMCR);
+       bp->sw_bmsr     = bigmac_tcvr_read(bp, tregs, MII_BMSR);
+       bp->sw_bmcr     = bigmac_tcvr_read(bp, tregs, MII_BMCR);
 
        /* Reset the PHY. */
        bp->sw_bmcr     = (BMCR_ISOLATE | BMCR_PDOWN | BMCR_LOOPBACK);
-       bigmac_tcvr_write(bp, tregs, BIGMAC_BMCR, bp->sw_bmcr);
+       bigmac_tcvr_write(bp, tregs, MII_BMCR, bp->sw_bmcr);
        bp->sw_bmcr     = (BMCR_RESET);
-       bigmac_tcvr_write(bp, tregs, BIGMAC_BMCR, bp->sw_bmcr);
+       bigmac_tcvr_write(bp, tregs, MII_BMCR, bp->sw_bmcr);
 
        timeout = 64;
        while (--timeout) {
-               bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, BIGMAC_BMCR);
+               bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, MII_BMCR);
                if ((bp->sw_bmcr & BMCR_RESET) == 0)
                        break;
                udelay(20);
        if (timeout == 0)
                printk(KERN_ERR "%s: PHY reset failed.\n", bp->dev->name);
 
-       bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, BIGMAC_BMCR);
+       bp->sw_bmcr = bigmac_tcvr_read(bp, tregs, MII_BMCR);
 
        /* First we try 100baseT. */
        bp->sw_bmcr |= BMCR_SPEED100;
-       bigmac_tcvr_write(bp, tregs, BIGMAC_BMCR, bp->sw_bmcr);
+       bigmac_tcvr_write(bp, tregs, MII_BMCR, bp->sw_bmcr);
 
        bp->timer_state = ltrywait;
        bp->timer_ticks = 0;
        struct bigmac *bp = netdev_priv(dev);
 
        spin_lock_irq(&bp->lock);
-       bp->sw_bmsr = bigmac_tcvr_read(bp, bp->tregs, BIGMAC_BMSR);
+       bp->sw_bmsr = bigmac_tcvr_read(bp, bp->tregs, MII_BMSR);
        spin_unlock_irq(&bp->lock);
 
        return (bp->sw_bmsr & BMSR_LSTATUS);