ar71xx: reinitialize global switch settings after reset on ar7240
[openwrt.git] / target / linux / ar71xx / files / drivers / net / ag71xx / ag71xx.h
index 8a2913f..1025bb4 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"
 
 #define AG71XX_INT_POLL        (AG71XX_INT_RX | AG71XX_INT_TX)
 #define AG71XX_INT_INIT        (AG71XX_INT_ERR | AG71XX_INT_POLL)
 
-#define AG71XX_TX_FIFO_LEN     2048
 #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)
-#define AG71XX_TX_THRES_WAKEUP \
-               (AG71XX_TX_RING_SIZE - (AG71XX_TX_RING_SIZE / 4))
+#define AG71XX_TX_RING_SIZE_DEFAULT    64
+#define AG71XX_RX_RING_SIZE_DEFAULT    128
 
-#define AG71XX_RX_RING_SIZE    128
+#define AG71XX_TX_RING_SIZE_MAX                256
+#define AG71XX_RX_RING_SIZE_MAX                256
 
 #ifdef CONFIG_AG71XX_DEBUG
 #define DBG(fmt, args...)      printk(KERN_DEBUG fmt, ## args)
@@ -91,7 +88,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 +133,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 +160,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
@@ -503,4 +499,12 @@ void ag71xx_ar7240_stop(struct ag71xx *ag);
 int ag71xx_ar7240_init(struct ag71xx *ag);
 void ag71xx_ar7240_cleanup(struct ag71xx *ag);
 
+int ag71xx_mdio_mii_read(struct ag71xx_mdio *am, int addr, int reg);
+void ag71xx_mdio_mii_write(struct ag71xx_mdio *am, int addr, int reg, u16 val);
+
+u16 ar7240sw_phy_read(struct mii_bus *mii, unsigned phy_addr,
+                     unsigned reg_addr);
+int ar7240sw_phy_write(struct mii_bus *mii, unsigned phy_addr,
+                      unsigned reg_addr, u16 reg_val);
+
 #endif /* _AG71XX_H */
This page took 0.028309 seconds and 4 git commands to generate.