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 <[email protected]>
> Signed-off-by: Jedrzej Jagielski <[email protected]>
> ---
>  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.

Reply via email to