projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ar71xx: fix ethernet FIFO state corruption on ar7240
[openwrt.git]
/
target
/
linux
/
ar71xx
/
files
/
drivers
/
net
/
ag71xx
/
ag71xx.h
diff --git
a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
index
3bcb896
..
d5cc46c
100644
(file)
--- a/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
+++ b/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
@@
-25,6
+25,7
@@
#include <linux/platform_device.h>
#include <linux/ethtool.h>
#include <linux/etherdevice.h>
#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>
#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>
#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_DRV_NAME "ag71xx"
#define AG71XX_DRV_VERSION "0.5.35"
@@
-50,18
+49,16
@@
#define AG71XX_INT_POLL (AG71XX_INT_RX | AG71XX_INT_TX)
#define AG71XX_INT_INIT (AG71XX_INT_ERR | AG71XX_INT_POLL)
#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 \
#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_H
LEN)
-#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)
#ifdef CONFIG_AG71XX_DEBUG
#define DBG(fmt, args...) printk(KERN_DEBUG fmt, ## args)
@@
-151,6
+148,9
@@
struct ag71xx {
struct napi_struct napi;
u32 msg_enable;
struct napi_struct napi;
u32 msg_enable;
+ struct ag71xx_desc *stop_desc;
+ dma_addr_t stop_desc_dma;
+
struct ag71xx_ring rx_ring;
struct ag71xx_ring tx_ring;
struct ag71xx_ring rx_ring;
struct ag71xx_ring tx_ring;
@@
-163,6
+163,7
@@
struct ag71xx {
int duplex;
struct work_struct restart_work;
int duplex;
struct work_struct restart_work;
+ struct delayed_work link_work;
struct timer_list oom_timer;
#ifdef CONFIG_AG71XX_DEBUG_FS
struct timer_list oom_timer;
#ifdef CONFIG_AG71XX_DEBUG_FS
@@
-350,6
+351,7
@@
static inline void ag71xx_check_reg_offset(struct ag71xx *ag, unsigned reg)
switch (reg) {
case AG71XX_REG_MAC_CFG1 ... AG71XX_REG_MAC_MFL:
case AG71XX_REG_MAC_IFCTL ... AG71XX_REG_INT_STATUS:
switch (reg) {
case AG71XX_REG_MAC_CFG1 ... AG71XX_REG_MAC_MFL:
case AG71XX_REG_MAC_IFCTL ... AG71XX_REG_INT_STATUS:
+ case AG71XX_REG_MII_CFG:
break;
default:
break;
default:
This page took
0.025463 seconds
and
4
git commands to generate.