[SRU][Cosmic][Bionic]][PATCH 1/1] s390/qeth: report 25Gbit link speed

Kleber Souza kleber.souza at canonical.com
Fri Mar 29 11:08:48 UTC 2019


On 3/18/19 8:07 PM, frank.heimes at canonical.com wrote:
> From: Julian Wiedmann <jwi at linux.ibm.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/1814892
> 
> s390/qeth: report 25Gbit link speed

Hi Frank,

The above line with the duplicated subject is also not needed.

I will amend the commit in our repo to fix it.


Thanks,
Kleber

> 
> This adds the various identifiers for 25Gbit cards, and wires them up
> into sysfs and ethtool.
> 
> Signed-off-by: Julian Wiedmann <jwi at linux.ibm.com>
> Signed-off-by: David S. Miller <davem at davemloft.net>
> (cherry picked from commit 54e049c227d9968ff6a7d80aae5fec27b54d39da)
> Signed-off-by: Frank Heimes <frank.heimes at canonical.com>
> ---
>  drivers/s390/net/qeth_core_main.c | 20 ++++++++++++++++++--
>  drivers/s390/net/qeth_core_mpc.h  |  2 ++
>  2 files changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
> index 0a7500b..c4ccf7b 100644
> --- a/drivers/s390/net/qeth_core_main.c
> +++ b/drivers/s390/net/qeth_core_main.c
> @@ -167,6 +167,8 @@ const char *qeth_get_cardname_short(struct qeth_card *card)
>  				return "OSD_1000";
>  			case QETH_LINK_TYPE_10GBIT_ETH:
>  				return "OSD_10GIG";
> +			case QETH_LINK_TYPE_25GBIT_ETH:
> +				return "OSD_25GIG";
>  			case QETH_LINK_TYPE_LANE_ETH100:
>  				return "OSD_FE_LANE";
>  			case QETH_LINK_TYPE_LANE_TR:
> @@ -4471,7 +4473,8 @@ static int qeth_mdio_read(struct net_device *dev, int phy_id, int regnum)
>  		rc = BMCR_FULLDPLX;
>  		if ((card->info.link_type != QETH_LINK_TYPE_GBIT_ETH) &&
>  		    (card->info.link_type != QETH_LINK_TYPE_OSN) &&
> -		    (card->info.link_type != QETH_LINK_TYPE_10GBIT_ETH))
> +		    (card->info.link_type != QETH_LINK_TYPE_10GBIT_ETH) &&
> +		    (card->info.link_type != QETH_LINK_TYPE_25GBIT_ETH))
>  			rc |= BMCR_SPEED100;
>  		break;
>  	case MII_BMSR: /* Basic mode status register */
> @@ -6138,8 +6141,14 @@ static void qeth_set_cmd_adv_sup(struct ethtool_link_ksettings *cmd,
>  		WARN_ON_ONCE(1);
>  	}
>  
> -	/* fallthrough from high to low, to select all legal speeds: */
> +	/* partially does fall through, to also select lower speeds */
>  	switch (maxspeed) {
> +	case SPEED_25000:
> +		ethtool_link_ksettings_add_link_mode(cmd, supported,
> +						     25000baseSR_Full);
> +		ethtool_link_ksettings_add_link_mode(cmd, advertising,
> +						     25000baseSR_Full);
> +		break;
>  	case SPEED_10000:
>  		ethtool_link_ksettings_add_link_mode(cmd, supported,
>  						     10000baseT_Full);
> @@ -6222,6 +6231,10 @@ int qeth_core_ethtool_get_link_ksettings(struct net_device *netdev,
>  		cmd->base.speed = SPEED_10000;
>  		cmd->base.port = PORT_FIBRE;
>  		break;
> +	case QETH_LINK_TYPE_25GBIT_ETH:
> +		cmd->base.speed = SPEED_25000;
> +		cmd->base.port = PORT_FIBRE;
> +		break;
>  	default:
>  		cmd->base.speed = SPEED_10;
>  		cmd->base.port = PORT_TP;
> @@ -6288,6 +6301,9 @@ int qeth_core_ethtool_get_link_ksettings(struct net_device *netdev,
>  	case CARD_INFO_PORTS_10G:
>  		cmd->base.speed = SPEED_10000;
>  		break;
> +	case CARD_INFO_PORTS_25G:
> +		cmd->base.speed = SPEED_25000;
> +		break;
>  	}
>  
>  	return 0;
> diff --git a/drivers/s390/net/qeth_core_mpc.h b/drivers/s390/net/qeth_core_mpc.h
> index 96d566a..c1f1003 100644
> --- a/drivers/s390/net/qeth_core_mpc.h
> +++ b/drivers/s390/net/qeth_core_mpc.h
> @@ -72,6 +72,7 @@ enum qeth_link_types {
>  	QETH_LINK_TYPE_GBIT_ETH     = 0x03,
>  	QETH_LINK_TYPE_OSN          = 0x04,
>  	QETH_LINK_TYPE_10GBIT_ETH   = 0x10,
> +	QETH_LINK_TYPE_25GBIT_ETH   = 0x12,
>  	QETH_LINK_TYPE_LANE_ETH100  = 0x81,
>  	QETH_LINK_TYPE_LANE_TR      = 0x82,
>  	QETH_LINK_TYPE_LANE_ETH1000 = 0x83,
> @@ -329,6 +330,7 @@ enum qeth_card_info_port_speed {
>  	CARD_INFO_PORTS_100M		= 0x00000006,
>  	CARD_INFO_PORTS_1G		= 0x00000007,
>  	CARD_INFO_PORTS_10G		= 0x00000008,
> +	CARD_INFO_PORTS_25G		= 0x0000000A,
>  };
>  
>  /* (SET)DELIP(M) IPA stuff ***************************************************/
> 




More information about the kernel-team mailing list