NetXen: Removal of redundant argument passing
[cascardo/linux.git] / drivers / net / netxen / netxen_nic_niu.c
index f6befc3..ad2486f 100644 (file)
@@ -88,12 +88,13 @@ static inline int phy_unlock(struct netxen_adapter *adapter)
  *       -1 on error
  *
  */
-int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long phy,
-                           long reg, __u32 * readval)
+int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long reg, 
+                               __u32 * readval)
 {
        long timeout = 0;
        long result = 0;
        long restore = 0;
+       long phy = adapter->portnum;
        __u32 address;
        __u32 command;
        __u32 status;
@@ -183,12 +184,13 @@ int netxen_niu_gbe_phy_read(struct netxen_adapter *adapter, long phy,
  *       -1 on error
  *
  */
-int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter,
-                            long phy, long reg, __u32 val)
+int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter, long reg, 
+                               __u32 val)
 {
        long timeout = 0;
        long result = 0;
        long restore = 0;
+       long phy = adapter->portnum;
        __u32 address;
        __u32 command;
        __u32 status;
@@ -258,15 +260,13 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter,
        return result;
 }
 
-int netxen_niu_xgbe_enable_phy_interrupts(struct netxen_adapter *adapter,
-                                         int port)
+int netxen_niu_xgbe_enable_phy_interrupts(struct netxen_adapter *adapter)
 {
        netxen_crb_writelit_adapter(adapter, NETXEN_NIU_INT_MASK, 0x3f);
        return 0;
 }
 
