On Thu, May 15, 2025 at 09:11:05AM +0000, Aleksandr Loktionov wrote:
> Introduce the ICE_AQC_PORT_OPT_MAX_LANE_40G constant and update the code
> to process this new option in both the devlink and the Admin Queue Command
> GET PORT OPTION (opcode 0x06EA) message, similar to existing constants like
> ICE_AQC_PORT_OPT_MAX_LANE_50G, ICE_AQC_PORT_OPT_MAX_LANE_100G, and so on.
> 
> This feature allows the driver to correctly report configuration options
> for 2x40G on ICX-D LCC and other cards in the future via devlink.
> 
> Example comand:
>  devlink port split pci/0000:01:00.0/0 count 2 
> 
> Example dmesg:
>  ice 0000:01:00.0: Available port split options and max port speeds (Gbps):
>  ice 0000:01:00.0: Status  Split      Quad 0          Quad 1
>  ice 0000:01:00.0:         count  L0  L1  L2  L3  L4  L5  L6  L7
>  ice 0000:01:00.0:         2      40   -   -   -  40   -   -   -
>  ice 0000:01:00.0:         2      50   -  50   -   -   -   -   -
>  ice 0000:01:00.0:         4      25  25  25  25   -   -   -   -
>  ice 0000:01:00.0:         4      25  25   -   -  25  25   -   -
>  ice 0000:01:00.0: Active  8      10  10  10  10  10  10  10  10
>  ice 0000:01:00.0:         1     100   -   -   -   -   -   -   -
> 
> Signed-off-by: Aleksandr Loktionov <[email protected]>
> Reviewed-by: Przemek Kitszel <[email protected]>

...

> diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c 
> b/drivers/net/ethernet/intel/ice/ice_ethtool.c
> index 6488151..f2c0b28 100644
> --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c
> +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c
> @@ -667,7 +667,8 @@ static int ice_get_port_topology(struct ice_hw *hw, u8 
> lport,
>  
>               if (max_speed == ICE_AQC_PORT_OPT_MAX_LANE_100G)
>                       port_topology->serdes_lane_count = 4;
> -             else if (max_speed == ICE_AQC_PORT_OPT_MAX_LANE_50G)
> +             else if (max_speed == ICE_AQC_PORT_OPT_MAX_LANE_50G ||
> +                                      max_speed == 
> ICE_AQC_PORT_OPT_MAX_LANE_40G)

nit: I think it would be better to indent the line above like this.

                else if (max_speed == ICE_AQC_PORT_OPT_MAX_LANE_50G ||
                         max_speed == ICE_AQC_PORT_OPT_MAX_LANE_40G)

>                       port_topology->serdes_lane_count = 2;
>               else
>                       port_topology->serdes_lane_count = 1;

Otherwise, this looks good to me.

Reviewed-by: Simon Horman <[email protected]>

Reply via email to