diff options
author | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2008-03-28 09:15:16 -0700 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-03-28 22:15:00 -0400 |
commit | 318a94d68979cbe9cc98a3050b4b7be2f08513c8 (patch) | |
tree | 32fdd0bd9f4a0c9dcc2a958b18820286a9acdcec /drivers/net/e1000e/hw.h | |
parent | e2de3eb69c40c01739ce9b154c65e51d94d72966 (diff) | |
download | linux-318a94d68979cbe9cc98a3050b4b7be2f08513c8.tar.bz2 |
e1000e: reorganize PHY and flow control interface
This reorganization moves the PHY status into a separate
struct. Flow Control setup is moved into this struct as well
and frame size away from here into the adapter struct where its
inly use is.
The post-link-up code is now a separate function and moved out
of the watchdog function itself. This allows us to track the
es2lan restart issue a bit easier.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/e1000e/hw.h')
-rw-r--r-- | drivers/net/e1000e/hw.h | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h index b582d78f0531..0b4145a73229 100644 --- a/drivers/net/e1000e/hw.h +++ b/drivers/net/e1000e/hw.h @@ -400,7 +400,7 @@ enum e1000_rev_polarity{ e1000_rev_polarity_undefined = 0xFF }; -enum e1000_fc_mode { +enum e1000_fc_type { e1000_fc_none = 0, e1000_fc_rx_pause, e1000_fc_tx_pause, @@ -727,16 +727,12 @@ struct e1000_mac_info { u8 perm_addr[6]; enum e1000_mac_type type; - enum e1000_fc_mode fc; - enum e1000_fc_mode original_fc; u32 collision_delta; u32 ledctl_default; u32 ledctl_mode1; u32 ledctl_mode2; - u32 max_frame_size; u32 mc_filter_type; - u32 min_frame_size; u32 tx_packet_delta; u32 txcw; @@ -747,9 +743,6 @@ struct e1000_mac_info { u16 ifs_step_size; u16 mta_reg_count; u16 rar_entry_count; - u16 fc_high_water; - u16 fc_low_water; - u16 fc_pause_time; u8 forced_speed_duplex; @@ -779,6 +772,8 @@ struct e1000_phy_info { u32 reset_delay_us; /* in usec */ u32 revision; + enum e1000_media_type media_type; + u16 autoneg_advertised; u16 autoneg_mask; u16 cable_length; @@ -791,7 +786,7 @@ struct e1000_phy_info { bool is_mdix; bool polarity_correction; bool speed_downgraded; - bool wait_for_link; + bool autoneg_wait_to_complete; }; struct e1000_nvm_info { @@ -816,6 +811,16 @@ struct e1000_bus_info { u16 func; }; +struct e1000_fc_info { + u32 high_water; /* Flow control high-water mark */ + u32 low_water; /* Flow control low-water mark */ + u16 pause_time; /* Flow control pause timer */ + bool send_xon; /* Flow control send XON */ + bool strict_ieee; /* Strict IEEE mode */ + enum e1000_fc_type type; /* Type of flow control */ + enum e1000_fc_type original_type; +}; + struct e1000_dev_spec_82571 { bool laa_is_present; bool alt_mac_addr_is_present; @@ -840,6 +845,7 @@ struct e1000_hw { u8 __iomem *flash_address; struct e1000_mac_info mac; + struct e1000_fc_info fc; struct e1000_phy_info phy; struct e1000_nvm_info nvm; struct e1000_bus_info bus; @@ -849,8 +855,6 @@ struct e1000_hw { struct e1000_dev_spec_82571 e82571; struct e1000_dev_spec_ich8lan ich8lan; } dev_spec; - - enum e1000_media_type media_type; }; #ifdef DEBUG |