mv643xx_eth: remove port serial status register bit defines
[safe/jmp/linux-2.6] / drivers / net / mv643xx_eth.c
index 3d9c412..6324556 100644 (file)
@@ -103,10 +103,18 @@ static char mv643xx_driver_version[] = "1.0";
 #define SDMA_CONFIG(p)                 (0x041c + ((p) << 10))
 #define PORT_SERIAL_CONTROL(p)         (0x043c + ((p) << 10))
 #define PORT_STATUS(p)                 (0x0444 + ((p) << 10))
+#define  TX_FIFO_EMPTY                 0x00000400
 #define TXQ_COMMAND(p)                 (0x0448 + ((p) << 10))
 #define TX_BW_MTU(p)                   (0x0458 + ((p) << 10))
 #define INT_CAUSE(p)                   (0x0460 + ((p) << 10))
+#define  INT_RX                                0x00000804
+#define  INT_EXT                       0x00000002
 #define INT_CAUSE_EXT(p)               (0x0464 + ((p) << 10))
+#define  INT_EXT_LINK                  0x00100000
+#define  INT_EXT_PHY                   0x00010000
+#define  INT_EXT_TX_ERROR_0            0x00000100
+#define  INT_EXT_TX_0                  0x00000001
+#define  INT_EXT_TX                    0x00000101
 #define INT_MASK(p)                    (0x0468 + ((p) << 10))
 #define INT_MASK_EXT(p)                        (0x046c + ((p) << 10))
 #define TX_FIFO_URGENT_THRESHOLD(p)    (0x0474 + ((p) << 10))
@@ -118,201 +126,50 @@ static char mv643xx_driver_version[] = "1.0";
 #define OTHER_MCAST_TABLE(p)           (0x1500 + ((p) << 10))
 #define UNICAST_TABLE(p)               (0x1600 + ((p) << 10))
 
-/* These macros describe Ethernet Port Sdma configuration reg (SDCR) bits */
-#define RIFB                           (1 << 0)
-#define RX_BURST_SIZE_1_64BIT          (0 << 1)
-#define RX_BURST_SIZE_2_64BIT          (1 << 1)
+
+/*
+ * SDMA configuration register.
+ */
 #define RX_BURST_SIZE_4_64BIT          (2 << 1)
-#define RX_BURST_SIZE_8_64BIT          (3 << 1)
-#define RX_BURST_SIZE_16_64BIT         (4 << 1)
 #define BLM_RX_NO_SWAP                 (1 << 4)
-#define BLM_RX_BYTE_SWAP               (0 << 4)
 #define BLM_TX_NO_SWAP                 (1 << 5)
-#define BLM_TX_BYTE_SWAP               (0 << 5)
-#define DESCRIPTORS_BYTE_SWAP          (1 << 6)
-#define DESCRIPTORS_NO_SWAP            (0 << 6)
-#define IPG_INT_RX(value)              (((value) & 0x3fff) << 8)
-#define TX_BURST_SIZE_1_64BIT          (0 << 22)
-#define TX_BURST_SIZE_2_64BIT          (1 << 22)
 #define TX_BURST_SIZE_4_64BIT          (2 << 22)
-#define TX_BURST_SIZE_8_64BIT          (3 << 22)
-#define TX_BURST_SIZE_16_64BIT         (4 << 22)
 
 #if defined(__BIG_ENDIAN)
 #define PORT_SDMA_CONFIG_DEFAULT_VALUE         \
                RX_BURST_SIZE_4_64BIT   |       \
-               IPG_INT_RX(0)           |       \
                TX_BURST_SIZE_4_64BIT
 #elif defined(__LITTLE_ENDIAN)
 #define PORT_SDMA_CONFIG_DEFAULT_VALUE         \
                RX_BURST_SIZE_4_64BIT   |       \
                BLM_RX_NO_SWAP          |       \
                BLM_TX_NO_SWAP          |       \
