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
342d121
..
d5cc46c
100644
(file)
--- a/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
+++ b/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
@@
-49,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 \
(AG71XX_RX_PKT_RESERVE + ETH_FRAME_LEN + ETH_FCS_LEN + VLAN_HLEN)
#define AG71XX_TX_MTU_LEN 1540
#define AG71XX_RX_PKT_RESERVE 64
#define AG71XX_RX_PKT_SIZE \
(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)
#ifdef CONFIG_AG71XX_DEBUG
#define DBG(fmt, args...) printk(KERN_DEBUG fmt, ## args)
@@
-150,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;
@@
-162,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
@@
-349,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.028366 seconds
and
4
git commands to generate.