niu: improve ethtool support for gigabit copper cards
Introduced support for link speed and duplex setting (ethtool -s), link advertising parameters and autonegotiation (ethtool -r): - struct niu_link_config: split advertising and autoneg fields into active and target values (similar to speed and duplex fields) - mii_init_common(): rewrite function to actually apply requested niu_link_config parameters instead of providing default initialization - link_status_1g(): move parsing of MII registers into new link_status_mii() function (link_status_1g_rgmii() could possibly use this new implementation too) - introduce simple nway_reset method - fix incorrect XMAC_CONFIG_MODE selection for 10Mbps case Signed-off-by: Constantin Baranov <baranov@mercdev.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e0d8496a66
commit
38bb045d49
@ -3131,16 +3131,19 @@ struct niu_ops {
|
||||
};
|
||||
|
||||
struct niu_link_config {
|
||||
u32 supported;
|
||||
|
||||
/* Describes what we're trying to get. */
|
||||
u32 advertising;
|
||||
u32 supported;
|
||||
u16 speed;
|
||||
u8 duplex;
|
||||
u8 autoneg;
|
||||
|
||||
/* Describes what we actually have. */
|
||||
u32 active_advertising;
|
||||
u16 active_speed;
|
||||
u8 active_duplex;
|
||||
u8 active_autoneg;
|
||||
#define SPEED_INVALID 0xffff
|
||||
#define DUPLEX_INVALID 0xff
|
||||
#define AUTONEG_INVALID 0xff
|
||||
|
Reference in New Issue
Block a user