ramips: use a larger number of rx descriptors on mt7621 to work around rx overrun...
[openwrt/openwrt.git] / target / linux / ramips / files / drivers / net / ethernet / ralink / ralink_soc_eth.h
index 67d5ce65cf887d033de9bd7bb3140c58548a4d13..41e1268b003900cfc0eca53ac730179093f9c512 100644 (file)
@@ -47,7 +47,11 @@ enum fe_reg {
 #define FE_DRV_VERSION         "0.1.0"
 
 /* power of 2 to let NEXT_TX_DESP_IDX work */
+#ifdef CONFIG_SOC_MT7621
+#define NUM_DMA_DESC           (1 << 9)
+#else
 #define NUM_DMA_DESC           (1 << 7)
+#endif
 #define MAX_DMA_DESC           0xfff
 
 #define FE_DELAY_EN_INT                0x80
@@ -79,8 +83,22 @@ enum fe_reg {
 #define FE_TX_DLY_INT          BIT(1)
 #define FE_RX_DLY_INT          BIT(0)
 
+#define FE_RX_DONE_INT         FE_RX_DONE_INT0
+#define FE_TX_DONE_INT         (FE_TX_DONE_INT0 | FE_TX_DONE_INT1 | \
+                                FE_TX_DONE_INT2 | FE_TX_DONE_INT3)
+
 #define RT5350_RX_DLY_INT      BIT(30)
 #define RT5350_TX_DLY_INT      BIT(28)
+#define RT5350_RX_DONE_INT1    BIT(17)
+#define RT5350_RX_DONE_INT0    BIT(16)
+#define RT5350_TX_DONE_INT3    BIT(3)
+#define RT5350_TX_DONE_INT2    BIT(2)
+#define RT5350_TX_DONE_INT1    BIT(1)
+#define RT5350_TX_DONE_INT0    BIT(0)
+
+#define RT5350_RX_DONE_INT     (RT5350_RX_DONE_INT0 | RT5350_RX_DONE_INT1)
+#define RT5350_TX_DONE_INT     (RT5350_TX_DONE_INT0 | RT5350_TX_DONE_INT1 | \
+                                RT5350_TX_DONE_INT2 | RT5350_TX_DONE_INT3)
 
 /* registers */
 #define FE_FE_OFFSET           0x0000
@@ -367,8 +385,8 @@ struct fe_soc_data
 
        void *swpriv;
        u32 pdma_glo_cfg;
-       u32 rx_dly_int;
-       u32 tx_dly_int;
+       u32 rx_int;
+       u32 tx_int;
        u32 checksum_bit;
        u32 tx_udf_bit;
 };
@@ -432,6 +450,7 @@ struct fe_priv
        int                             link[8];
 
        struct fe_hw_stats              *hw_stats;
+       unsigned long                   vlan_map;
 };
 
 extern const struct of_device_id of_fe_match[];