ixgbe: Remove MAC X550EM_X 1Gbase-t led_[on|off] support
Subsystems (2)
PATCH 1/1 ixgbe: Remove MAC X550EM_X 1Gbase-t led_[on|off] support
Since FW configures the PHY and MAC X550EM_X has no
PHY access, led_[on|off] is not supported with the 1Gbase-t design.
Removed MAC X550EM_X 1Gbase-t led_[on|off] support by setting function pointers to NULL and added NULL pointer checks. Also set init_led_link_act to NULL and added NULL pointer check.
--- drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 3 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 3 +++ drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 27 ++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 3 deletions(-)
drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +2 -1
@@ -395,7 +395,8 @@ s32 ixgbe_init_hw_generic(struct ixgbe_hw *hw) }/* Initialize the LED link active for LED blink support */ - hw->mac.ops.init_led_link_act (hw); +if (hw->mac.ops.init_led_link_act) + hw->mac.ops.init_led_link_act (hw);return status; }
drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +3 -0
@@ -2254,6 +2254,9 @@ static int ixgbe_set_phys_id(struct net_device *netdev,struct ixgbe_adapter *adapter =netdev_priv (netdev);struct ixgbe_hw *hw = &adapter->hw; +if (!hw->mac.ops.led_on || !hw->mac.ops.led_off) +return -EOPNOTSUPP ; +switch (state) {case ETHTOOL_ID_ACTIVE : adapter->led_reg =IXGBE_READ_REG (hw,IXGBE_LEDCTL );
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +25 -2
@@ -3206,6 +3206,7 @@ static s32 ixgbe_init_phy_ops_X550em(struct ixgbe_hw *hw) phy->ops.setup_link =NULL ; phy->ops.read_reg =NULL ; phy->ops.write_reg =NULL ; + phy->ops.reset =NULL ;break ;default :break ;
@@ -3819,7 +3820,29 @@ static const struct ixgbe_mac_operations mac_ops_X550EM_x = { .write_iosf_sb_reg = ixgbe_write_iosf_sb_reg_x550, }; -static struct ixgbe_mac_operations mac_ops_x550em_a = { +static const struct ixgbe_mac_operations mac_ops_X550EM_x_fw = { +X550_COMMON_MAC + .led_on =NULL , + .led_off =NULL , + .init_led_link_act =NULL , + .reset_hw = &ixgbe_reset_hw_X550em, + .get_media_type = &ixgbe_get_media_type_X550em, + .get_san_mac_addr =NULL , + .get_wwn_prefix =NULL , + .setup_link = &ixgbe_setup_mac_link_X540, + .get_link_capabilities = &ixgbe_get_link_capabilities_X550em, + .get_bus_info = &ixgbe_get_bus_info_X550em, + .setup_sfp = ixgbe_setup_sfp_modules_X550em, + .acquire_swfw_sync = &ixgbe_acquire_swfw_sync_X550em, + .release_swfw_sync = &ixgbe_release_swfw_sync_X550em, + .init_swfw_sync = &ixgbe_init_swfw_sync_X540, + .setup_fc =NULL , + .fc_autoneg = ixgbe_fc_autoneg, + .read_iosf_sb_reg = ixgbe_read_iosf_sb_reg_x550, + .write_iosf_sb_reg = ixgbe_write_iosf_sb_reg_x550, +}; + +static struct ixgbe_mac_operations mac_ops_x550em_a = {X550_COMMON_MAC .led_on = ixgbe_led_on_t_x550em, .led_off = ixgbe_led_off_t_x550em,
@@ -3986,7 +4009,7 @@ const struct ixgbe_info ixgbe_X550EM_x_info = {const struct ixgbe_info ixgbe_x550em_x_fw_info = { .mac = ixgbe_mac_X550EM_x, .get_invariants = ixgbe_get_invariants_X550_x_fw, - .mac_ops = &mac_ops_X550EM_x, + .mac_ops = &mac_ops_X550EM_x_fw, .eeprom_ops = &eeprom_ops_X550EM_x, .phy_ops = &phy_ops_x550em_x_fw, .mbx_ops = &mbx_ops_generic,
Signature · 1 line
2.7.4
PATCH 1/1 ixgbe: Remove MAC X550EM_X 1Gbase-t led_[on|off] support
Quoted 87 lines · Paul Greenwalt
Since FW configures the PHY and MAC
X550EM_Xhas no
PHY access, led_[on|off] is not supported with the 1Gbase-t design.Removed MAC
X550EM_X1Gbase-t led_[on|off] support by setting function pointers to NULL and added NULL pointer checks. Also setinit_led_link_actto NULL and added NULL pointer check.Signed-off-by Paul Greenwalt <[email protected]>---
?drivers/net/ethernet/intel/ixgbe/ixgbe_common.c? |? 3 ++- ?drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c |? 3 +++ ?drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c??? | 27++++++++++++++++++++++--
?3 files changed, 30 insertions(+), 3 deletions(-)drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +0
-0@@ -395,7 +395,8 @@ s32 ixgbe_init_hw_generic(struct ixgbe_hw *hw) ????????}?
????????/* Initialize the LED link active for LED blink support */ -???????hw->mac.ops.init_led_link_act(hw);
+???????if (hw->mac.ops.init_led_link_act) +???????????????hw->mac.ops.init_led_link_act(hw);
?
????????return status;
?}drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +0
-0@@ -2254,6 +2254,9 @@ static int ixgbe_set_phys_id(struct net_device *netdev, ????????struct ixgbe_adapter *adapter = netdev_priv(netdev); ????????struct ixgbe_hw *hw = &adapter->hw;?
+???????if (!hw->mac.ops.led_on || !hw->mac.ops.led_off) +???????????????return-EOPNOTSUPP;
+
????????switch (state) {
????????caseETHTOOL_ID_ACTIVE:
????????????????adapter->led_reg =IXGBE_READ_REG(hw, IXGBE_LEDCTL);drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +1
-0@@ -3206,6 +3206,7 @@ static s32 ixgbe_init_phy_ops_X550em(struct ixgbe_hw *hw) ????????????????phy->ops.setup_link = NULL; ????????????????phy->ops.read_reg = NULL; ????????????????phy->ops.write_reg = NULL; +???????????????phy->ops.reset = NULL; ????????????????break;????????default:
????????????????break;drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +0
-0@@ -3819,7 +3820,29 @@ static const struct ixgbe_mac_operations mac_ops_X550EM_x = { ????????.write_iosf_sb_reg??????= ixgbe_write_iosf_sb_reg_x550, ?};?
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +11
-1-static struct ixgbe_mac_operations mac_ops_x550em_a = { +static const struct ixgbe_mac_operations mac_ops_X550EM_x_fw = { +???????X550_COMMON_MAC +???????.led_on?????????????????= NULL, +???????.led_off????????????????= NULL, +???????.init_led_link_act??????= NULL, +???????.reset_hw???????????????= &ixgbe_reset_hw_X550em, +???????.get_media_type?????????= &ixgbe_get_media_type_X550em, +???????.get_san_mac_addr???????= NULL, +???????.get_wwn_prefix?????????= NULL, +???????.setup_link?????????????= &ixgbe_setup_mac_link_X540, +???????.get_link_capabilities??=
&ixgbe_get_link_capabilities_X550em, +???????.get_bus_info???????????=&ixgbe_get_bus_info_X550em, +???????.setup_sfp??????????????=ixgbe_setup_sfp_modules_X550em, +???????.acquire_swfw_sync??????=&ixgbe_acquire_swfw_sync_X550em, +???????.release_swfw_sync??????=&ixgbe_release_swfw_sync_X550em, +???????.init_swfw_sync?????????=&ixgbe_init_swfw_sync_X540, +???????.setup_fc???????????????= NULL, +???????.fc_autoneg?????????????=ixgbe_fc_autoneg, +???????.read_iosf_sb_reg???????=ixgbe_read_iosf_sb_reg_x550, +???????.write_iosf_sb_reg??????=ixgbe_write_iosf_sb_reg_x550,
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c static const struct ixgbe_mac_operations mac_ops_X550EM_x = {
Quoted 3 lines
drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c +3
-0+}; + +???????static struct ixgbe_mac_operations mac_ops_x550em_a = {
Did you mean to indent the above line? FYI, it should not be indented. -------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20170420/87cc77cf/attachment.asc>