mwl8k: disable softirqs when accessing sta_notify_list
[safe/jmp/linux-2.6] / drivers / net / chelsio / mv88x201x.c
index 29e0cba..f7136b2 100644 (file)
@@ -86,7 +86,8 @@ static int mv88x201x_reset(struct cphy *cphy, int wait)
 static int mv88x201x_interrupt_enable(struct cphy *cphy)
 {
        /* Enable PHY LASI interrupts. */
-       cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, 0x9002, 0x1);
+       cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_CTRL,
+                       MDIO_PMA_LASI_LSALARM);
 
        /* Enable Marvell interrupts through Elmer0. */
        if (t1_is_asic(cphy->adapter)) {
@@ -102,7 +103,7 @@ static int mv88x201x_interrupt_enable(struct cphy *cphy)
 static int mv88x201x_interrupt_disable(struct cphy *cphy)
 {
        /* Disable PHY LASI interrupts. */
-       cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, 0x9002, 0x0);
+       cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_CTRL, 0x0);
 
        /* Disable Marvell interrupts through Elmer0. */
        if (t1_is_asic(cphy->adapter)) {
@@ -122,9 +123,9 @@ static int mv88x201x_interrupt_clear(struct cphy *cphy)
 
 #ifdef MV88x2010_LINK_STATUS_BUGS
        /* Required to read twice before clear takes affect. */
-       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, 0x9003, &val);
-       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, 0x9004, &val);
-       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, 0x9005, &val);
+       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_RXSTAT, &val);
+       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_TXSTAT, &val);
+       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_STAT, &val);
 
        /* Read this register after the others above it else
         * the register doesn't clear correctly.
@@ -135,12 +136,12 @@ static int mv88x201x_interrupt_clear(struct cphy *cphy)
        /* Clear link status. */
        cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val);
        /* Clear PHY LASI interrupts. */
-       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, 0x9005, &val);
+       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_STAT, &val);
 
 #ifdef MV88x2010_LINK_STATUS_BUGS
        /* Do it again. */
-       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, 0x9003, &val);
-       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, 0x9004, &val);
+       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_RXSTAT, &val);
+       cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_TXSTAT, &val);
 #endif
 
        /* Clear Marvell interrupts through Elmer0. */
@@ -208,7 +209,7 @@ static struct cphy_ops mv88x201x_ops = {
                              MDIO_DEVS_PHYXS | MDIO_DEVS_WIS),
 };
 
-static struct cphy *mv88x201x_phy_create(adapter_t *adapter, int phy_addr,
+static struct cphy *mv88x201x_phy_create(struct net_device *dev, int phy_addr,
                                         const struct mdio_ops *mdio_ops)
 {
        u32 val;
@@ -217,7 +218,7 @@ static struct cphy *mv88x201x_phy_create(adapter_t *adapter, int phy_addr,
        if (!cphy)
                return NULL;
 
-       cphy_init(cphy, adapter, phy_addr, &mv88x201x_ops, mdio_ops);
+       cphy_init(cphy, dev, phy_addr, &mv88x201x_ops, mdio_ops);
 
        /* Commands the PHY to enable XFP's clock. */
        cphy_mdio_read(cphy, MDIO_MMD_PCS, 0x8300, &val);