On 2/28/25 09:37, Jedrzej Jagielski wrote:
Legacy implementation of .set_phys_id() ethtool callback is not
applicable for E610 device.

Add new implementation which uses 0x06E9 command by calling
ixgbe_aci_set_port_id_led().

Reviewed-by: Aleksandr Loktionov <[email protected]>
Reviewed-by: Michal Swiatkowski <[email protected]>
Signed-off-by: Jedrzej Jagielski <[email protected]>
---
  drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c | 29 +++++++++++++++++++
  drivers/net/ethernet/intel/ixgbe/ixgbe_e610.h |  1 +
  .../net/ethernet/intel/ixgbe/ixgbe_ethtool.c  | 22 +++++++++++++-
  .../ethernet/intel/ixgbe/ixgbe_type_e610.h    | 13 +++++++++
  4 files changed, 64 insertions(+), 1 deletion(-)


--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h
@@ -223,6 +223,7 @@ enum ixgbe_aci_opc {
        ixgbe_aci_opc_write_mdio                        = 0x06E5,
        ixgbe_aci_opc_set_gpio_by_func                  = 0x06E6,
        ixgbe_aci_opc_get_gpio_by_func                  = 0x06E7,
+       ixgbe_aci_opc_set_port_id_led                   = 0x06E9,
        ixgbe_aci_opc_set_gpio                          = 0x06EC,
        ixgbe_aci_opc_get_gpio                          = 0x06ED,
        ixgbe_aci_opc_sff_eeprom                        = 0x06EE,
@@ -808,6 +809,17 @@ struct ixgbe_aci_cmd_get_link_topo_pin {
        u8 rsvd[7];
  };
+/* Set Port Identification LED (direct, 0x06E9) */
+struct ixgbe_aci_cmd_set_port_id_led {
+       u8 lport_num;
+       u8 lport_num_valid;
+#define IXGBE_ACI_PORT_ID_PORT_NUM_VALID       BIT(0)
+       u8 ident_mode;
+#define IXGBE_ACI_PORT_IDENT_LED_ORIG          0
+#define IXGBE_ACI_PORT_IDENT_LED_BLINK         BIT(0)

please move the #defines out of struct definition

+       u8 rsvd[13];
+};
+
  /* Read/Write SFF EEPROM command (indirect 0x06EE) */
  struct ixgbe_aci_cmd_sff_eeprom {
        u8 lport_num;
@@ -985,6 +997,7 @@ struct ixgbe_aci_desc {
                struct ixgbe_aci_cmd_restart_an restart_an;
                struct ixgbe_aci_cmd_get_link_status get_link_status;
                struct ixgbe_aci_cmd_set_event_mask set_event_mask;
+               struct ixgbe_aci_cmd_set_port_id_led set_port_id_led;
                struct ixgbe_aci_cmd_get_link_topo get_link_topo;
                struct ixgbe_aci_cmd_get_link_topo_pin get_link_topo_pin;
                struct ixgbe_aci_cmd_sff_eeprom read_write_sff_param;

Reply via email to