* [Intel-wired-lan] [PATCH] ixgbe: Remove MAC X550EM_X 1Gbase-t led_[on|off] support
@ 2017-04-20 12:52 Paul Greenwalt
2017-04-21 2:16 ` Jeff Kirsher
0 siblings, 1 reply; 2+ messages in thread
From: Paul Greenwalt @ 2017-04-20 12:52 UTC (permalink / raw)
To: intel-wired-lan
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.
Signed-off-by: Paul Greenwalt <paul.greenwalt@intel.com>
---
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(-)
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
index c38d50c..3af6127 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
@@ -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;
}
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index 7e5e336..cced74d 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -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);
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
index 2ba024b..75dd1a3 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
@@ -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,
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Intel-wired-lan] [PATCH] ixgbe: Remove MAC X550EM_X 1Gbase-t led_[on|off] support
2017-04-20 12:52 [Intel-wired-lan] [PATCH] ixgbe: Remove MAC X550EM_X 1Gbase-t led_[on|off] support Paul Greenwalt
@ 2017-04-21 2:16 ` Jeff Kirsher
0 siblings, 0 replies; 2+ messages in thread
From: Jeff Kirsher @ 2017-04-21 2:16 UTC (permalink / raw)
To: intel-wired-lan
On Thu, 2017-04-20 at 08:52 -0400, Paul Greenwalt wrote:
> 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.
>
> Signed-off-by: Paul Greenwalt <paul.greenwalt@intel.com>
> ---
> ?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(-)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> index c38d50c..3af6127 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c
> @@ -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;
> ?}
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> index 7e5e336..cced74d 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
> @@ -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);
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
> b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
> index 2ba024b..75dd1a3 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c
> @@ -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 = {
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>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-21 2:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-20 12:52 [Intel-wired-lan] [PATCH] ixgbe: Remove MAC X550EM_X 1Gbase-t led_[on|off] support Paul Greenwalt
2017-04-21 2:16 ` Jeff Kirsher
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox