summaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h')
-rw-r--r--target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h33
1 files changed, 25 insertions, 8 deletions
diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h
index 8433c3cc12..8c204768b7 100644
--- a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h
+++ b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.h
@@ -51,7 +51,7 @@ enum fe_work_flag {
FE_FLAG_MAX
};
-#define FE_DRV_VERSION "0.1.1"
+#define FE_DRV_VERSION "0.1.2"
/* power of 2 to let NEXT_TX_DESP_IDX work */
#ifdef CONFIG_SOC_MT7621
@@ -322,11 +322,12 @@ struct fe_rx_dma {
unsigned int rxd4;
} __packed __aligned(4);
-#define TX_DMA_PLEN0_MASK ((0x3fff) << 16)
-#define TX_DMA_PLEN0(_x) (((_x) & 0x3fff) << 16)
-#define TX_DMA_PLEN1(_x) ((_x) & 0x3fff)
-#define TX_DMA_GET_PLEN0(_x) (((_x) >> 16 ) & 0x3fff)
-#define TX_DMA_GET_PLEN1(_x) ((_x) & 0x3fff)
+#define TX_DMA_BUF_LEN 0x3fff
+#define TX_DMA_PLEN0_MASK (TX_DMA_BUF_LEN << 16)
+#define TX_DMA_PLEN0(_x) (((_x) & TX_DMA_BUF_LEN) << 16)
+#define TX_DMA_PLEN1(_x) ((_x) & TX_DMA_BUF_LEN)
+#define TX_DMA_GET_PLEN0(_x) (((_x) >> 16 ) & TX_DMA_BUF_LEN)
+#define TX_DMA_GET_PLEN1(_x) ((_x) & TX_DMA_BUF_LEN)
#define TX_DMA_LS1 BIT(14)
#define TX_DMA_LS0 BIT(30)
#define TX_DMA_DONE BIT(31)
@@ -401,7 +402,6 @@ struct fe_soc_data
u32 rx_int;
u32 tx_int;
u32 checksum_bit;
- u32 tx_udf_bit;
};
#define FE_FLAG_PADDING_64B BIT(0)
@@ -410,6 +410,7 @@ struct fe_soc_data
#define FE_FLAG_RX_2B_OFFSET BIT(3)
#define FE_FLAG_RX_SG_DMA BIT(4)
#define FE_FLAG_RX_VLAN_CTAG BIT(5)
+#define FE_FLAG_NAPI_WEIGHT BIT(6)
#define FE_STAT_REG_DECLARE \
_FE(tx_bytes) \
@@ -434,6 +435,22 @@ FE_STAT_REG_DECLARE
#undef _FE
};
+enum fe_tx_flags {
+ FE_TX_FLAGS_SINGLE0 = 0x01,
+ FE_TX_FLAGS_PAGE0 = 0x02,
+ FE_TX_FLAGS_PAGE1 = 0x04,
+};
+
+struct fe_tx_buf
+{
+ struct sk_buff *skb;
+ u32 flags;
+ DEFINE_DMA_UNMAP_ADDR(dma_addr0);
+ DEFINE_DMA_UNMAP_LEN(dma_len0);
+ DEFINE_DMA_UNMAP_ADDR(dma_addr1);
+ DEFINE_DMA_UNMAP_LEN(dma_len1);
+};
+
struct fe_priv
{
spinlock_t page_lock;
@@ -454,7 +471,7 @@ struct fe_priv
struct napi_struct rx_napi;
struct fe_tx_dma *tx_dma;
- struct sk_buff **tx_skb;
+ struct fe_tx_buf *tx_buf;
dma_addr_t tx_phys;
unsigned int tx_free_idx;