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

Jacob Keller jacob.e.keller at intel.com
Thu Apr 30 23:20:07 UTC 2026


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 at intel.com>
> Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski at 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.


More information about the Intel-wired-lan mailing list