Skip to content

Commit

Permalink
net: Move flow control definitions to mii.h
Browse files Browse the repository at this point in the history
flags used within drivers for indicating tx and rx flow control are
defined in 4 drivers (and probably more), move these constants to mii.h.

The 3 SMSC drivers use the same constants (FLOW_CTRL_TX), but TG3 uses
TG3_FLOW_CTRL_TX, so this patch also renames the constants within TG3.

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Steve Glendinning authored and David S. Miller committed Dec 16, 2008
1 parent f986732 commit e18ce34
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 35 deletions.
3 changes: 0 additions & 3 deletions drivers/net/smsc911x.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,6 @@
#define SMSC_ASSERT_MAC_LOCK(pdata) do {} while (0)
#endif /* CONFIG_DEBUG_SPINLOCK */

#define FLOW_CTRL_TX (1)
#define FLOW_CTRL_RX (2)

/* SMSC911x registers and bitfields */
#define RX_DATA_FIFO 0x00

Expand Down
3 changes: 0 additions & 3 deletions drivers/net/smsc9420.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,6 @@

#define SMSC9420_EEPROM_SIZE ((u32)11)

#define FLOW_CTRL_TX (1)
#define FLOW_CTRL_RX (2)

#define PKT_BUF_SZ (VLAN_ETH_FRAME_LEN + NET_IP_ALIGN + 4)