-               IPG_INT_RX(0)           |       \
                TX_BURST_SIZE_4_64BIT
 #else
 #error One of __BIG_ENDIAN or __LITTLE_ENDIAN must be defined
 #endif
 
-/* These macros describe Ethernet Port serial control reg (PSCR) bits */
-#define SERIAL_PORT_DISABLE                    (0 << 0)
-#define SERIAL_PORT_ENABLE                     (1 << 0)
-#define DO_NOT_FORCE_LINK_PASS                 (0 << 1)
-#define FORCE_LINK_PASS                                (1 << 1)
-#define ENABLE_AUTO_NEG_FOR_DUPLX              (0 << 2)
-#define DISABLE_AUTO_NEG_FOR_DUPLX             (1 << 2)
-#define ENABLE_AUTO_NEG_FOR_FLOW_CTRL          (0 << 3)
-#define DISABLE_AUTO_NEG_FOR_FLOW_CTRL         (1 << 3)
-#define ADV_NO_FLOW_CTRL                       (0 << 4)
-#define ADV_SYMMETRIC_FLOW_CTRL                        (1 << 4)
-#define FORCE_FC_MODE_NO_PAUSE_DIS_TX          (0 << 5)
-#define FORCE_FC_MODE_TX_PAUSE_DIS             (1 << 5)
-#define FORCE_BP_MODE_NO_JAM                   (0 << 7)
-#define FORCE_BP_MODE_JAM_TX                   (1 << 7)
-#define FORCE_BP_MODE_JAM_TX_ON_RX_ERR         (2 << 7)
-#define SERIAL_PORT_CONTROL_RESERVED           (1 << 9)
-#define FORCE_LINK_FAIL                                (0 << 10)
-#define DO_NOT_FORCE_LINK_FAIL                 (1 << 10)
-#define RETRANSMIT_16_ATTEMPTS                 (0 << 11)
-#define RETRANSMIT_FOREVER                     (1 << 11)
-#define ENABLE_AUTO_NEG_SPEED_GMII             (0 << 13)
-#define DISABLE_AUTO_NEG_SPEED_GMII            (1 << 13)
-#define DTE_ADV_0                              (0 << 14)
-#define DTE_ADV_1                              (1 << 14)
-#define DISABLE_AUTO_NEG_BYPASS                        (0 << 15)
-#define ENABLE_AUTO_NEG_BYPASS                 (1 << 15)
-#define AUTO_NEG_NO_CHANGE                     (0 << 16)
-#define RESTART_AUTO_NEG                       (1 << 16)
-#define MAX_RX_PACKET_1518BYTE                 (0 << 17)
+
+/*
+ * Port serial control register.
+ */
+#define SET_MII_SPEED_TO_100                   (1 << 24)
+#define SET_GMII_SPEED_TO_1000                 (1 << 23)
+#define SET_FULL_DUPLEX_MODE                   (1 << 21)
 #define MAX_RX_PACKET_1522BYTE                 (1 << 17)
-#define MAX_RX_PACKET_1552BYTE                 (2 << 17)
-#define MAX_RX_PACKET_9022BYTE                 (3 << 17)
-#define MAX_RX_PACKET_9192BYTE                 (4 << 17)
 #define MAX_RX_PACKET_9700BYTE                 (5 << 17)
 #define MAX_RX_PACKET_MASK                     (7 << 17)
