Message ID | CE371C1263339941885964188A0225FA335A6F@CHN-SV-EXMX03.mchp-main.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | [v1,net] smsc95xx: Configure pause time to 0xffff when tx flow control enabled | expand |
On Mon, Sep 11, 2017 at 12:32:10PM +0000, Nisar.Sayed@microchip.com wrote: > From: Nisar Sayed <Nisar.Sayed@microchip.com> > > Configure pause time to 0xffff when tx flow control enabled > > Set pause time to 0xffff in the pause frame to indicate the > partner to stop sending the packets. When RX buffer frees up, > the device sends pause frame with pause time zero for partner to > resume transmission. Hi Nisar Thanks for the updated description. Since you are posting this for net, not net-next, could you add a fixes: tag? Thanks Andrew
> On Mon, Sep 11, 2017 at 12:32:10PM +0000, Nisar.Sayed@microchip.com > wrote: > > From: Nisar Sayed <Nisar.Sayed@microchip.com> > > > > Configure pause time to 0xffff when tx flow control enabled > > > > Set pause time to 0xffff in the pause frame to indicate the partner to > > stop sending the packets. When RX buffer frees up, the device sends > > pause frame with pause time zero for partner to resume transmission. > > Hi Nisar > > Thanks for the updated description. Since you are posting this for net, not > net-next, could you add a fixes: tag? > > Thanks > Andrew Thanks Andrew, yes I will add and will submit next revision - Nisar
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index 340c134..309b88a 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -526,7 +526,7 @@ static void smsc95xx_set_multicast(struct net_device *netdev) static int smsc95xx_phy_update_flowcontrol(struct usbnet *dev, u8 duplex, u16 lcladv, u16 rmtadv) { - u32 flow, afc_cfg = 0; + u32 flow = 0, afc_cfg; int ret = smsc95xx_read_reg(dev, AFC_CFG, &afc_cfg); if (ret < 0) @@ -537,20 +537,19 @@ static int smsc95xx_phy_update_flowcontrol(struct usbnet *dev, u8 duplex, if (cap & FLOW_CTRL_RX) flow = 0xFFFF0002; - else - flow = 0; - if (cap & FLOW_CTRL_TX) + if (cap & FLOW_CTRL_TX) { afc_cfg |= 0xF; - else + flow |= 0xFFFF0000; + } else { afc_cfg &= ~0xF; + } netif_dbg(dev, link, dev->net, "rx pause %s, tx pause %s\n", cap & FLOW_CTRL_RX ? "enabled" : "disabled", cap & FLOW_CTRL_TX ? "enabled" : "disabled"); } else { netif_dbg(dev, link, dev->net, "half duplex\n"); - flow = 0; afc_cfg |= 0xF; }