Message ID | 1552936068-22906-2-git-send-email-frank.heimes@canonical.com |
---|---|
State | New |
Headers | show |
Series | [SRU,Cosmic,Bionic] ][PATCH 1/1] s390/qeth: report 25Gbit link speed | expand |
On 18.03.19 20:07, frank.heimes@canonical.com wrote: > From: Julian Wiedmann <jwi@linux.ibm.com> > > BugLink: https://bugs.launchpad.net/bugs/1814892 > > s390/qeth: report 25Gbit link speed > > This adds the various identifiers for 25Gbit cards, and wires them up > into sysfs and ethtool. > > Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> > Signed-off-by: David S. Miller <davem@davemloft.net> > (cherry picked from commit 54e049c227d9968ff6a7d80aae5fec27b54d39da) > Signed-off-by: Frank Heimes <frank.heimes@canonical.com> Acked-by: Stefan Bader <stefan.bader@canonical.com> > --- My stance to feature backports is known. At least its rather small and falls into the add some IDs bucket. Just a note that in some cases of adding new link speeds ethtool needed some adjustments, too. -Stefan > 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 ***************************************************/ >
On 3/18/19 8:07 PM, frank.heimes@canonical.com wrote: > From: Julian Wiedmann <jwi@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@linux.ibm.com> > Signed-off-by: David S. Miller <davem@davemloft.net> > (cherry picked from commit 54e049c227d9968ff6a7d80aae5fec27b54d39da) > Signed-off-by: Frank Heimes <frank.heimes@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 ***************************************************/ >
Hi Kleber, since I'm only submitting kernel SRU requests once in a while I usually do a terminal log (and maintain a cheat sheet) and found that I once had the "From:" line in (like I had here as well: https://lists.ubuntu.com/archives/kernel-team/2019-March/099330.html). Guess I messed it up when doing the git send-email (with several option) - I made a note in my kernel SRU cheat sheet on that to not miss it anymore. Regarding the patch/commit headline "s390/qeth: report 25Gbit link speed" in the body - iirc it was automatically added to the body and I just thought it wouldn't harm to leave it there. Now understanding that it really harms the kernel SRU flow it won't be there next time (adding another note to my cheat sheet). Sorry for the inconvenience and thx for adjusting the requests and supporting me to improve them next time ... Thx, Frank On Fri, Mar 29, 2019 at 12:08 PM Kleber Souza <kleber.souza@canonical.com> wrote: > On 3/18/19 8:07 PM, frank.heimes@canonical.com wrote: > > From: Julian Wiedmann <jwi@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@linux.ibm.com> > > Signed-off-by: David S. Miller <davem@davemloft.net> > > (cherry picked from commit 54e049c227d9968ff6a7d80aae5fec27b54d39da) > > Signed-off-by: Frank Heimes <frank.heimes@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 > ***************************************************/ > > > > <div dir="ltr"><div dir="ltr"><div><div dir="ltr" class="m_7250530274998505798gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hi Kleber,</div><div>since I'm only submitting kernel SRU requests once in a while I usually do a terminal log (and maintain a cheat sheet) and found that I once had the "From:" line in (like I had here as well: <a href="https://lists.ubuntu.com/archives/kernel-team/2019-March/099330.html" target="_blank">https://lists.ubuntu.com/archives/kernel-team/2019-March/099330.html</a>).</div><div>Guess I messed it up when doing the git send-email (with several option) - I made a note in my kernel SRU cheat sheet on that to not miss it anymore.</div><div><br></div><div>Regarding the patch/commit headline "s390/qeth: report 25Gbit link speed" in the body - iirc it was automatically added to the body and I just thought it wouldn't harm to leave it there.</div><div>Now understanding that it really harms the kernel SRU flow it won't be there next time (adding another note to my cheat sheet).</div><div><br></div><div>Sorry for the inconvenience and thx for adjusting the requests and supporting me to improve them next time ...</div><div><br></div><div>Thx, Frank </div></div></div></div></div></div></div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 29, 2019 at 12:08 PM Kleber Souza <<a href="mailto:kleber.souza@canonical.com" target="_blank">kleber.souza@canonical.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 3/18/19 8:07 PM, <a href="mailto:frank.heimes@canonical.com" target="_blank">frank.heimes@canonical.com</a> wrote:<br> > From: Julian Wiedmann <<a href="mailto:jwi@linux.ibm.com" target="_blank">jwi@linux.ibm.com</a>><br> > <br> > BugLink: <a href="https://bugs.launchpad.net/bugs/1814892" rel="noreferrer" target="_blank">https://bugs.launchpad.net/bugs/1814892</a><br> > <br> > s390/qeth: report 25Gbit link speed<br> <br> Hi Frank,<br> <br> The above line with the duplicated subject is also not needed.<br> <br> I will amend the commit in our repo to fix it.<br> <br> <br> Thanks,<br> Kleber<br> <br> > <br> > This adds the various identifiers for 25Gbit cards, and wires them up<br> > into sysfs and ethtool.<br> > <br> > Signed-off-by: Julian Wiedmann <<a href="mailto:jwi@linux.ibm.com" target="_blank">jwi@linux.ibm.com</a>><br> > Signed-off-by: David S. Miller <<a href="mailto:davem@davemloft.net" target="_blank">davem@davemloft.net</a>><br> > (cherry picked from commit 54e049c227d9968ff6a7d80aae5fec27b54d39da)<br> > Signed-off-by: Frank Heimes <<a href="mailto:frank.heimes@canonical.com" target="_blank">frank.heimes@canonical.com</a>><br> > ---<br> > drivers/s390/net/qeth_core_main.c | 20 ++++++++++++++++++--<br> > drivers/s390/net/qeth_core_mpc.h | 2 ++<br> > 2 files changed, 20 insertions(+), 2 deletions(-)<br> > <br> > diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c<br> > index 0a7500b..c4ccf7b 100644<br> > --- a/drivers/s390/net/qeth_core_main.c<br> > +++ b/drivers/s390/net/qeth_core_main.c<br> > @@ -167,6 +167,8 @@ const char *qeth_get_cardname_short(struct qeth_card *card)<br> > return "OSD_1000";<br> > case QETH_LINK_TYPE_10GBIT_ETH:<br> > return "OSD_10GIG";<br> > + case QETH_LINK_TYPE_25GBIT_ETH:<br> > + return "OSD_25GIG";<br> > case QETH_LINK_TYPE_LANE_ETH100:<br> > return "OSD_FE_LANE";<br> > case QETH_LINK_TYPE_LANE_TR:<br> > @@ -4471,7 +4473,8 @@ static int qeth_mdio_read(struct net_device *dev, int phy_id, int regnum)<br> > rc = BMCR_FULLDPLX;<br> > if ((card->info.link_type != QETH_LINK_TYPE_GBIT_ETH) &&<br> > (card->info.link_type != QETH_LINK_TYPE_OSN) &&<br> > - (card->info.link_type != QETH_LINK_TYPE_10GBIT_ETH))<br> > + (card->info.link_type != QETH_LINK_TYPE_10GBIT_ETH) &&<br> > + (card->info.link_type != QETH_LINK_TYPE_25GBIT_ETH))<br> > rc |= BMCR_SPEED100;<br> > break;<br> > case MII_BMSR: /* Basic mode status register */<br> > @@ -6138,8 +6141,14 @@ static void qeth_set_cmd_adv_sup(struct ethtool_link_ksettings *cmd,<br> > WARN_ON_ONCE(1);<br> > }<br> > <br> > - /* fallthrough from high to low, to select all legal speeds: */<br> > + /* partially does fall through, to also select lower speeds */<br> > switch (maxspeed) {<br> > + case SPEED_25000:<br> > + ethtool_link_ksettings_add_link_mode(cmd, supported,<br> > + 25000baseSR_Full);<br> > + ethtool_link_ksettings_add_link_mode(cmd, advertising,<br> > + 25000baseSR_Full);<br> > + break;<br> > case SPEED_10000:<br> > ethtool_link_ksettings_add_link_mode(cmd, supported,<br> > 10000baseT_Full);<br> > @@ -6222,6 +6231,10 @@ int qeth_core_ethtool_get_link_ksettings(struct net_device *netdev,<br> > cmd->base.speed = SPEED_10000;<br> > cmd->base.port = PORT_FIBRE;<br> > break;<br> > + case QETH_LINK_TYPE_25GBIT_ETH:<br> > + cmd->base.speed = SPEED_25000;<br> > + cmd->base.port = PORT_FIBRE;<br> > + break;<br> > default:<br> > cmd->base.speed = SPEED_10;<br> > cmd->base.port = PORT_TP;<br> > @@ -6288,6 +6301,9 @@ int qeth_core_ethtool_get_link_ksettings(struct net_device *netdev,<br> > case CARD_INFO_PORTS_10G:<br> > cmd->base.speed = SPEED_10000;<br> > break;<br> > + case CARD_INFO_PORTS_25G:<br> > + cmd->base.speed = SPEED_25000;<br> > + break;<br> > }<br> > <br> > return 0;<br> > diff --git a/drivers/s390/net/qeth_core_mpc.h b/drivers/s390/net/qeth_core_mpc.h<br> > index 96d566a..c1f1003 100644<br> > --- a/drivers/s390/net/qeth_core_mpc.h<br> > +++ b/drivers/s390/net/qeth_core_mpc.h<br> > @@ -72,6 +72,7 @@ enum qeth_link_types {<br> > QETH_LINK_TYPE_GBIT_ETH = 0x03,<br> > QETH_LINK_TYPE_OSN = 0x04,<br> > QETH_LINK_TYPE_10GBIT_ETH = 0x10,<br> > + QETH_LINK_TYPE_25GBIT_ETH = 0x12,<br> > QETH_LINK_TYPE_LANE_ETH100 = 0x81,<br> > QETH_LINK_TYPE_LANE_TR = 0x82,<br> > QETH_LINK_TYPE_LANE_ETH1000 = 0x83,<br> > @@ -329,6 +330,7 @@ enum qeth_card_info_port_speed {<br> > CARD_INFO_PORTS_100M = 0x00000006,<br> > CARD_INFO_PORTS_1G = 0x00000007,<br> > CARD_INFO_PORTS_10G = 0x00000008,<br> > + CARD_INFO_PORTS_25G = 0x0000000A,<br> > };<br> > <br> > /* (SET)DELIP(M) IPA stuff ***************************************************/<br> > <br> <br> </blockquote></div>
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 ***************************************************/