-#define CLR_EXT_LOOPBACK                       (0 << 20)
-#define SET_EXT_LOOPBACK                       (1 << 20)
-#define SET_HALF_DUPLEX_MODE                   (0 << 21)
-#define SET_FULL_DUPLEX_MODE                   (1 << 21)
-#define DISABLE_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX (0 << 22)
-#define ENABLE_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX  (1 << 22)
-#define SET_GMII_SPEED_TO_10_100               (0 << 23)
-#define SET_GMII_SPEED_TO_1000                 (1 << 23)
-#define SET_MII_SPEED_TO_10                    (0 << 24)
-#define SET_MII_SPEED_TO_100                   (1 << 24)
-
-#define PORT_SERIAL_CONTROL_DEFAULT_VALUE              \
-               DO_NOT_FORCE_LINK_PASS          |       \
-               ENABLE_AUTO_NEG_FOR_DUPLX       |       \
-               DISABLE_AUTO_NEG_FOR_FLOW_CTRL  |       \
-               ADV_SYMMETRIC_FLOW_CTRL         |       \
-               FORCE_FC_MODE_NO_PAUSE_DIS_TX   |       \
-               FORCE_BP_MODE_NO_JAM            |       \
-               (1 << 9) /* reserved */         |       \
-               DO_NOT_FORCE_LINK_FAIL          |       \
-               RETRANSMIT_16_ATTEMPTS          |       \
-               ENABLE_AUTO_NEG_SPEED_GMII      |       \
-               DTE_ADV_0                       |       \
-               DISABLE_AUTO_NEG_BYPASS         |       \
-               AUTO_NEG_NO_CHANGE              |       \
-               MAX_RX_PACKET_9700BYTE          |       \
-               CLR_EXT_LOOPBACK                |       \
-               SET_FULL_DUPLEX_MODE            |       \
-               ENABLE_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX
-
-/* These macros describe Ethernet Serial Status reg (PSR) bits */
-#define PORT_STATUS_MODE_10_BIT                (1 << 0)
-#define PORT_STATUS_LINK_UP            (1 << 1)
-#define PORT_STATUS_FULL_DUPLEX                (1 << 2)
-#define PORT_STATUS_FLOW_CONTROL       (1 << 3)
-#define PORT_STATUS_GMII_1000          (1 << 4)
-#define PORT_STATUS_MII_100            (1 << 5)
-/* PSR bit 6 is undocumented */
-#define PORT_STATUS_TX_IN_PROGRESS     (1 << 7)
-#define PORT_STATUS_AUTONEG_BYPASSED   (1 << 8)
-#define PORT_STATUS_PARTITION          (1 << 9)
-#define PORT_STATUS_TX_FIFO_EMPTY      (1 << 10)
-/* PSR bits 11-31 are reserved */
+#define DISABLE_AUTO_NEG_SPEED_GMII            (1 << 13)
+#define DO_NOT_FORCE_LINK_FAIL                 (1 << 10)
+#define SERIAL_PORT_CONTROL_RESERVED           (1 << 9)
+#define DISABLE_AUTO_NEG_FOR_FLOW_CTRL         (1 << 3)
+#define DISABLE_AUTO_NEG_FOR_DUPLEX            (1 << 2)
+#define FORCE_LINK_PASS                                (1 << 1)
+#define SERIAL_PORT_ENABLE                     (1 << 0)
 
 #define PORT_DEFAULT_TRANSMIT_QUEUE_SIZE       800
 #define PORT_DEFAULT_RECEIVE_QUEUE_SIZE                400
 
-#define DESC_SIZE                              64
-
-#define ETH_RX_QUEUES_ENABLED  (1 << 0)        /* use only Q0 for receive */
-#define ETH_TX_QUEUES_ENABLED  (1 << 0)        /* use only Q0 for transmit */
-
-#define ETH_INT_CAUSE_RX_DONE  (ETH_RX_QUEUES_ENABLED << 2)
-#define ETH_INT_CAUSE_RX_ERROR (ETH_RX_QUEUES_ENABLED << 9)
-#define ETH_INT_CAUSE_RX       (ETH_INT_CAUSE_RX_DONE | ETH_INT_CAUSE_RX_ERROR)
-#define ETH_INT_CAUSE_EXT      0x00000002
-#define ETH_INT_UNMASK_ALL     (ETH_INT_CAUSE_RX | ETH_INT_CAUSE_EXT)
-
-#define ETH_INT_CAUSE_TX_DONE  (ETH_TX_QUEUES_ENABLED << 0)
-#define ETH_INT_CAUSE_TX_ERROR (ETH_TX_QUEUES_ENABLED << 8)
-#define ETH_INT_CAUSE_TX       (ETH_INT_CAUSE_TX_DONE | ETH_INT_CAUSE_TX_ERROR)
-#define ETH_INT_CAUSE_PHY      0x00010000
-#define ETH_INT_CAUSE_STATE    0x00100000
-#define ETH_INT_UNMASK_ALL_EXT (ETH_INT_CAUSE_TX | ETH_INT_CAUSE_PHY | \
-                                       ETH_INT_CAUSE_STATE)
-
-#define ETH_INT_MASK_ALL       0x00000000
-#define ETH_INT_MASK_ALL_EXT   0x00000000
-
-#define PHY_WAIT_ITERATIONS    1000    /* 1000 iterations * 10uS = 10mS max */
-#define PHY_WAIT_MICRO_SECONDS 10
-
-/* Buffer offset from buffer pointer */
-#define RX_BUF_OFFSET                          0x2
-
-/* Gigabit Ethernet Unit Global Registers */
-
-/* MIB Counters register definitions */
-#define ETH_MIB_GOOD_OCTETS_RECEIVED_LOW       0x0
-#define ETH_MIB_GOOD_OCTETS_RECEIVED_HIGH      0x4
-#define ETH_MIB_BAD_OCTETS_RECEIVED            0x8
-#define ETH_MIB_INTERNAL_MAC_TRANSMIT_ERR      0xc
-#define ETH_MIB_GOOD_FRAMES_RECEIVED           0x10
-#define ETH_MIB_BAD_FRAMES_RECEIVED            0x14
-#define ETH_MIB_BROADCAST_FRAMES_RECEIVED      0x18
-#define ETH_MIB_MULTICAST_FRAMES_RECEIVED      0x1c
-#define ETH_MIB_FRAMES_64_OCTETS               0x20
-#define ETH_MIB_FRAMES_65_TO_127_OCTETS                0x24
-#define ETH_MIB_FRAMES_128_TO_255_OCTETS       0x28
-#define ETH_MIB_FRAMES_256_TO_511_OCTETS       0x2c
-#define ETH_MIB_FRAMES_512_TO_1023_OCTETS      0x30
-#define ETH_MIB_FRAMES_1024_TO_MAX_OCTETS      0x34
-#define ETH_MIB_GOOD_OCTETS_SENT_LOW           0x38
-#define ETH_MIB_GOOD_OCTETS_SENT_HIGH          0x3c
-#define ETH_MIB_GOOD_FRAMES_SENT               0x40
-#define ETH_MIB_EXCESSIVE_COLLISION            0x44
-#define ETH_MIB_MULTICAST_FRAMES_SENT          0x48
-#define ETH_MIB_BROADCAST_FRAMES_SENT          0x4c
-#define ETH_MIB_UNREC_MAC_CONTROL_RECEIVED     0x50
-#define ETH_MIB_FC_SENT                                0x54
-#define ETH_MIB_GOOD_FC_RECEIVED               0x58
-#define ETH_MIB_BAD_FC_RECEIVED                        0x5c
-#define ETH_MIB_UNDERSIZE_RECEIVED             0x60
-#define ETH_MIB_FRAGMENTS_RECEIVED             0x64
-#define ETH_MIB_OVERSIZE_RECEIVED              0x68
-#define ETH_MIB_JABBER_RECEIVED                        0x6c
-#define ETH_MIB_MAC_RECEIVE_ERROR              0x70
-#define ETH_MIB_BAD_CRC_EVENT                  0x74
-#define ETH_MIB_COLLISION                      0x78
-#define ETH_MIB_LATE_COLLISION                 0x7c
-
-/* Port serial status reg (PSR) */
-#define ETH_INTERFACE_PCM                      0x00000001
-#define ETH_LINK_IS_UP                         0x00000002
-#define ETH_PORT_AT_FULL_DUPLEX                        0x00000004
-#define ETH_RX_FLOW_CTRL_ENABLED               0x00000008
-#define ETH_GMII_SPEED_1000                    0x00000010
-#define ETH_MII_SPEED_100                      0x00000020
-#define ETH_TX_IN_PROGRESS                     0x00000080
-#define ETH_BYPASS_ACTIVE                      0x00000100
-#define ETH_PORT_AT_PARTITION_STATE            0x00000200
-#define ETH_PORT_TX_FIFO_EMPTY                 0x00000400
-
 /* SMI reg */
 #define ETH_SMI_BUSY           0x10000000      /* 0 - Write, 1 - Read  */
 #define ETH_SMI_READ_VALID     0x08000000      /* 0 - Write, 1 - Read  */
