Commit a66d79ee authored by Sujuan Chen's avatar Sujuan Chen Committed by David S. Miller

net: ethernet: mtk_wed: add wcid overwritten support for wed v1

All wed versions should enable the wcid overwritten feature,
since the wcid size is controlled by the wlan driver.
Tested-by: default avatarSujuan Chen <sujuan.chen@mediatek.com>
Co-developed-by: default avatarBo Jiao <bo.jiao@mediatek.com>
Signed-off-by: default avatarBo Jiao <bo.jiao@mediatek.com>
Signed-off-by: default avatarSujuan Chen <sujuan.chen@mediatek.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a6e3d86e
...@@ -526,9 +526,9 @@ mtk_wed_dma_disable(struct mtk_wed_device *dev) ...@@ -526,9 +526,9 @@ mtk_wed_dma_disable(struct mtk_wed_device *dev)
MTK_WED_WPDMA_RX_D_RX_DRV_EN); MTK_WED_WPDMA_RX_D_RX_DRV_EN);
wed_clr(dev, MTK_WED_WDMA_GLO_CFG, wed_clr(dev, MTK_WED_WDMA_GLO_CFG,
MTK_WED_WDMA_GLO_CFG_TX_DDONE_CHK); MTK_WED_WDMA_GLO_CFG_TX_DDONE_CHK);
mtk_wed_set_512_support(dev, false);
} }
mtk_wed_set_512_support(dev, false);
} }
static void static void
...@@ -1290,9 +1290,10 @@ mtk_wed_start(struct mtk_wed_device *dev, u32 irq_mask) ...@@ -1290,9 +1290,10 @@ mtk_wed_start(struct mtk_wed_device *dev, u32 irq_mask)
if (mtk_wed_rro_cfg(dev)) if (mtk_wed_rro_cfg(dev))
return; return;
mtk_wed_set_512_support(dev, dev->wlan.wcid_512);
} }
mtk_wed_set_512_support(dev, dev->wlan.wcid_512);
mtk_wed_dma_enable(dev); mtk_wed_dma_enable(dev);
dev->running = true; dev->running = true;
} }
...@@ -1358,11 +1359,13 @@ mtk_wed_attach(struct mtk_wed_device *dev) ...@@ -1358,11 +1359,13 @@ mtk_wed_attach(struct mtk_wed_device *dev)
} }
mtk_wed_hw_init_early(dev); mtk_wed_hw_init_early(dev);
if (hw->version == 1) if (hw->version == 1) {
regmap_update_bits(hw->hifsys, HIFSYS_DMA_AG_MAP, regmap_update_bits(hw->hifsys, HIFSYS_DMA_AG_MAP,
BIT(hw->index), 0); BIT(hw->index), 0);
else } else {
dev->rev_id = wed_r32(dev, MTK_WED_REV_ID);
ret = mtk_wed_wo_init(hw); ret = mtk_wed_wo_init(hw);
}
out: out:
if (ret) if (ret)
mtk_wed_detach(dev); mtk_wed_detach(dev);
......
...@@ -20,6 +20,8 @@ struct mtk_wdma_desc { ...@@ -20,6 +20,8 @@ struct mtk_wdma_desc {
__le32 info; __le32 info;
} __packed __aligned(4); } __packed __aligned(4);
#define MTK_WED_REV_ID 0x004
#define MTK_WED_RESET 0x008 #define MTK_WED_RESET 0x008
#define MTK_WED_RESET_TX_BM BIT(0) #define MTK_WED_RESET_TX_BM BIT(0)
#define MTK_WED_RESET_TX_FREE_AGENT BIT(4) #define MTK_WED_RESET_TX_FREE_AGENT BIT(4)
......
...@@ -85,6 +85,9 @@ struct mtk_wed_device { ...@@ -85,6 +85,9 @@ struct mtk_wed_device {
int irq; int irq;
u8 version; u8 version;
/* used by wlan driver */
u32 rev_id;
struct mtk_wed_ring tx_ring[MTK_WED_TX_QUEUES]; struct mtk_wed_ring tx_ring[MTK_WED_TX_QUEUES];
struct mtk_wed_ring rx_ring[MTK_WED_RX_QUEUES]; struct mtk_wed_ring rx_ring[MTK_WED_RX_QUEUES];
struct mtk_wed_ring txfree_ring; struct mtk_wed_ring txfree_ring;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment