sky2: fix pause negotiation
The sky2 driver combines auto speed negotiation with automatic negotiation of pause parameters; but the ethtool interface expects them to be split. This patch allows autonegotiation to be used for speed, but manually disable flow control. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
481cea4a4d
commit
0ea065e52e
@@ -1583,7 +1583,6 @@ enum {
|
||||
};
|
||||
|
||||
#define GM_GPCR_SPEED_1000 (GM_GPCR_GIGS_ENA | GM_GPCR_SPEED_100)
|
||||
#define GM_GPCR_AU_ALL_DIS (GM_GPCR_AU_DUP_DIS | GM_GPCR_AU_FCT_DIS|GM_GPCR_AU_SPD_DIS)
|
||||
|
||||
/* GM_TX_CTRL 16 bit r/w Transmit Control Register */
|
||||
enum {
|
||||
@@ -2042,15 +2041,18 @@ struct sky2_port {
|
||||
u8 fifo_lev;
|
||||
} check;
|
||||
|
||||
|
||||
dma_addr_t rx_le_map;
|
||||
dma_addr_t tx_le_map;
|
||||
|
||||
u16 advertising; /* ADVERTISED_ bits */
|
||||
u16 speed; /* SPEED_1000, SPEED_100, ... */
|
||||
u8 autoneg; /* AUTONEG_ENABLE, AUTONEG_DISABLE */
|
||||
u8 duplex; /* DUPLEX_HALF, DUPLEX_FULL */
|
||||
u8 rx_csum;
|
||||
u8 wol;
|
||||
u16 speed; /* SPEED_1000, SPEED_100, ... */
|
||||
u8 wol; /* WAKE_ bits */
|
||||
u8 duplex; /* DUPLEX_HALF, DUPLEX_FULL */
|
||||
u16 flags;
|
||||
#define SKY2_FLAG_RX_CHECKSUM 0x0001
|
||||
#define SKY2_FLAG_AUTO_SPEED 0x0002
|
||||
#define SKY2_FLAG_AUTO_PAUSE 0x0004
|
||||
|
||||
u8 restarting;
|
||||
enum flow_control flow_mode;
|
||||
enum flow_control flow_status;
|
||||
|
Reference in New Issue
Block a user