@@ -574,7 +431,7 @@ static unsigned int mv643xx_eth_port_disable_rx(struct mv643xx_private *mp)
                /* Wait for all Rx activity to terminate. */
                /* Check port cause register that all Rx queues are stopped */
                while (rdl(mp, RXQ_COMMAND(port_num)) & 0xFF)
-                       udelay(PHY_WAIT_MICRO_SECONDS);
+                       udelay(10);
        }
 
        return queues;
@@ -600,11 +457,11 @@ static unsigned int mv643xx_eth_port_disable_tx(struct mv643xx_private *mp)
                /* Wait for all Tx activity to terminate. */
                /* Check port cause register that all Tx queues are stopped */
                while (rdl(mp, TXQ_COMMAND(port_num)) & 0xFF)
-                       udelay(PHY_WAIT_MICRO_SECONDS);
+                       udelay(10);
 
                /* Wait for Tx FIFO to empty */
-               while (rdl(mp, PORT_STATUS(port_num)) & ETH_PORT_TX_FIFO_EMPTY)
-                       udelay(PHY_WAIT_MICRO_SECONDS);
+               while (rdl(mp, PORT_STATUS(port_num)) & TX_FIFO_EMPTY)
+                       udelay(10);
        }
 
        return queues;
@@ -784,9 +641,9 @@ static ETH_FUNC_RET_STATUS eth_port_receive(struct mv643xx_private *mp,
                return ETH_END_OF_JOB;
        }
 
-       p_pkt_info->byte_cnt = (p_rx_desc->byte_cnt) - RX_BUF_OFFSET;
+       p_pkt_info->byte_cnt = p_rx_desc->byte_cnt - ETH_HW_IP_ALIGN;
        p_pkt_info->cmd_sts = command_status;
-       p_pkt_info->buf_ptr = (p_rx_desc->buf_ptr) + RX_BUF_OFFSET;
+       p_pkt_info->buf_ptr = p_rx_desc->buf_ptr + ETH_HW_IP_ALIGN;
        p_pkt_info->return_info = mp->rx_skb[rx_curr_desc];
        p_pkt_info->l4i_chk = p_rx_desc->buf_size;
 
@@ -918,7 +775,7 @@ static int mv643xx_poll(struct napi_struct *napi, int budget)
                netif_rx_complete(dev, napi);
                wrl(mp, INT_CAUSE(port_num), 0);
                wrl(mp, INT_CAUSE_EXT(port_num), 0);
-               wrl(mp, INT_MASK(port_num), ETH_INT_UNMASK_ALL);
+               wrl(mp, INT_MASK(port_num), INT_RX | INT_EXT);
        }
 
        return work_done;
@@ -1074,7 +931,7 @@ static void eth_tx_submit_descs_for_skb(struct mv643xx_private *mp,
 
        /* ensure all descriptors are written before poking hardware */
        wmb();
-       mv643xx_eth_port_enable_tx(mp, ETH_TX_QUEUES_ENABLED);
+       mv643xx_eth_port_enable_tx(mp, 1);
 
        mp->tx_desc_count += nr_frags + 1;
 }
