Re: [PATCH iwl-next v2 1/6] ixgbe: E610: add discovering EEE capability

Jacob Keller
2026-04-30T23:20:25Z

On 1/20/2026 5:44 AM, Jedrzej Jagielski wrote:
> Add detecting and parsing EEE device capability.
>
> Recently EEE functionality support has been introduced to E610 FW.
> Currently ixgbe driver has no possibility to detect whether NVM
> loaded on given adapter supports EEE.
>
> There's dedicated device capability element reflecting FW support
> for given EEE link speed.
>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
> Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
> ---
> drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c | 3 +++
> drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h | 7 +++++++
> include/linux/intel/libie/adminq.h | 1 +
> 3 files changed, 11 insertions(+)
>
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
> index c2f8189a0738..9ae1e3620ee1 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
> @@ -628,6 +628,9 @@ static bool ixgbe_parse_e610_caps(struct ixgbe_hw *hw,
> (phys_id & IXGBE_EXT_TOPO_DEV_IMG_PROG_EN) != 0;
> break;
> }
> + case LIBIE_AQC_CAPS_EEE:
> + caps->eee_support = (u8)number;
> + break;
> default:
> /* Not one of the recognized common capabilities */
> return false;
> diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h
> index cde148eec38d..11dc7fc71b71 100644
> --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h
> +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h
> @@ -892,6 +892,7 @@ struct ixgbe_hw_caps {
> u8 apm_wol_support;
> u8 acpi_prog_mthd;
> u8 proxy_support;
> + u8 eee_support;
> bool nvm_update_pending_nvm;
> bool nvm_update_pending_orom;
> bool nvm_update_pending_netlist;
> @@ -927,6 +928,12 @@ struct ixgbe_hw_caps {
>
> #define IXGBE_OROM_CIV_SIGNATURE "$CIV"
>
> +#define IXGBE_EEE_SUPPORT_100BASE_TX BIT(0)
> +#define IXGBE_EEE_SUPPORT_1000BASE_T BIT(1)
> +#define IXGBE_EEE_SUPPORT_10GBASE_T BIT(2)
> +#define IXGBE_EEE_SUPPORT_5GBASE_T BIT(3)
> +#define IXGBE_EEE_SUPPORT_2_5GBASE_T BIT(4)
> +

These macros are unused by this series. Sashiko complains about them
existing, since the code appears to actually use IXGBE_ACI_PHY_EEE_*
macros which have different bit positions.

Since they are unused, I am going to drop them in the version I submit
to net-next.

If they ever become needed or useful in the future, then we can always
add them back later.