-int netxen_niu_gbe_enable_phy_interrupts(struct netxen_adapter *adapter,
-                                        int port)
+int netxen_niu_gbe_enable_phy_interrupts(struct netxen_adapter *adapter)
 {
        int result = 0;
        __u32 enable = 0;
@@ -275,7 +275,7 @@ int netxen_niu_gbe_enable_phy_interrupts(struct netxen_adapter *adapter,
        netxen_set_phy_int_speed_changed(enable);
 
        if (0 !=
-           netxen_niu_gbe_phy_write(adapter, port,
+           netxen_niu_gbe_phy_write(adapter, 
                                     NETXEN_NIU_GB_MII_MGMT_ADDR_INT_ENABLE,
                                     enable))
                result = -EIO;
@@ -283,38 +283,34 @@ int netxen_niu_gbe_enable_phy_interrupts(struct netxen_adapter *adapter,
        return result;
 }
 
-int netxen_niu_xgbe_disable_phy_interrupts(struct netxen_adapter *adapter,
-                                          int port)
+int netxen_niu_xgbe_disable_phy_interrupts(struct netxen_adapter *adapter)
 {
        netxen_crb_writelit_adapter(adapter, NETXEN_NIU_INT_MASK, 0x7f);
        return 0;
 }
 
-int netxen_niu_gbe_disable_phy_interrupts(struct netxen_adapter *adapter,
-                                         int port)
+int netxen_niu_gbe_disable_phy_interrupts(struct netxen_adapter *adapter)
 {
        int result = 0;
        if (0 !=
-           netxen_niu_gbe_phy_write(adapter, port,
+           netxen_niu_gbe_phy_write(adapter,
                                     NETXEN_NIU_GB_MII_MGMT_ADDR_INT_ENABLE, 0))
                result = -EIO;
 
        return result;
 }
 
-int netxen_niu_xgbe_clear_phy_interrupts(struct netxen_adapter *adapter,
-                                        int port)
+int netxen_niu_xgbe_clear_phy_interrupts(struct netxen_adapter *adapter)
 {
        netxen_crb_writelit_adapter(adapter, NETXEN_NIU_ACTIVE_INT, -1);
        return 0;
 }
 
-int netxen_niu_gbe_clear_phy_interrupts(struct netxen_adapter *adapter,
-                                       int port)
+int netxen_niu_gbe_clear_phy_interrupts(struct netxen_adapter *adapter)
 {
        int result = 0;
        if (0 !=
-           netxen_niu_gbe_phy_write(adapter, port,
+           netxen_niu_gbe_phy_write(adapter, 
                                     NETXEN_NIU_GB_MII_MGMT_ADDR_INT_STATUS,
                                     -EIO))
                result = -EIO;
@@ -355,9 +351,9 @@ void netxen_niu_gbe_set_mii_mode(struct netxen_adapter *adapter,
                                            0x5);
        }
 
-       if (netxen_niu_gbe_enable_phy_interrupts(adapter, port))
+       if (netxen_niu_gbe_enable_phy_interrupts(adapter))
                printk(KERN_ERR PFX "ERROR enabling PHY interrupts\n");
-       if (netxen_niu_gbe_clear_phy_interrupts(adapter, port))
+       if (netxen_niu_gbe_clear_phy_interrupts(adapter))
                printk(KERN_ERR PFX "ERROR clearing PHY interrupts\n");
 }
 
@@ -393,9 +389,9 @@ void netxen_niu_gbe_set_gmii_mode(struct netxen_adapter *adapter,
                                            0x5);
        }
 
-       if (netxen_niu_gbe_enable_phy_interrupts(adapter, port))
+       if (netxen_niu_gbe_enable_phy_interrupts(adapter))
                printk(KERN_ERR PFX "ERROR enabling PHY interrupts\n");
-       if (netxen_niu_gbe_clear_phy_interrupts(adapter, port))
+       if (netxen_niu_gbe_clear_phy_interrupts(adapter))
                printk(KERN_ERR PFX "ERROR clearing PHY interrupts\n");
 }
 
@@ -404,11 +400,11 @@ int netxen_niu_gbe_init_port(struct netxen_adapter *adapter, int port)
        int result = 0;
        __u32 status;
        if (adapter->disable_phy_interrupts)
-               adapter->disable_phy_interrupts(adapter, port);
+               adapter->disable_phy_interrupts(adapter);
        mdelay(2);
 
        if (0 ==
-           netxen_niu_gbe_phy_read(adapter, port,
+           netxen_niu_gbe_phy_read(adapter,
                                    NETXEN_NIU_GB_MII_MGMT_ADDR_PHY_STATUS,
                                    &status)) {
                if (netxen_get_phy_link(status)) {
@@ -439,13 +435,13 @@ int netxen_niu_gbe_init_port(struct netxen_adapter *adapter, int port)
                                                    | NETXEN_GB_MAC_ENABLE_TX_RX
                                                    |
                                                    NETXEN_GB_MAC_PAUSED_FRMS);
-                       if (netxen_niu_gbe_clear_phy_interrupts(adapter, port))
+                       if (netxen_niu_gbe_clear_phy_interrupts(adapter))
                                printk(KERN_ERR PFX
                                       "ERROR clearing PHY interrupts\n");
-                       if (netxen_niu_gbe_enable_phy_interrupts(adapter, port))
+                       if (netxen_niu_gbe_enable_phy_interrupts(adapter))
                                printk(KERN_ERR PFX
                                       "ERROR enabling PHY interrupts\n");
-                       if (netxen_niu_gbe_clear_phy_interrupts(adapter, port))
+                       if (netxen_niu_gbe_clear_phy_interrupts(adapter))
                                printk(KERN_ERR PFX
                                       "ERROR clearing PHY interrupts\n");
                        result = -1;
@@ -458,24 +454,14 @@ int netxen_niu_gbe_init_port(struct netxen_adapter *adapter, int port)
 
 int netxen_niu_xg_init_port(struct netxen_adapter *adapter, int port)
 {
-       u32 reg = 0, ret = 0;
-
-       if (adapter->ahw.boardcfg.board_type == NETXEN_BRDTYPE_P2_SB31_10G_IMEZ) {
-               netxen_crb_writelit_adapter(adapter,
-                                           NETXEN_NIU_XG1_CONFIG_0, 0x5);
-               /* XXX hack for Mez cards: both ports in promisc mode */
-               netxen_nic_hw_read_wx(adapter,
-                                     NETXEN_NIU_XGE_CONFIG_1, &reg, 4);
-               reg = (reg | 0x2000UL);
-               netxen_crb_writelit_adapter(adapter,
-                                           NETXEN_NIU_XGE_CONFIG_1, reg);
-               reg = 0;
-               netxen_nic_hw_read_wx(adapter,
-                                     NETXEN_NIU_XG1_CONFIG_1, &reg, 4);
-               reg = (reg | 0x2000UL);
+       u32 ret = 0;
+       int portnum = adapter->portnum;
+               netxen_crb_writelit_adapter(adapter, 
+                               NETXEN_NIU_XGE_CONFIG_1 +(0x10000 * portnum),
+                               0x1447);
                netxen_crb_writelit_adapter(adapter,
-                                           NETXEN_NIU_XG1_CONFIG_1, reg);
-       }
+                           NETXEN_NIU_XG1_CONFIG_1 + 
+                           (0x10000 * portnum), 0x5);
 
        return ret;
 }
@@ -498,7 +484,7 @@ int netxen_niu_gbe_handle_phy_interrupt(struct netxen_adapter *adapter,
         * The read of the PHY INT status will clear the pending
         * interrupt status
         */
-       if (netxen_niu_gbe_phy_read(adapter, port,
+       if (netxen_niu_gbe_phy_read(adapter,
                                    NETXEN_NIU_GB_MII_MGMT_ADDR_INT_STATUS,
                                    &int_src) != 0)
                result = -EINVAL;
@@ -535,7 +521,7 @@ int netxen_niu_gbe_handle_phy_interrupt(struct netxen_adapter *adapter,
                        printk(KERN_INFO PFX
                               "speed_changed or link status changed");
                        if (netxen_niu_gbe_phy_read
-                           (adapter, port,
+                           (adapter,
                             NETXEN_NIU_GB_MII_MGMT_ADDR_PHY_STATUS,
                             &status) == 0) {
                                if (netxen_get_phy_speed(status) == 2) {
@@ -581,10 +567,11 @@ int netxen_niu_gbe_handle_phy_interrupt(struct netxen_adapter *adapter,
  * Note that the passed-in value must already be in network byte order.
  */
 int netxen_niu_macaddr_get(struct netxen_adapter *adapter,
-                          int phy, netxen_ethernet_macaddr_t * addr)
+                          netxen_ethernet_macaddr_t * addr)
 {
        u32 stationhigh;
        u32 stationlow;
+       int phy = adapter->portnum;
        u8 val[8];
 
        if (addr == NULL)
@@ -633,7 +620,7 @@ int netxen_niu_macaddr_set(struct netxen_adapter *adapter,
                    (adapter, NETXEN_NIU_GB_STATION_ADDR_0(phy), &val, 4))
                        return -2;
 
-               netxen_niu_macaddr_get(adapter, phy,
+               netxen_niu_macaddr_get(adapter, 
                                       (netxen_ethernet_macaddr_t *) mac_addr);
                if (memcmp(mac_addr, addr, 6) == 0)
                        break;
@@ -845,9 +832,10 @@ int netxen_niu_xg_macaddr_set(struct netxen_adapter *adapter,
  * Return the current station MAC address.
  * Note that the passed-in value must already be in network byte order.
  */
-int netxen_niu_xg_macaddr_get(struct netxen_adapter *adapter, int phy,
+int netxen_niu_xg_macaddr_get(struct netxen_adapter *adapter,
                              netxen_ethernet_macaddr_t * addr)
 {
+       int phy = adapter->portnum;
        u32 stationhigh;
        u32 stationlow;
        u8 val[8];
@@ -877,17 +865,19 @@ int netxen_niu_xg_set_promiscuous_mode(struct netxen_adapter *adapter,
        __u32 reg;
        int port = adapter->portnum;
 
-       if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS))
+       if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS))
                return -EINVAL;
 
-       if (netxen_nic_hw_read_wx(adapter, NETXEN_NIU_XGE_CONFIG_1, &reg, 4))
+       if (netxen_nic_hw_read_wx(adapter, NETXEN_NIU_XGE_CONFIG_1 + 
+                                       (0x10000 * port), &reg, 4))
                return -EIO;
        if (mode == NETXEN_NIU_PROMISC_MODE)
                reg = (reg | 0x2000UL);
        else
                reg = (reg & ~0x2000UL);
 
-       netxen_crb_writelit_adapter(adapter, NETXEN_NIU_XGE_CONFIG_1, reg);
+       netxen_crb_writelit_adapter(adapter, NETXEN_NIU_XGE_CONFIG_1 +
+                                       (0x10000 * port), reg);
 
        return 0;
 }