@@ -1157,11 +1014,11 @@ static void eth_port_read_smi_reg(struct mv643xx_private *mp,
 
        /* wait for the SMI register to become available */
        for (i = 0; readl(smi_reg) & ETH_SMI_BUSY; i++) {
-               if (i == PHY_WAIT_ITERATIONS) {
+               if (i == 1000) {
                        printk("%s: PHY busy timeout\n", mp->dev->name);
                        goto out;
                }
-               udelay(PHY_WAIT_MICRO_SECONDS);
+               udelay(10);
        }
 
        writel((phy_addr << 16) | (phy_reg << 21) | ETH_SMI_OPCODE_READ,
@@ -1169,11 +1026,11 @@ static void eth_port_read_smi_reg(struct mv643xx_private *mp,
 
        /* now wait for the data to be valid */
        for (i = 0; !(readl(smi_reg) & ETH_SMI_READ_VALID); i++) {
-               if (i == PHY_WAIT_ITERATIONS) {
+               if (i == 1000) {
                        printk("%s: PHY read timeout\n", mp->dev->name);
                        goto out;
                }
-               udelay(PHY_WAIT_MICRO_SECONDS);
+               udelay(10);
        }
 
        *value = readl(smi_reg) & 0xffff;
@@ -1214,11 +1071,11 @@ static void eth_port_write_smi_reg(struct mv643xx_private *mp,
 
        /* wait for the SMI register to become available */
        for (i = 0; readl(smi_reg) & ETH_SMI_BUSY; i++) {
-               if (i == PHY_WAIT_ITERATIONS) {
+               if (i == 1000) {
                        printk("%s: PHY busy timeout\n", mp->dev->name);
                        goto out;
                }
-               udelay(PHY_WAIT_MICRO_SECONDS);
+               udelay(10);
        }
 
        writel((phy_addr << 16) | (phy_reg << 21) |
@@ -1252,8 +1109,7 @@ static void eth_clear_mib_counters(struct mv643xx_private *mp)
        int i;
 
        /* Perform dummy reads from MIB counters */
-       for (i = ETH_MIB_GOOD_OCTETS_RECEIVED_LOW; i < ETH_MIB_LATE_COLLISION;
-                                                                       i += 4)
+       for (i = 0; i < 0x80; i += 4)
                rdl(mp, MIB_COUNTERS(port_num) + i);
 }
 
@@ -1265,26 +1121,39 @@ static inline u32 read_mib(struct mv643xx_private *mp, int offset)
 static void eth_update_mib_counters(struct mv643xx_private *mp)
 {
        struct mv643xx_mib_counters *p = &mp->mib_counters;
-       int offset;
-
-       p->good_octets_received +=
-               read_mib(mp, ETH_MIB_GOOD_OCTETS_RECEIVED_LOW);
-       p->good_octets_received +=
-               (u64)read_mib(mp, ETH_MIB_GOOD_OCTETS_RECEIVED_HIGH) << 32;
-
-       for (offset = ETH_MIB_BAD_OCTETS_RECEIVED;
-                       offset <= ETH_MIB_FRAMES_1024_TO_MAX_OCTETS;
-                       offset += 4)
-               *(u32 *)((char *)p + offset) += read_mib(mp, offset);
-
-       p->good_octets_sent += read_mib(mp, ETH_MIB_GOOD_OCTETS_SENT_LOW);
-       p->good_octets_sent +=
-               (u64)read_mib(mp, ETH_MIB_GOOD_OCTETS_SENT_HIGH) << 32;
 
-       for (offset = ETH_MIB_GOOD_FRAMES_SENT;
-                       offset <= ETH_MIB_LATE_COLLISION;
-                       offset += 4)
-               *(u32 *)((char *)p + offset) += read_mib(mp, offset);
+       p->good_octets_received += read_mib(mp, 0x00);
+       p->good_octets_received += (u64)read_mib(mp, 0x04) << 32;
+       p->bad_octets_received += read_mib(mp, 0x08);
+       p->internal_mac_transmit_err += read_mib(mp, 0x0c);
+       p->good_frames_received += read_mib(mp, 0x10);
+       p->bad_frames_received += read_mib(mp, 0x14);
+       p->broadcast_frames_received += read_mib(mp, 0x18);
+       p->multicast_frames_received += read_mib(mp, 0x1c);
+       p->frames_64_octets += read_mib(mp, 0x20);
+       p->frames_65_to_127_octets += read_mib(mp, 0x24);
+       p->frames_128_to_255_octets += read_mib(mp, 0x28);
+       p->frames_256_to_511_octets += read_mib(mp, 0x2c);
+       p->frames_512_to_1023_octets += read_mib(mp, 0x30);
+       p->frames_1024_to_max_octets += read_mib(mp, 0x34);
+       p->good_octets_sent += read_mib(mp, 0x38);
+       p->good_octets_sent += (u64)read_mib(mp, 0x3c) << 32;
+       p->good_frames_sent += read_mib(mp, 0x40);
+       p->excessive_collision += read_mib(mp, 0x44);
+       p->multicast_frames_sent += read_mib(mp, 0x48);
+       p->broadcast_frames_sent += read_mib(mp, 0x4c);
+       p->unrec_mac_control_received += read_mib(mp, 0x50);
+       p->fc_sent += read_mib(mp, 0x54);
+       p->good_fc_received += read_mib(mp, 0x58);
+       p->bad_fc_received += read_mib(mp, 0x5c);
+       p->undersize_received += read_mib(mp, 0x60);
+       p->fragments_received += read_mib(mp, 0x64);
+       p->oversize_received += read_mib(mp, 0x68);
+       p->jabber_received += read_mib(mp, 0x6c);
+       p->mac_receive_error += read_mib(mp, 0x70);
+       p->bad_crc_event += read_mib(mp, 0x74);
+       p->collision += read_mib(mp, 0x78);
+       p->late_collision += read_mib(mp, 0x7c);
 }
 
 
@@ -2057,21 +1926,21 @@ static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id)
        unsigned int port_num = mp->port_num;
 
        /* Read interrupt cause registers */
-       eth_int_cause = rdl(mp, INT_CAUSE(port_num)) & ETH_INT_UNMASK_ALL;
-       if (eth_int_cause & ETH_INT_CAUSE_EXT) {
+       eth_int_cause = rdl(mp, INT_CAUSE(port_num)) & (INT_RX | INT_EXT);
+       if (eth_int_cause & INT_EXT) {
                eth_int_cause_ext = rdl(mp, INT_CAUSE_EXT(port_num))
-                                               & ETH_INT_UNMASK_ALL_EXT;
+                               & (INT_EXT_LINK | INT_EXT_PHY | INT_EXT_TX);
                wrl(mp, INT_CAUSE_EXT(port_num), ~eth_int_cause_ext);
        }
 
        /* PHY status changed */
-       if (eth_int_cause_ext & (ETH_INT_CAUSE_PHY | ETH_INT_CAUSE_STATE)) {
+       if (eth_int_cause_ext & (INT_EXT_LINK | INT_EXT_PHY)) {
                struct ethtool_cmd cmd;
 
                if (mii_link_ok(&mp->mii)) {
                        mii_ethtool_gset(&mp->mii, &cmd);
                        mv643xx_eth_update_pscr(dev, &cmd);
-                       mv643xx_eth_port_enable_tx(mp, ETH_TX_QUEUES_ENABLED);
+                       mv643xx_eth_port_enable_tx(mp, 1);
                        if (!netif_carrier_ok(dev)) {
                                netif_carrier_on(dev);
                                if (mp->tx_ring_size - mp->tx_desc_count >=
@@ -2085,9 +1954,9 @@ static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id)
        }
 
 #ifdef MV643XX_NAPI
-       if (eth_int_cause & ETH_INT_CAUSE_RX) {
+       if (eth_int_cause & INT_RX) {
                /* schedule the NAPI poll routine to maintain port */
-               wrl(mp, INT_MASK(port_num), ETH_INT_MASK_ALL);
+               wrl(mp, INT_MASK(port_num), 0x00000000);
 
                /* wait for previous write to complete */
                rdl(mp, INT_MASK(port_num));
@@ -2095,10 +1964,10 @@ static irqreturn_t mv643xx_eth_int_handler(int irq, void *dev_id)
                netif_rx_schedule(dev, &mp->napi);
        }
 #else
-       if (eth_int_cause & ETH_INT_CAUSE_RX)
+       if (eth_int_cause & INT_RX)
                mv643xx_eth_receive_queue(dev, INT_MAX);
 #endif
-       if (eth_int_cause_ext & ETH_INT_CAUSE_TX)
+       if (eth_int_cause_ext & INT_EXT_TX)
                mv643xx_eth_free_completed_tx_descs(dev);
 
        /*
@@ -2209,7 +2078,7 @@ static void eth_port_start(struct net_device *dev)
 
        pscr |= DISABLE_AUTO_NEG_FOR_FLOW_CTRL |
                DISABLE_AUTO_NEG_SPEED_GMII    |
-               DISABLE_AUTO_NEG_FOR_DUPL    |
+               DISABLE_AUTO_NEG_FOR_DUPLEX    |
                DO_NOT_FORCE_LINK_FAIL     |
                SERIAL_PORT_CONTROL_RESERVED;
 
@@ -2222,7 +2091,7 @@ static void eth_port_start(struct net_device *dev)
        wrl(mp, SDMA_CONFIG(port_num), PORT_SDMA_CONFIG_DEFAULT_VALUE);
 
        /* Enable port Rx. */
-       mv643xx_eth_port_enable_rx(mp, ETH_RX_QUEUES_ENABLED);
+       mv643xx_eth_port_enable_rx(mp, 1);
 
        /* Disable port bandwidth limits by clearing MTU register */
        wrl(mp, TX_BW_MTU(port_num), 0);
@@ -2469,10 +2338,10 @@ static int mv643xx_eth_open(struct net_device *dev)
                eth_port_set_tx_coal(mp, MV643XX_TX_COAL);
 
        /* Unmask phy and link status changes interrupts */
-       wrl(mp, INT_MASK_EXT(port_num), ETH_INT_UNMASK_ALL_EXT);
+       wrl(mp, INT_MASK_EXT(port_num), INT_EXT_LINK | INT_EXT_PHY | INT_EXT_TX);
 
        /* Unmask RX buffer and TX end interrupt */
-       wrl(mp, INT_MASK(port_num), ETH_INT_UNMASK_ALL);
+       wrl(mp, INT_MASK(port_num), INT_RX | INT_EXT);
 
        return 0;
 
@@ -2539,7 +2408,7 @@ static int mv643xx_eth_stop(struct net_device *dev)
        unsigned int port_num = mp->port_num;
 
        /* Mask all interrupts on ethernet port */
-       wrl(mp, INT_MASK(port_num), ETH_INT_MASK_ALL);
+       wrl(mp, INT_MASK(port_num), 0x00000000);
        /* wait for previous write to complete */
        rdl(mp, INT_MASK(port_num));
 
@@ -2644,13 +2513,13 @@ static void mv643xx_netpoll(struct net_device *netdev)
        struct mv643xx_private *mp = netdev_priv(netdev);
        int port_num = mp->port_num;
 
-       wrl(mp, INT_MASK(port_num), ETH_INT_MASK_ALL);
+       wrl(mp, INT_MASK(port_num), 0x00000000);
        /* wait for previous write to complete */
        rdl(mp, INT_MASK(port_num));
 
        mv643xx_eth_int_handler(netdev->irq, netdev);
 
-       wrl(mp, INT_MASK(port_num), ETH_INT_UNMASK_ALL);
+       wrl(mp, INT_MASK(port_num), INT_RX | INT_CAUSE_EXT);
 }
 #endif