Merge ../linux-2.6-watchdog-mm
[pandora-kernel.git] / drivers / net / e1000 / e1000_hw.h
index 3321fb1..d671058 100644 (file)
@@ -1301,165 +1301,170 @@ struct e1000_ffvt_entry {
 #define E1000_82542_RSSIR       E1000_RSSIR
 #define E1000_82542_KUMCTRLSTA E1000_KUMCTRLSTA
 #define E1000_82542_SW_FW_SYNC E1000_SW_FW_SYNC
+#define E1000_82542_MANC2H      E1000_MANC2H
 
 /* Statistics counters collected by the MAC */
 struct e1000_hw_stats {
-    uint64_t crcerrs;
-    uint64_t algnerrc;
-    uint64_t symerrs;
-    uint64_t rxerrc;
-    uint64_t txerrc;
-    uint64_t mpc;
-    uint64_t scc;
-    uint64_t ecol;
-    uint64_t mcc;
-    uint64_t latecol;
-    uint64_t colc;
-    uint64_t dc;
-    uint64_t tncrs;
-    uint64_t sec;
-    uint64_t cexterr;
-    uint64_t rlec;
-    uint64_t xonrxc;
-    uint64_t xontxc;
-    uint64_t xoffrxc;
-    uint64_t xofftxc;
-    uint64_t fcruc;
-    uint64_t prc64;
-    uint64_t prc127;
-    uint64_t prc255;
-    uint64_t prc511;
-    uint64_t prc1023;
-    uint64_t prc1522;
-    uint64_t gprc;
-    uint64_t bprc;
-    uint64_t mprc;
-    uint64_t gptc;
-    uint64_t gorcl;
-    uint64_t gorch;
-    uint64_t gotcl;
-    uint64_t gotch;
-    uint64_t rnbc;
-    uint64_t ruc;
-    uint64_t rfc;
-    uint64_t roc;
-    uint64_t rlerrc;
-    uint64_t rjc;
-    uint64_t mgprc;
-    uint64_t mgpdc;
-    uint64_t mgptc;
-    uint64_t torl;
-    uint64_t torh;
-    uint64_t totl;
-    uint64_t toth;
-    uint64_t tpr;
-    uint64_t tpt;
-    uint64_t ptc64;
-    uint64_t ptc127;
-    uint64_t ptc255;
-    uint64_t ptc511;
-    uint64_t ptc1023;
-    uint64_t ptc1522;
-    uint64_t mptc;
-    uint64_t bptc;
-    uint64_t tsctc;
-    uint64_t tsctfc;
-    uint64_t iac;
-    uint64_t icrxptc;
-    uint64_t icrxatc;
-    uint64_t ictxptc;
-    uint64_t ictxatc;
-    uint64_t ictxqec;
-    uint64_t ictxqmtc;
-    uint64_t icrxdmtc;
-    uint64_t icrxoc;
+       uint64_t                crcerrs;
+       uint64_t                algnerrc;
+       uint64_t                symerrs;
+       uint64_t                rxerrc;
+       uint64_t                txerrc;
+       uint64_t                mpc;
+       uint64_t                scc;
+       uint64_t                ecol;
+       uint64_t                mcc;
+       uint64_t                latecol;
+       uint64_t                colc;
+       uint64_t                dc;
+       uint64_t                tncrs;
+       uint64_t                sec;
+       uint64_t                cexterr;
+       uint64_t                rlec;
+       uint64_t                xonrxc;
+       uint64_t                xontxc;
+       uint64_t                xoffrxc;
+       uint64_t                xofftxc;
+       uint64_t                fcruc;
+       uint64_t                prc64;
+       uint64_t                prc127;
+       uint64_t                prc255;
+       uint64_t                prc511;
+       uint64_t                prc1023;
+       uint64_t                prc1522;
+       uint64_t                gprc;
+       uint64_t                bprc;
+       uint64_t                mprc;
+       uint64_t                gptc;
+       uint64_t                gorcl;
+       uint64_t                gorch;
+       uint64_t                gotcl;
+       uint64_t                gotch;
+       uint64_t                rnbc;
+       uint64_t                ruc;
+       uint64_t                rfc;
+       uint64_t                roc;
+       uint64_t                rlerrc;
+       uint64_t                rjc;
+       uint64_t                mgprc;
+       uint64_t                mgpdc;
+       uint64_t                mgptc;
+       uint64_t                torl;
+       uint64_t                torh;
+       uint64_t                totl;
+       uint64_t                toth;
+       uint64_t                tpr;
+       uint64_t                tpt;
+       uint64_t                ptc64;
+       uint64_t                ptc127;
+       uint64_t                ptc255;
+       uint64_t                ptc511;
+       uint64_t                ptc1023;
+       uint64_t                ptc1522;
+       uint64_t                mptc;
+       uint64_t                bptc;
+       uint64_t                tsctc;
+       uint64_t                tsctfc;
+       uint64_t                iac;
+       uint64_t                icrxptc;
+       uint64_t                icrxatc;
+       uint64_t                ictxptc;
+       uint64_t                ictxatc;
+       uint64_t                ictxqec;
+       uint64_t                ictxqmtc;
+       uint64_t                icrxdmtc;
+       uint64_t                icrxoc;
 };
 
 /* Structure containing variables used by the shared code (e1000_hw.c) */
 struct e1000_hw {
-    uint8_t __iomem *hw_addr;
-    uint8_t __iomem *flash_address;
-    e1000_mac_type mac_type;
-    e1000_phy_type phy_type;
-    uint32_t phy_init_script;
-    e1000_media_type media_type;
-    void *back;
-    struct e1000_shadow_ram *eeprom_shadow_ram;
-    uint32_t flash_bank_size;
-    uint32_t flash_base_addr;
-    e1000_fc_type fc;
-    e1000_bus_speed bus_speed;
-    e1000_bus_width bus_width;
-    e1000_bus_type bus_type;
-    struct e1000_eeprom_info eeprom;
-    e1000_ms_type master_slave;
-    e1000_ms_type original_master_slave;
-    e1000_ffe_config ffe_config_state;
-    uint32_t asf_firmware_present;
-    uint32_t eeprom_semaphore_present;
-    uint32_t swfw_sync_present;
-    uint32_t swfwhw_semaphore_present;
-    unsigned long io_base;
-    uint32_t phy_id;
-    uint32_t phy_revision;
-    uint32_t phy_addr;
-    uint32_t original_fc;
-    uint32_t txcw;
-    uint32_t autoneg_failed;
-    uint32_t max_frame_size;
-    uint32_t min_frame_size;
-    uint32_t mc_filter_type;
-    uint32_t num_mc_addrs;
-    uint32_t collision_delta;
-    uint32_t tx_packet_delta;
-    uint32_t ledctl_default;
-    uint32_t ledctl_mode1;
-    uint32_t ledctl_mode2;
-    boolean_t tx_pkt_filtering;
-    struct e1000_host_mng_dhcp_cookie mng_cookie;
-    uint16_t phy_spd_default;
-    uint16_t autoneg_advertised;
-    uint16_t pci_cmd_word;
-    uint16_t fc_high_water;
-    uint16_t fc_low_water;
-    uint16_t fc_pause_time;
-    uint16_t current_ifs_val;
-    uint16_t ifs_min_val;
-    uint16_t ifs_max_val;
-    uint16_t ifs_step_size;
-    uint16_t ifs_ratio;
-    uint16_t device_id;
-    uint16_t vendor_id;
-    uint16_t subsystem_id;
-    uint16_t subsystem_vendor_id;
-    uint8_t revision_id;
-    uint8_t autoneg;
-    uint8_t mdix;
-    uint8_t forced_speed_duplex;
-    uint8_t wait_autoneg_complete;
-    uint8_t dma_fairness;
-    uint8_t mac_addr[NODE_ADDRESS_SIZE];
-    uint8_t perm_mac_addr[NODE_ADDRESS_SIZE];
-    boolean_t disable_polarity_correction;
-    boolean_t speed_downgraded;
-    e1000_smart_speed smart_speed;
-    e1000_dsp_config dsp_config_state;
-    boolean_t get_link_status;
-    boolean_t serdes_link_down;
-    boolean_t tbi_compatibility_en;
-    boolean_t tbi_compatibility_on;
-    boolean_t laa_is_present;
-    boolean_t phy_reset_disable;
-    boolean_t initialize_hw_bits_disable;
-    boolean_t fc_send_xon;
-    boolean_t fc_strict_ieee;
-    boolean_t report_tx_early;
-    boolean_t adaptive_ifs;
-    boolean_t ifs_params_forced;
-    boolean_t in_ifs_mode;
-    boolean_t mng_reg_access_disabled;
-    boolean_t leave_av_bit_off;
-    boolean_t kmrn_lock_loss_workaround_disabled;
+       uint8_t __iomem         *hw_addr;
+       uint8_t __iomem         *flash_address;
+       e1000_mac_type          mac_type;
+       e1000_phy_type          phy_type;
+       uint32_t                phy_init_script;
+       e1000_media_type        media_type;
+       void                    *back;
+       struct e1000_shadow_ram *eeprom_shadow_ram;
+       uint32_t                flash_bank_size;
+       uint32_t                flash_base_addr;
+       e1000_fc_type           fc;
+       e1000_bus_speed         bus_speed;
+       e1000_bus_width         bus_width;
+       e1000_bus_type          bus_type;
+       struct e1000_eeprom_info eeprom;
+       e1000_ms_type           master_slave;
+       e1000_ms_type           original_master_slave;
+       e1000_ffe_config        ffe_config_state;
+       uint32_t                asf_firmware_present;
+       uint32_t                eeprom_semaphore_present;
+       uint32_t                swfw_sync_present;
+       uint32_t                swfwhw_semaphore_present;
+       unsigned long           io_base;
+       uint32_t                phy_id;
+       uint32_t                phy_revision;
+       uint32_t                phy_addr;
+       uint32_t                original_fc;
+       uint32_t                txcw;
+       uint32_t                autoneg_failed;
+       uint32_t                max_frame_size;
+       uint32_t                min_frame_size;
+       uint32_t                mc_filter_type;
+       uint32_t                num_mc_addrs;
+       uint32_t                collision_delta;
+       uint32_t                tx_packet_delta;
+       uint32_t                ledctl_default;
+       uint32_t                ledctl_mode1;
+       uint32_t                ledctl_mode2;
+       boolean_t               tx_pkt_filtering;
+       struct e1000_host_mng_dhcp_cookie mng_cookie;
+       uint16_t                phy_spd_default;
+       uint16_t                autoneg_advertised;
+       uint16_t                pci_cmd_word;
+       uint16_t                fc_high_water;
+       uint16_t                fc_low_water;
+       uint16_t                fc_pause_time;
+       uint16_t                current_ifs_val;
+       uint16_t                ifs_min_val;
+       uint16_t                ifs_max_val;
+       uint16_t                ifs_step_size;
+       uint16_t                ifs_ratio;
+       uint16_t                device_id;
+       uint16_t                vendor_id;
+       uint16_t                subsystem_id;
+       uint16_t                subsystem_vendor_id;
+       uint8_t                 revision_id;
+       uint8_t                 autoneg;
+       uint8_t                 mdix;
+       uint8_t                 forced_speed_duplex;
+       uint8_t                 wait_autoneg_complete;
+       uint8_t                 dma_fairness;
+       uint8_t                 mac_addr[NODE_ADDRESS_SIZE];
+       uint8_t                 perm_mac_addr[NODE_ADDRESS_SIZE];
+       boolean_t               disable_polarity_correction;
+       boolean_t               speed_downgraded;
+       e1000_smart_speed       smart_speed;
+       e1000_dsp_config        dsp_config_state;
+       boolean_t               get_link_status;
+       boolean_t               serdes_link_down;
+       boolean_t               tbi_compatibility_en;
+       boolean_t               tbi_compatibility_on;
+       boolean_t               laa_is_present;
+       boolean_t               phy_reset_disable;
+       boolean_t               initialize_hw_bits_disable;
+       boolean_t               fc_send_xon;
+       boolean_t               fc_strict_ieee;
+       boolean_t               report_tx_early;
+       boolean_t               adaptive_ifs;
+       boolean_t               ifs_params_forced;
+       boolean_t               in_ifs_mode;
+       boolean_t               mng_reg_access_disabled;
+       boolean_t               leave_av_bit_off;
+       boolean_t               kmrn_lock_loss_workaround_disabled;
+       boolean_t               bad_tx_carr_stats_fd;
+       boolean_t               has_manc2h;
+       boolean_t               rx_needs_kicking;
+       boolean_t               has_smbus;
 };
 
 
@@ -2418,6 +2423,7 @@ struct e1000_host_command_info {
 #define E1000_PBA_8K 0x0008    /* 8KB, default Rx allocation */
 #define E1000_PBA_12K 0x000C    /* 12KB, default Rx allocation */
 #define E1000_PBA_16K 0x0010    /* 16KB, default TX allocation */
+#define E1000_PBA_20K 0x0014
 #define E1000_PBA_22K 0x0016
 #define E1000_PBA_24K 0x0018
 #define E1000_PBA_30K 0x001E