/***********************************************/
Expand Down
50 changes: 25 additions & 25 deletions drivers/net/tg3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1187,9 +1187,9 @@ static void tg3_link_report(struct tg3 *tp)
printk(KERN_INFO PFX
"%s: Flow control is %s for TX and %s for RX.\n",
tp->dev->name,
(tp->link_config.active_flowctrl & TG3_FLOW_CTRL_TX) ?
(tp->link_config.active_flowctrl & FLOW_CTRL_TX) ?
"on" : "off",
(tp->link_config.active_flowctrl & TG3_FLOW_CTRL_RX) ?
(tp->link_config.active_flowctrl & FLOW_CTRL_RX) ?
"on" : "off");
tg3_ump_link_report(tp);
}
Expand All @@ -1199,11 +1199,11 @@ static u16 tg3_advert_flowctrl_1000T(u8 flow_ctrl)
{
u16 miireg;

if ((flow_ctrl & TG3_FLOW_CTRL_TX) && (flow_ctrl & TG3_FLOW_CTRL_RX))
if ((flow_ctrl & FLOW_CTRL_TX) && (flow_ctrl & FLOW_CTRL_RX))
miireg = ADVERTISE_PAUSE_CAP;
else if (flow_ctrl & TG3_FLOW_CTRL_TX)
else if (flow_ctrl & FLOW_CTRL_TX)
miireg = ADVERTISE_PAUSE_ASYM;
else if (flow_ctrl & TG3_FLOW_CTRL_RX)
else if (flow_ctrl & FLOW_CTRL_RX)
miireg = ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;
else
miireg = 0;
Expand All @@ -1215,11 +1215,11 @@ static u16 tg3_advert_flowctrl_1000X(u8 flow_ctrl)
{
u16 miireg;

if ((flow_ctrl & TG3_FLOW_CTRL_TX) && (flow_ctrl & TG3_FLOW_CTRL_RX))
if ((flow_ctrl & FLOW_CTRL_TX) && (flow_ctrl & FLOW_CTRL_RX))
miireg = ADVERTISE_1000XPAUSE;
else if (flow_ctrl & TG3_FLOW_CTRL_TX)
else if (flow_ctrl & FLOW_CTRL_TX)
miireg = ADVERTISE_1000XPSE_ASYM;
else if (flow_ctrl & TG3_FLOW_CTRL_RX)
else if (flow_ctrl & FLOW_CTRL_RX)
miireg = ADVERTISE_1000XPAUSE | ADVERTISE_1000XPSE_ASYM;
else
miireg = 0;
Expand Down Expand Up @@ -1256,16 +1256,16 @@ static u8 tg3_resolve_flowctrl_1000X(u16 lcladv, u16 rmtadv)
if (lcladv & ADVERTISE_1000XPAUSE) {
if (lcladv & ADVERTISE_1000XPSE_ASYM) {
if (rmtadv & LPA_1000XPAUSE)
cap = TG3_FLOW_CTRL_TX | TG3_FLOW_CTRL_RX;
cap = FLOW_CTRL_TX | FLOW_CTRL_RX;
else if (rmtadv & LPA_1000XPAUSE_ASYM)
cap = TG3_FLOW_CTRL_RX;
cap = FLOW_CTRL_RX;
} else {
if (rmtadv & LPA_1000XPAUSE)
cap = TG3_FLOW_CTRL_TX | TG3_FLOW_CTRL_RX;
cap = FLOW_CTRL_TX | FLOW_CTRL_RX;
}
} else if (lcladv & ADVERTISE_1000XPSE_ASYM) {
if ((rmtadv & LPA_1000XPAUSE) && (rmtadv & LPA_1000XPAUSE_ASYM))
cap = TG3_FLOW_CTRL_TX;
cap = FLOW_CTRL_TX;
}

return cap;
Expand Down Expand Up @@ -1294,15 +1294,15 @@ static void tg3_setup_flow_control(struct tg3 *tp, u32 lcladv, u32 rmtadv)

tp->link_config.active_flowctrl = flowctrl;

if (flowctrl & TG3_FLOW_CTRL_RX)
if (flowctrl & FLOW_CTRL_RX)
tp->rx_mode |= RX_MODE_FLOW_CTRL_ENABLE;
else
tp->rx_mode &= ~RX_MODE_FLOW_CTRL_ENABLE;

if (old_rx_mode != tp->rx_mode)
tw32_f(MAC_RX_MODE, tp->rx_mode);

if (flowctrl & TG3_FLOW_CTRL_TX)
if (flowctrl & FLOW_CTRL_TX)
tp->tx_mode |= TX_MODE_FLOW_CTRL_ENABLE;
else
tp->tx_mode &= ~TX_MODE_FLOW_CTRL_ENABLE;
Expand Down Expand Up @@ -9419,12 +9419,12 @@ static void tg3_get_pauseparam(struct net_device *dev, struct ethtool_pauseparam

epause->autoneg = (tp->tg3_flags & TG3_FLAG_PAUSE_AUTONEG) != 0;

if (tp->link_config.active_flowctrl & TG3_FLOW_CTRL_RX)
if (tp->link_config.active_flowctrl & FLOW_CTRL_RX)
epause->rx_pause = 1;
else
epause->rx_pause = 0;

if (tp->link_config.active_flowctrl & TG3_FLOW_CTRL_TX)
if (tp->link_config.active_flowctrl & FLOW_CTRL_TX)
epause->tx_pause = 1;
else
epause->tx_pause = 0;
Expand Down Expand Up @@ -9475,14 +9475,14 @@ static int tg3_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam
}
} else {
if (epause->rx_pause)
tp->link_config.flowctrl |= TG3_FLOW_CTRL_RX;
tp->link_config.flowctrl |= FLOW_CTRL_RX;
else
tp->link_config.flowctrl &= ~TG3_FLOW_CTRL_RX;
tp->link_config.flowctrl &= ~FLOW_CTRL_RX;

if (epause->tx_pause)
tp->link_config.flowctrl |= TG3_FLOW_CTRL_TX;
tp->link_config.flowctrl |= FLOW_CTRL_TX;
else
tp->link_config.flowctrl &= ~TG3_FLOW_CTRL_TX;
tp->link_config.flowctrl &= ~FLOW_CTRL_TX;

if (netif_running(dev))
tg3_setup_flow_control(tp, 0, 0);
Expand All @@ -9502,13 +9502,13 @@ static int tg3_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam
else
tp->tg3_flags &= ~TG3_FLAG_PAUSE_AUTONEG;
if (epause->rx_pause)
tp->link_config.flowctrl |= TG3_FLOW_CTRL_RX;
tp->link_config.flowctrl |= FLOW_CTRL_RX;
else
tp->link_config.flowctrl &= ~TG3_FLOW_CTRL_RX;
tp->link_config.flowctrl &= ~FLOW_CTRL_RX;
if (epause->tx_pause)
tp->link_config.flowctrl |= TG3_FLOW_CTRL_TX;
tp->link_config.flowctrl |= FLOW_CTRL_TX;
else
tp->link_config.flowctrl &= ~TG3_FLOW_CTRL_TX;
tp->link_config.flowctrl &= ~FLOW_CTRL_TX;

if (netif_running(dev)) {
tg3_halt(tp, RESET_KIND_SHUTDOWN, 1);
Expand Down Expand Up @@ -13849,7 +13849,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,

/* flow control autonegotiation is default behavior */
tp->tg3_flags |= TG3_FLAG_PAUSE_AUTONEG;
tp->link_config.flowctrl = TG3_FLOW_CTRL_TX | TG3_FLOW_CTRL_RX;
tp->link_config.flowctrl = FLOW_CTRL_TX | FLOW_CTRL_RX;

tg3_init_coal(tp);

Expand Down
2 changes: 0 additions & 2 deletions drivers/net/tg3.h
Original file line number Diff line number Diff line change
Expand Up @@ -2338,8 +2338,6 @@ struct tg3_link_config {
u8 duplex;
u8 autoneg;
u8 flowctrl;
#define TG3_FLOW_CTRL_TX 0x01
#define TG3_FLOW_CTRL_RX 0x02

/* Describes what we actually have. */
u8 active_flowctrl;
Expand Down
2 changes: 0 additions & 2 deletions drivers/net/usb/smsc95xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@
#define SMSC95XX_INTERNAL_PHY_ID (1)
#define SMSC95XX_TX_OVERHEAD (8)
#define SMSC95XX_TX_OVERHEAD_CSUM (12)
#define FLOW_CTRL_TX (1)
#define FLOW_CTRL_RX (2)

struct smsc95xx_priv {
u32 mac_cr;
Expand Down
4 changes: 4 additions & 0 deletions include/linux/mii.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,10 @@
#define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */
#define LPA_1000HALF 0x0400 /* Link partner 1000BASE-T half duplex */

/* Flow control flags */
#define FLOW_CTRL_TX 0x01
#define FLOW_CTRL_RX 0x02

/* This structure is used in all SIOCxMIIxxx ioctl calls */
struct mii_ioctl_data {
__u16 phy_id;
Expand Down

0 comments on commit e18ce34

Please sign in to comment.