net: wireless: bcmdhd: Allow Improved suspend/resume processing on 2.6.39
[linux-2.6.git] / drivers / net / niu.h
index 180ca8a..51e177e 100644 (file)
@@ -2706,7 +2706,7 @@ struct rx_pkt_hdr0 {
 #if defined(__LITTLE_ENDIAN_BITFIELD)
        u8      inputport:2,
                maccheck:1,
-               class:4;
+               class:5;
        u8      vlan:1,
                llcsnap:1,
                noport:1,
@@ -2715,7 +2715,7 @@ struct rx_pkt_hdr0 {
                tres:2,
                tzfvld:1;
 #elif defined(__BIG_ENDIAN_BITFIELD)
-       u8      class:4,
+       u8      class:5,
                maccheck:1,
                inputport:2;
        u8      tzfvld:1,
@@ -2775,6 +2775,9 @@ struct rx_pkt_hdr1 {
        /* Bits 7:0 of hash value, H1.  */
        u8      hashval1_2;
 
+       u8      hwrsvd5;
+       u8      hwrsvd6;
+
        u8      usrdata_0;      /* Bits 39:32 of user data.  */
        u8      usrdata_1;      /* Bits 31:24 of user data.  */
        u8      usrdata_2;      /* Bits 23:16 of user data.  */
@@ -3004,7 +3007,9 @@ struct niu_classifier {
        struct niu_altmac_rdc   alt_mac_mappings[16];
        struct niu_vlan_rdc     vlan_mappings[ENET_VLAN_TBL_NUM_ENTRIES];
 
-       u16                     tcam_index;
+       u16                     tcam_top;
+       u16                     tcam_sz;
+       u16                     tcam_valid_entries;
        u16                     num_alt_mac_mappings;
 
        u32                     h1_init;
@@ -3040,6 +3045,7 @@ struct phy_probe_info {
 };
 
 struct niu_tcam_entry {
+       u8                      valid;
        u64                     key[4];
        u64                     key_mask[4];
        u64                     assoc_data;
@@ -3107,10 +3113,15 @@ struct niu_parent {
        struct phy_probe_info   phy_probe_info;
 
        struct niu_tcam_entry   tcam[NIU_TCAM_ENTRIES_MAX];
-       u64                     l2_cls[2];
-       u64                     l3_cls[4];
+
+#define        NIU_L2_PROG_CLS         2
+#define        NIU_L3_PROG_CLS         4
+       u64                     l2_cls[NIU_L2_PROG_CLS];
+       u64                     l3_cls[NIU_L3_PROG_CLS];
        u64                     tcam_key[12];
        u64                     flow_key[12];
+       u16                     l3_cls_refcnt[NIU_L3_PROG_CLS];
+       u8                      l3_cls_pid[NIU_L3_PROG_CLS];
 };
 
 struct niu_ops {
@@ -3131,16 +3142,19 @@ struct niu_ops {
 };
 
 struct niu_link_config {
+       u32                             supported;
+
        /* Describes what we're trying to get. */
        u32                             advertising;
-       u32                             supported;
        u16                             speed;
        u8                              duplex;
        u8                              autoneg;
 
        /* Describes what we actually have. */
+       u32                             active_advertising;
        u16                             active_speed;
        u8                              active_duplex;
+       u8                              active_autoneg;
 #define SPEED_INVALID          0xffff
 #define DUPLEX_INVALID         0xff
 #define AUTONEG_INVALID                0xff
@@ -3222,7 +3236,7 @@ struct niu_phy_ops {
        int (*link_status)(struct niu *np, int *);
 };
 
-struct of_device;
+struct platform_device;
 struct niu {
        void __iomem                    *regs;
        struct net_device               *dev;
@@ -3231,8 +3245,8 @@ struct niu {
        struct niu_parent               *parent;
 
        u32                             flags;
-#define NIU_FLAGS_HOTPLUG_PHY_PRESENT  0x02000000 /* Removebale PHY detected*/
-#define NIU_FLAGS_HOTPLUG_PHY          0x01000000 /* Removebale PHY */
+#define NIU_FLAGS_HOTPLUG_PHY_PRESENT  0x02000000 /* Removeable PHY detected*/
+#define NIU_FLAGS_HOTPLUG_PHY          0x01000000 /* Removeable PHY */
 #define NIU_FLAGS_VPD_VALID            0x00800000 /* VPD has valid version */
 #define NIU_FLAGS_MSIX                 0x00400000 /* MSI-X in use */
 #define NIU_FLAGS_MCAST                        0x00200000 /* multicast filter enabled */
@@ -3243,12 +3257,12 @@ struct niu {
 #define NIU_FLAGS_XMAC                 0x00010000 /* 0=BMAC 1=XMAC */
 
        u32                             msg_enable;
+       char                            irq_name[NIU_NUM_RXCHAN+NIU_NUM_TXCHAN+3][IFNAMSIZ + 6];
 
        /* Protects hw programming, and ring state.  */
        spinlock_t                      lock;
 
        const struct niu_ops            *ops;
-       struct net_device_stats         net_stats;
        union niu_mac_stats             mac_stats;
 
        struct rx_ring_info             *rx_rings;
@@ -3265,6 +3279,7 @@ struct niu {
        unsigned long                   xpcs_off;
 
        struct timer_list               timer;
+       u64                             orig_led_state;
        const struct niu_phy_ops        *phy_ops;
        int                             phy_addr;
 
@@ -3283,7 +3298,7 @@ struct niu {
        struct niu_vpd                  vpd;
        u32                             eeprom_len;
 
-       struct of_device                *op;
+       struct platform_device          *op;
        void __iomem                    *vir_regs_1;
        void __iomem                    *vir_regs_2;
 };