aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sky2.h
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@vyatta.com>2009-08-14 15:36:41 -0700
committerDavid S. Miller <davem@davemloft.net>2009-08-14 15:36:41 -0700
commit0ea065e52eb6a0f029b5fa5ed2f142be1b66a153 (patch)
treef18bfc3027224f724ec00c6f4c0557e3f6861035 /drivers/net/sky2.h
parentsky2: lock less transmit completion (diff)
downloadlinux-dev-0ea065e52eb6a0f029b5fa5ed2f142be1b66a153.tar.xz
linux-dev-0ea065e52eb6a0f029b5fa5ed2f142be1b66a153.zip
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>
Diffstat (limited to 'drivers/net/sky2.h')
-rw-r--r--drivers/net/sky2.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h
index 4486b066b43f..c9548d6d567c 100644
--- a/drivers/net/sky2.h
+++ b/drivers/net/sky2.h
@@ -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;