gpio-nct5104d: fix compilation with kernel 6.6
[openwrt/openwrt.git] / target / linux / generic / backport-6.1 / 729-12-v6.2-net-ethernet-mtk_wed-update-mtk_wed_stop.patch
1 From: Lorenzo Bianconi <lorenzo@kernel.org>
2 Date: Thu, 24 Nov 2022 16:22:53 +0100
3 Subject: [PATCH] net: ethernet: mtk_wed: update mtk_wed_stop
4
5 Update mtk_wed_stop routine and rename old mtk_wed_stop() to
6 mtk_wed_deinit(). This is a preliminary patch to add Wireless Ethernet
7 Dispatcher reset support.
8
9 Co-developed-by: Sujuan Chen <sujuan.chen@mediatek.com>
10 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
11 Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
12 Signed-off-by: Paolo Abeni <pabeni@redhat.com>
13 ---
14
15 --- a/drivers/net/ethernet/mediatek/mtk_wed.c
16 +++ b/drivers/net/ethernet/mediatek/mtk_wed.c
17 @@ -539,14 +539,8 @@ mtk_wed_dma_disable(struct mtk_wed_devic
18 static void
19 mtk_wed_stop(struct mtk_wed_device *dev)
20 {
21 - mtk_wed_dma_disable(dev);
22 mtk_wed_set_ext_int(dev, false);
23
24 - wed_clr(dev, MTK_WED_CTRL,
25 - MTK_WED_CTRL_WDMA_INT_AGENT_EN |
26 - MTK_WED_CTRL_WPDMA_INT_AGENT_EN |
27 - MTK_WED_CTRL_WED_TX_BM_EN |
28 - MTK_WED_CTRL_WED_TX_FREE_AGENT_EN);
29 wed_w32(dev, MTK_WED_WPDMA_INT_TRIGGER, 0);
30 wed_w32(dev, MTK_WED_WDMA_INT_TRIGGER, 0);
31 wdma_w32(dev, MTK_WDMA_INT_MASK, 0);
32 @@ -558,7 +552,27 @@ mtk_wed_stop(struct mtk_wed_device *dev)
33
34 wed_w32(dev, MTK_WED_EXT_INT_MASK1, 0);
35 wed_w32(dev, MTK_WED_EXT_INT_MASK2, 0);
36 - wed_clr(dev, MTK_WED_CTRL, MTK_WED_CTRL_WED_RX_BM_EN);
37 +}
38 +
39 +static void
40 +mtk_wed_deinit(struct mtk_wed_device *dev)
41 +{
42 + mtk_wed_stop(dev);
43 + mtk_wed_dma_disable(dev);
44 +
45 + wed_clr(dev, MTK_WED_CTRL,
46 + MTK_WED_CTRL_WDMA_INT_AGENT_EN |
47 + MTK_WED_CTRL_WPDMA_INT_AGENT_EN |
48 + MTK_WED_CTRL_WED_TX_BM_EN |
49 + MTK_WED_CTRL_WED_TX_FREE_AGENT_EN);
50 +
51 + if (dev->hw->version == 1)
52 + return;
53 +
54 + wed_clr(dev, MTK_WED_CTRL,
55 + MTK_WED_CTRL_RX_ROUTE_QM_EN |
56 + MTK_WED_CTRL_WED_RX_BM_EN |
57 + MTK_WED_CTRL_RX_RRO_QM_EN);
58 }
59
60 static void
61 @@ -568,7 +582,7 @@ mtk_wed_detach(struct mtk_wed_device *de
62
63 mutex_lock(&hw_lock);
64
65 - mtk_wed_stop(dev);
66 + mtk_wed_deinit(dev);
67
68 mtk_wdma_rx_reset(dev);
69 mtk_wed_reset(dev, MTK_WED_RESET_WED);
70 @@ -670,7 +684,7 @@ mtk_wed_hw_init_early(struct mtk_wed_dev
71 {
72 u32 mask, set;
73
74 - mtk_wed_stop(dev);
75 + mtk_wed_deinit(dev);
76 mtk_wed_reset(dev, MTK_WED_RESET_WED);
77 mtk_wed_set_wpdma(dev);
78
79 --- a/include/linux/soc/mediatek/mtk_wed.h
80 +++ b/include/linux/soc/mediatek/mtk_wed.h
81 @@ -234,6 +234,8 @@ mtk_wed_get_rx_capa(struct mtk_wed_devic
82 (_dev)->ops->ppe_check(_dev, _skb, _reason, _hash)
83 #define mtk_wed_device_update_msg(_dev, _id, _msg, _len) \
84 (_dev)->ops->msg_update(_dev, _id, _msg, _len)
85 +#define mtk_wed_device_stop(_dev) (_dev)->ops->stop(_dev)
86 +#define mtk_wed_device_dma_reset(_dev) (_dev)->ops->reset_dma(_dev)
87 #else
88 static inline bool mtk_wed_device_active(struct mtk_wed_device *dev)
89 {
90 @@ -250,6 +252,8 @@ static inline bool mtk_wed_device_active
91 #define mtk_wed_device_rx_ring_setup(_dev, _ring, _regs) -ENODEV
92 #define mtk_wed_device_ppe_check(_dev, _skb, _reason, _hash) do {} while (0)
93 #define mtk_wed_device_update_msg(_dev, _id, _msg, _len) -ENODEV
94 +#define mtk_wed_device_stop(_dev) do {} while (0)
95 +#define mtk_wed_device_dma_reset(_dev) do {} while (0)
96 #endif
97
98 #endif