e1000e: save skb counts in TX to avoid cache misses
[pandora-kernel.git] / drivers / net / e1000e / e1000.h
index c2ec095..c0b3db4 100644 (file)
 #include <linux/io.h>
 #include <linux/netdevice.h>
 #include <linux/pci.h>
+#include <linux/pci-aspm.h>
 
 #include "hw.h"
 
 struct e1000_info;
 
-#define e_printk(level, adapter, format, arg...) \
-       printk(level "%s: %s: " format, pci_name(adapter->pdev), \
-              adapter->netdev->name, ## arg)
-
-#ifdef DEBUG
 #define e_dbg(format, arg...) \
-       e_printk(KERN_DEBUG , hw->adapter, format, ## arg)
-#else
-#define e_dbg(format, arg...) do { (void)(hw); } while (0)
-#endif
-
+       netdev_dbg(hw->adapter->netdev, format, ## arg)
 #define e_err(format, arg...) \
-       e_printk(KERN_ERR, adapter, format, ## arg)
+       netdev_err(adapter->netdev, format, ## arg)
 #define e_info(format, arg...) \
-       e_printk(KERN_INFO, adapter, format, ## arg)
+       netdev_info(adapter->netdev, format, ## arg)
 #define e_warn(format, arg...) \
-       e_printk(KERN_WARNING, adapter, format, ## arg)
+       netdev_warn(adapter->netdev, format, ## arg)
 #define e_notice(format, arg...) \
-       e_printk(KERN_NOTICE, adapter, format, ## arg)
+       netdev_notice(adapter->netdev, format, ## arg)
 
 
 /* Interrupt modes, as used by the IntMode parameter */
@@ -158,6 +150,9 @@ struct e1000_info;
 #define HV_M_STATUS_SPEED_1000            0x0200
 #define HV_M_STATUS_LINK_UP               0x0040
 
+/* Time to wait before putting the device into D3 if there's no link (in ms). */
+#define LINK_TIMEOUT           100
+
 enum e1000_boards {
        board_82571,
        board_82572,
@@ -194,6 +189,8 @@ struct e1000_buffer {
                        unsigned long time_stamp;
                        u16 length;
                        u16 next_to_watch;
+                       unsigned int segs;
+                       unsigned int bytecount;
                        u16 mapped_as_page;
                };
                /* Rx */
@@ -279,7 +276,6 @@ struct e1000_adapter {
 
        struct napi_struct napi;
 
-       unsigned long tx_queue_len;
        unsigned int restart_queue;
        u32 txd_cmd;
 
@@ -370,12 +366,14 @@ struct e1000_adapter {
        struct work_struct update_phy_task;
        struct work_struct led_blink_task;
        struct work_struct print_hang_task;
+
+       bool idle_check;
 };
 
 struct e1000_info {
        enum e1000_mac_type     mac;
        unsigned int            flags;
-       unsigned int            flags2;
+       unsigned int            flags2;
        u32                     pba;
        u32                     max_hw_frame_size;
        s32                     (*get_variants)(struct e1000_adapter *);
@@ -422,6 +420,7 @@ struct e1000_info {
 #define FLAG2_CRC_STRIPPING               (1 << 0)
 #define FLAG2_HAS_PHY_WAKEUP              (1 << 1)
 #define FLAG2_IS_DISCARDING               (1 << 2)
+#define FLAG2_DISABLE_ASPM_L1             (1 << 3)
 
 #define E1000_RX_DESC_PS(R, i)     \
        (&(((union e1000_rx_desc_packet_split *)((R).desc))[i]))
@@ -462,6 +461,7 @@ extern void e1000e_update_stats(struct e1000_adapter *adapter);
 extern bool e1000e_has_link(struct e1000_adapter *adapter);
 extern void e1000e_set_interrupt_capability(struct e1000_adapter *adapter);
 extern void e1000e_reset_interrupt_capability(struct e1000_adapter *adapter);
+extern void e1000e_disable_aspm(struct pci_dev *pdev, u16 state);
 
 extern unsigned int copybreak;