ar71xx: merge latest ag71xx changes from trunk, fix wrong argument to phy_mii_ioctl()
[openwrt-10.03/.git] / target / linux / ar71xx / files / drivers / net / ag71xx / ag71xx.h
index bb4cb5ba9ff96b3db1e7c6f5149bef2b207ce6c1..30caaff027d94dedc72f03b96ea17b5e9a714843 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/platform_device.h>
 #include <linux/ethtool.h>
 #include <linux/etherdevice.h>
+#include <linux/if_vlan.h>
 #include <linux/phy.h>
 #include <linux/skbuff.h>
 #include <linux/dma-mapping.h>
@@ -35,8 +36,6 @@
 #include <asm/mach-ar71xx/ar71xx.h>
 #include <asm/mach-ar71xx/platform.h>
 
-#define ETH_FCS_LEN    4
-
 #define AG71XX_DRV_NAME                "ag71xx"
 #define AG71XX_DRV_VERSION     "0.5.35"
 
@@ -54,7 +53,7 @@
 #define AG71XX_TX_MTU_LEN      1540
 #define AG71XX_RX_PKT_RESERVE  64
 #define AG71XX_RX_PKT_SIZE     \
-       (AG71XX_RX_PKT_RESERVE + ETH_HLEN + ETH_FRAME_LEN + ETH_FCS_LEN)
+       (AG71XX_RX_PKT_RESERVE + ETH_FRAME_LEN + ETH_FCS_LEN + VLAN_HLEN)
 
 #define AG71XX_TX_RING_SIZE    64
 #define AG71XX_TX_THRES_STOP   (AG71XX_TX_RING_SIZE - 4)
@@ -91,7 +90,7 @@ struct ag71xx_buf {
        struct sk_buff          *skb;
        struct ag71xx_desc      *desc;
        dma_addr_t              dma_addr;
-       u32                     pad;
+       unsigned long           timestamp;
 };
 
 struct ag71xx_ring {
@@ -136,8 +135,6 @@ struct ag71xx_napi_stats {
 
 struct ag71xx_debug {
        struct dentry           *debugfs_dir;
-       struct dentry           *debugfs_int_stats;
-       struct dentry           *debugfs_napi_stats;
 
        struct ag71xx_int_stats int_stats;
        struct ag71xx_napi_stats napi_stats;
@@ -165,6 +162,7 @@ struct ag71xx {
        int                     duplex;
 
        struct work_struct      restart_work;
+       struct delayed_work     link_work;
        struct timer_list       oom_timer;
 
 #ifdef CONFIG_AG71XX_DEBUG_FS