Re: [PATCH 2.6.38.4] mii: add support of pause frames in mii_get_an
From: Stephen Hemminger <hidden>
Date: 2011-04-28 04:49:06
Also in:
lkml
From: Stephen Hemminger <hidden>
Date: 2011-04-28 04:49:06
Also in:
lkml
On Thu, 28 Apr 2011 10:49:14 +0700 artpol [off-list ref] wrote:
Add support of pause frames advertise in mii_get_an. This provides all drivers that use mii_ethtool_gset to represent their own and Link partner flow control abilities in ethtool. Signed-off-by: Artem Polyakov <redacted> ------ linux-2.6.38.4/drivers/net/mii.c.orig 2011-04-28 08:46:13.000000000 +0700 +++ linux-2.6.38.4/drivers/net/mii.c 2011-04-25 23:04:20.694981968 +0700@@ -49,6 +49,10 @@ static u32 mii_get_an(struct mii_if_info result |= ADVERTISED_100baseT_Half; if (advert & ADVERTISE_100FULL) result |= ADVERTISED_100baseT_Full; + if (advert & ADVERTISE_PAUSE_CAP) + result |= ADVERTISED_Pause; + if (advert & ADVERTISE_PAUSE_ASYM) + result |= ADVERTISED_Asym_Pause; return result; }
One common driver problem is that auto negotiation of pause is really a separate operation from negotiation of speed. It should be possible to force no flow-control but still negotiate speed and vice-versa. The ethtool api breaks this into two operations but many drivers munge them together.