mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 10:39:08 +00:00
net: Add mii_resolve_flowctrl_fdx()
Add an mii helper function to resolve flow control status per IEEE 802.3-2005 table 28B-3. This function was taken from the Linux source tree. Signed-off-by: Yuiko Oshino <yuiko.oshino@microchip.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
3f8f1410b5
commit
1c1e370033
1 changed files with 23 additions and 0 deletions
|
@ -190,4 +190,27 @@ static inline unsigned int mii_duplex (unsigned int duplex_lock,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* mii_resolve_flowctrl_fdx
|
||||||
|
* @lcladv: value of MII ADVERTISE register
|
||||||
|
* @rmtadv: value of MII LPA register
|
||||||
|
*
|
||||||
|
* Resolve full duplex flow control as per IEEE 802.3-2005 table 28B-3
|
||||||
|
*/
|
||||||
|
static inline u8 mii_resolve_flowctrl_fdx(u16 lcladv, u16 rmtadv)
|
||||||
|
{
|
||||||
|
u8 cap = 0;
|
||||||
|
|
||||||
|
if (lcladv & rmtadv & ADVERTISE_PAUSE_CAP) {
|
||||||
|
cap = FLOW_CTRL_TX | FLOW_CTRL_RX;
|
||||||
|
} else if (lcladv & rmtadv & ADVERTISE_PAUSE_ASYM) {
|
||||||
|
if (lcladv & ADVERTISE_PAUSE_CAP)
|
||||||
|
cap = FLOW_CTRL_RX;
|
||||||
|
else if (rmtadv & ADVERTISE_PAUSE_CAP)
|
||||||
|
cap = FLOW_CTRL_TX;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cap;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* __LINUX_MII_H__ */
|
#endif /* __LINUX_MII_H__ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue