|
@@ -2114,6 +2114,50 @@ static s32 ixgbe_reset_phy_t_X550em(struct ixgbe_hw *hw)
|
|
return ixgbe_enable_lasi_ext_t_x550em(hw);
|
|
return ixgbe_enable_lasi_ext_t_x550em(hw);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * ixgbe_led_on_t_x550em - Turns on the software controllable LEDs.
|
|
|
|
+ * @hw: pointer to hardware structure
|
|
|
|
+ * @led_idx: led number to turn on
|
|
|
|
+ **/
|
|
|
|
+s32 ixgbe_led_on_t_x550em(struct ixgbe_hw *hw, u32 led_idx)
|
|
|
|
+{
|
|
|
|
+ u16 phy_data;
|
|
|
|
+
|
|
|
|
+ if (led_idx >= IXGBE_X557_MAX_LED_INDEX)
|
|
|
|
+ return IXGBE_ERR_PARAM;
|
|
|
|
+
|
|
|
|
+ /* To turn on the LED, set mode to ON. */
|
|
|
|
+ hw->phy.ops.read_reg(hw, IXGBE_X557_LED_PROVISIONING + led_idx,
|
|
|
|
+ IXGBE_MDIO_VENDOR_SPECIFIC_1_DEV_TYPE, &phy_data);
|
|
|
|
+ phy_data |= IXGBE_X557_LED_MANUAL_SET_MASK;
|
|
|
|
+ hw->phy.ops.write_reg(hw, IXGBE_X557_LED_PROVISIONING + led_idx,
|
|
|
|
+ IXGBE_MDIO_VENDOR_SPECIFIC_1_DEV_TYPE, phy_data);
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * ixgbe_led_off_t_x550em - Turns off the software controllable LEDs.
|
|
|
|
+ * @hw: pointer to hardware structure
|
|
|
|
+ * @led_idx: led number to turn off
|
|
|
|
+ **/
|
|
|
|
+s32 ixgbe_led_off_t_x550em(struct ixgbe_hw *hw, u32 led_idx)
|
|
|
|
+{
|
|
|
|
+ u16 phy_data;
|
|
|
|
+
|
|
|
|
+ if (led_idx >= IXGBE_X557_MAX_LED_INDEX)
|
|
|
|
+ return IXGBE_ERR_PARAM;
|
|
|
|
+
|
|
|
|
+ /* To turn on the LED, set mode to ON. */
|
|
|
|
+ hw->phy.ops.read_reg(hw, IXGBE_X557_LED_PROVISIONING + led_idx,
|
|
|
|
+ IXGBE_MDIO_VENDOR_SPECIFIC_1_DEV_TYPE, &phy_data);
|
|
|
|
+ phy_data &= ~IXGBE_X557_LED_MANUAL_SET_MASK;
|
|
|
|
+ hw->phy.ops.write_reg(hw, IXGBE_X557_LED_PROVISIONING + led_idx,
|
|
|
|
+ IXGBE_MDIO_VENDOR_SPECIFIC_1_DEV_TYPE, phy_data);
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
/** ixgbe_get_lcd_x550em - Determine lowest common denominator
|
|
/** ixgbe_get_lcd_x550em - Determine lowest common denominator
|
|
* @hw: pointer to hardware structure
|
|
* @hw: pointer to hardware structure
|
|
* @lcd_speed: pointer to lowest common link speed
|
|
* @lcd_speed: pointer to lowest common link speed
|
|
@@ -2853,8 +2897,6 @@ static s32 ixgbe_write_phy_reg_x550a(struct ixgbe_hw *hw, u32 reg_addr,
|
|
.write_analog_reg8 = NULL, \
|
|
.write_analog_reg8 = NULL, \
|
|
.set_rxpba = &ixgbe_set_rxpba_generic, \
|
|
.set_rxpba = &ixgbe_set_rxpba_generic, \
|
|
.check_link = &ixgbe_check_mac_link_generic, \
|
|
.check_link = &ixgbe_check_mac_link_generic, \
|
|
- .led_on = &ixgbe_led_on_generic, \
|
|
|
|
- .led_off = &ixgbe_led_off_generic, \
|
|
|
|
.blink_led_start = &ixgbe_blink_led_start_X540, \
|
|
.blink_led_start = &ixgbe_blink_led_start_X540, \
|
|
.blink_led_stop = &ixgbe_blink_led_stop_X540, \
|
|
.blink_led_stop = &ixgbe_blink_led_stop_X540, \
|
|
.set_rar = &ixgbe_set_rar_generic, \
|
|
.set_rar = &ixgbe_set_rar_generic, \
|
|
@@ -2886,6 +2928,8 @@ static s32 ixgbe_write_phy_reg_x550a(struct ixgbe_hw *hw, u32 reg_addr,
|
|
|
|
|
|
static const struct ixgbe_mac_operations mac_ops_X550 = {
|
|
static const struct ixgbe_mac_operations mac_ops_X550 = {
|
|
X550_COMMON_MAC
|
|
X550_COMMON_MAC
|
|
|
|
+ .led_on = ixgbe_led_on_generic,
|
|
|
|
+ .led_off = ixgbe_led_off_generic,
|
|
.reset_hw = &ixgbe_reset_hw_X540,
|
|
.reset_hw = &ixgbe_reset_hw_X540,
|
|
.get_media_type = &ixgbe_get_media_type_X540,
|
|
.get_media_type = &ixgbe_get_media_type_X540,
|
|
.get_san_mac_addr = &ixgbe_get_san_mac_addr_generic,
|
|
.get_san_mac_addr = &ixgbe_get_san_mac_addr_generic,
|
|
@@ -2904,6 +2948,8 @@ static const struct ixgbe_mac_operations mac_ops_X550 = {
|
|
|
|
|
|
static const struct ixgbe_mac_operations mac_ops_X550EM_x = {
|
|
static const struct ixgbe_mac_operations mac_ops_X550EM_x = {
|
|
X550_COMMON_MAC
|
|
X550_COMMON_MAC
|
|
|
|
+ .led_on = ixgbe_led_on_t_x550em,
|
|
|
|
+ .led_off = ixgbe_led_off_t_x550em,
|
|
.reset_hw = &ixgbe_reset_hw_X550em,
|
|
.reset_hw = &ixgbe_reset_hw_X550em,
|
|
.get_media_type = &ixgbe_get_media_type_X550em,
|
|
.get_media_type = &ixgbe_get_media_type_X550em,
|
|
.get_san_mac_addr = NULL,
|
|
.get_san_mac_addr = NULL,
|
|
@@ -2922,6 +2968,8 @@ static const struct ixgbe_mac_operations mac_ops_X550EM_x = {
|
|
|
|
|
|
static struct ixgbe_mac_operations mac_ops_x550em_a = {
|
|
static struct ixgbe_mac_operations mac_ops_x550em_a = {
|
|
X550_COMMON_MAC
|
|
X550_COMMON_MAC
|
|
|
|
+ .led_on = ixgbe_led_on_t_x550em,
|
|
|
|
+ .led_off = ixgbe_led_off_t_x550em,
|
|
.reset_hw = ixgbe_reset_hw_X550em,
|
|
.reset_hw = ixgbe_reset_hw_X550em,
|
|
.get_media_type = ixgbe_get_media_type_X550em,
|
|
.get_media_type = ixgbe_get_media_type_X550em,
|
|
.get_san_mac_addr = NULL,
|
|
.get_san_mac_addr = NULL,
|