Skip to content

Commit

Permalink
net: ethernet: mtk_wed: add wcid overwritten support for wed v1
Browse files Browse the repository at this point in the history
All wed versions should enable the wcid overwritten feature,
since the wcid size is controlled by the wlan driver.

Tested-by: Sujuan Chen <sujuan.chen@mediatek.com>
Co-developed-by: Bo Jiao <bo.jiao@mediatek.com>
Signed-off-by: Bo Jiao <bo.jiao@mediatek.com>
Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Sujuan Chen authored and David S. Miller committed Nov 28, 2022
1 parent a6e3d86 commit a66d79e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
13 changes: 8 additions & 5 deletions drivers/net/ethernet/mediatek/mtk_wed.c
Original file line number Diff line number Diff line change
Expand Up @@ -526,9 +526,9 @@ mtk_wed_dma_disable(struct mtk_wed_device *dev)
MTK_WED_WPDMA_RX_D_RX_DRV_EN);
wed_clr(dev, MTK_WED_WDMA_GLO_CFG,
MTK_WED_WDMA_GLO_CFG_TX_DDONE_CHK);

mtk_wed_set_512_support(dev, false);
}

mtk_wed_set_512_support(dev, false);
}

static void
Expand Down Expand Up @@ -1290,9 +1290,10 @@ mtk_wed_start(struct mtk_wed_device *dev, u32 irq_mask)
if (mtk_wed_rro_cfg(dev))
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);
dev->running = true;
}
Expand Down Expand Up @@ -1358,11 +1359,13 @@ mtk_wed_attach(struct mtk_wed_device *dev)
}

mtk_wed_hw_init_early(dev);
if (hw->version == 1)
if (hw->version == 1) {
regmap_update_bits(hw->hifsys, HIFSYS_DMA_AG_MAP,
BIT(hw->index), 0);
else
} else {
dev->rev_id = wed_r32(dev, MTK_WED_REV_ID);
ret = mtk_wed_wo_init(hw);
}
out:
if (ret)
mtk_wed_detach(dev);
Expand Down
2 changes: 2 additions & 0 deletions drivers/net/ethernet/mediatek/mtk_wed_regs.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ struct mtk_wdma_desc {
__le32 info;
} __packed __aligned(4);

#define MTK_WED_REV_ID 0x004

#define MTK_WED_RESET 0x008
#define MTK_WED_RESET_TX_BM BIT(0)
#define MTK_WED_RESET_TX_FREE_AGENT BIT(4)
Expand Down
3 changes: 3 additions & 0 deletions include/linux/soc/mediatek/mtk_wed.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ struct mtk_wed_device {
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];
struct mtk_wed_ring txfree_ring;
Expand Down

0 comments on commit a66d79e

Please sign in to comment.