mt76: update to the latest version, import WED related mtk_eth_soc patches
[openwrt/openwrt.git] / target / linux / generic / hack-5.10 / 100-update-mtk_wed_h.patch
index fe49100e4f7c49d1e764ff04d2ee62892aa4874f..151f2e8054d93ad7cdfdc920ce651855ee1d1c4e 100644 (file)
  struct mtk_wed_device {
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
        const struct mtk_wed_ops *ops;
-@@ -28,30 +83,71 @@ struct mtk_wed_device {
+@@ -28,30 +83,76 @@ struct mtk_wed_device {
        bool init_done, running;
        int wdma_idx;
        int irq;
 +      u8 version;
++
++      /* used by wlan driver */
++      u32 rev_id;
  
        struct mtk_wed_ring tx_ring[MTK_WED_TX_QUEUES];
 +      struct mtk_wed_ring rx_ring[MTK_WED_RX_QUEUES];
 +              void (*release_rx_buf)(struct mtk_wed_device *wed);
 +              void (*update_wo_rx_stats)(struct mtk_wed_device *wed,
 +                                         struct mtk_wed_wo_rx_stats *stats);
++              int (*reset)(struct mtk_wed_device *wed);
++              void (*reset_complete)(struct mtk_wed_device *wed);
        } wlan;
  #endif
  };
-@@ -60,9 +156,15 @@ struct mtk_wed_ops {
+@@ -59,10 +160,16 @@ struct mtk_wed_device {
+ struct mtk_wed_ops {
        int (*attach)(struct mtk_wed_device *dev);
        int (*tx_ring_setup)(struct mtk_wed_device *dev, int ring,
-                            void __iomem *regs);
+-                           void __iomem *regs);
++                           void __iomem *regs, bool reset);
 +      int (*rx_ring_setup)(struct mtk_wed_device *dev, int ring,
-+                           void __iomem *regs);
++                           void __iomem *regs, bool reset);
        int (*txfree_ring_setup)(struct mtk_wed_device *dev,
                                 void __iomem *regs);
 +      int (*msg_update)(struct mtk_wed_device *dev, int cmd_id,
  
        void (*stop)(struct mtk_wed_device *dev);
        void (*start)(struct mtk_wed_device *dev, u32 irq_mask);
-@@ -97,6 +199,16 @@ mtk_wed_device_attach(struct mtk_wed_dev
+@@ -97,12 +204,22 @@ mtk_wed_device_attach(struct mtk_wed_dev
        return ret;
  }
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
  #define mtk_wed_device_active(_dev) !!(_dev)->ops
  #define mtk_wed_device_detach(_dev) (_dev)->ops->detach(_dev)
-@@ -113,6 +225,12 @@ mtk_wed_device_attach(struct mtk_wed_dev
+ #define mtk_wed_device_start(_dev, _mask) (_dev)->ops->start(_dev, _mask)
+-#define mtk_wed_device_tx_ring_setup(_dev, _ring, _regs) \
+-      (_dev)->ops->tx_ring_setup(_dev, _ring, _regs)
++#define mtk_wed_device_tx_ring_setup(_dev, _ring, _regs, _reset) \
++      (_dev)->ops->tx_ring_setup(_dev, _ring, _regs, _reset)
+ #define mtk_wed_device_txfree_ring_setup(_dev, _regs) \
+       (_dev)->ops->txfree_ring_setup(_dev, _regs)
+ #define mtk_wed_device_reg_read(_dev, _reg) \
+@@ -113,6 +230,14 @@ mtk_wed_device_attach(struct mtk_wed_dev
        (_dev)->ops->irq_get(_dev, _mask)
  #define mtk_wed_device_irq_set_mask(_dev, _mask) \
        (_dev)->ops->irq_set_mask(_dev, _mask)
-+#define mtk_wed_device_rx_ring_setup(_dev, _ring, _regs) \
-+      (_dev)->ops->rx_ring_setup(_dev, _ring, _regs)
++#define mtk_wed_device_rx_ring_setup(_dev, _ring, _regs, _reset) \
++      (_dev)->ops->rx_ring_setup(_dev, _ring, _regs, _reset)
 +#define mtk_wed_device_ppe_check(_dev, _skb, _reason, _hash) \
 +      (_dev)->ops->ppe_check(_dev, _skb, _reason, _hash)
 +#define mtk_wed_device_update_msg(_dev, _id, _msg, _len) \
 +      (_dev)->ops->msg_update(_dev, _id, _msg, _len)
++#define mtk_wed_device_stop(_dev) (_dev)->ops->stop(_dev)
++#define mtk_wed_device_dma_reset(_dev) (_dev)->ops->reset_dma(_dev)
  #else
  static inline bool mtk_wed_device_active(struct mtk_wed_device *dev)
  {
-@@ -126,6 +244,9 @@ static inline bool mtk_wed_device_active
+@@ -120,12 +245,17 @@ static inline bool mtk_wed_device_active
+ }
+ #define mtk_wed_device_detach(_dev) do {} while (0)
+ #define mtk_wed_device_start(_dev, _mask) do {} while (0)
+-#define mtk_wed_device_tx_ring_setup(_dev, _ring, _regs) -ENODEV
++#define mtk_wed_device_tx_ring_setup(_dev, _ring, _regs, _reset) -ENODEV
+ #define mtk_wed_device_txfree_ring_setup(_dev, _ring, _regs) -ENODEV
+ #define mtk_wed_device_reg_read(_dev, _reg) 0
  #define mtk_wed_device_reg_write(_dev, _reg, _val) do {} while (0)
  #define mtk_wed_device_irq_get(_dev, _mask) 0
  #define mtk_wed_device_irq_set_mask(_dev, _mask) do {} while (0)
-+#define mtk_wed_device_rx_ring_setup(_dev, _ring, _regs) -ENODEV
++#define mtk_wed_device_rx_ring_setup(_dev, _ring, _regs, _reset) -ENODEV
 +#define mtk_wed_device_ppe_check(_dev, _skb, _reason, _hash)  do {} while (0)
 +#define mtk_wed_device_update_msg(_dev, _id, _msg, _len) -ENODEV
++#define mtk_wed_device_stop(_dev) do {} while (0)
++#define mtk_wed_device_dma_reset(_dev) do {} while (0)
  #endif
  
  #endif