sfc: SFT9001: Reset LED configuration correctly after blinking
authorBen Hutchings <bhutchings@solarflare.com>
Mon, 23 Nov 2009 16:02:49 +0000 (16:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Nov 2009 18:58:33 +0000 (10:58 -0800)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/tenxpress.c

index 390b27b5ace99b6cd5d7c82fb6de0e9ee77680d5..19c78d2817000a4d5e45ed0c7c86460067339925 100644 (file)
@@ -83,9 +83,9 @@
 #define PMA_PMD_LED_FLASH      (3)
 #define PMA_PMD_LED_MASK       3
 /* All LEDs under hardware control */
-#define PMA_PMD_LED_FULL_AUTO  (0)
+#define SFT9001_PMA_PMD_LED_DEFAULT 0
 /* Green and Amber under hardware control, Red off */
-#define PMA_PMD_LED_DEFAULT    (PMA_PMD_LED_OFF << PMA_PMD_LED_RX_LBN)
+#define SFX7101_PMA_PMD_LED_DEFAULT (PMA_PMD_LED_OFF << PMA_PMD_LED_RX_LBN)
 
 #define PMA_PMD_SPEED_ENABLE_REG 49192
 #define PMA_PMD_100TX_ADV_LBN    1
@@ -291,7 +291,7 @@ static int tenxpress_init(struct efx_nic *efx)
                efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, PMA_PMD_LED_CTRL_REG,
                                  1 << PMA_PMA_LED_ACTIVITY_LBN, true);
                efx_mdio_write(efx, MDIO_MMD_PMAPMD, PMA_PMD_LED_OVERR_REG,
-                              PMA_PMD_LED_DEFAULT);
+                              SFX7101_PMA_PMD_LED_DEFAULT);
        }
 
        return 0;
@@ -624,7 +624,10 @@ void tenxpress_phy_blink(struct efx_nic *efx, bool blink)
                        (PMA_PMD_LED_FLASH << PMA_PMD_LED_RX_LBN) |
                        (PMA_PMD_LED_FLASH << PMA_PMD_LED_LINK_LBN);
        else
-               reg = PMA_PMD_LED_DEFAULT;
+               if (efx->phy_type == PHY_TYPE_SFX7101)
+                       reg = SFX7101_PMA_PMD_LED_DEFAULT;
+               else
+                       reg = SFT9001_PMA_PMD_LED_DEFAULT;
 
        efx_mdio_write(efx, MDIO_MMD_PMAPMD, PMA_PMD_LED_OVERR_REG, reg);
 }