Skip to content

Commit a66d79e

Browse files
Sujuan Chendavem330
authored andcommitted
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: Sujuan Chen <[email protected]> Co-developed-by: Bo Jiao <[email protected]> Signed-off-by: Bo Jiao <[email protected]> Signed-off-by: Sujuan Chen <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent a6e3d86 commit a66d79e

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

drivers/net/ethernet/mediatek/mtk_wed.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -526,9 +526,9 @@ mtk_wed_dma_disable(struct mtk_wed_device *dev)
526526
MTK_WED_WPDMA_RX_D_RX_DRV_EN);
527527
wed_clr(dev, MTK_WED_WDMA_GLO_CFG,
528528
MTK_WED_WDMA_GLO_CFG_TX_DDONE_CHK);
529-
530-
mtk_wed_set_512_support(dev, false);
531529
}
530+
531+
mtk_wed_set_512_support(dev, false);
532532
}
533533

534534
static void
@@ -1290,9 +1290,10 @@ mtk_wed_start(struct mtk_wed_device *dev, u32 irq_mask)
12901290
if (mtk_wed_rro_cfg(dev))
12911291
return;
12921292

1293-
mtk_wed_set_512_support(dev, dev->wlan.wcid_512);
12941293
}
12951294

1295+
mtk_wed_set_512_support(dev, dev->wlan.wcid_512);
1296+
12961297
mtk_wed_dma_enable(dev);
12971298
dev->running = true;
12981299
}
@@ -1358,11 +1359,13 @@ mtk_wed_attach(struct mtk_wed_device *dev)
13581359
}
13591360

13601361
mtk_wed_hw_init_early(dev);
1361-
if (hw->version == 1)
1362+
if (hw->version == 1) {
13621363
regmap_update_bits(hw->hifsys, HIFSYS_DMA_AG_MAP,
13631364
BIT(hw->index), 0);
1364-
else
1365+
} else {
1366+
dev->rev_id = wed_r32(dev, MTK_WED_REV_ID);
13651367
ret = mtk_wed_wo_init(hw);
1368+
}
13661369
out:
13671370
if (ret)
13681371
mtk_wed_detach(dev);

drivers/net/ethernet/mediatek/mtk_wed_regs.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ struct mtk_wdma_desc {
2020
__le32 info;
2121
} __packed __aligned(4);
2222

23+
#define MTK_WED_REV_ID 0x004
24+
2325
#define MTK_WED_RESET 0x008
2426
#define MTK_WED_RESET_TX_BM BIT(0)
2527
#define MTK_WED_RESET_TX_FREE_AGENT BIT(4)

include/linux/soc/mediatek/mtk_wed.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ struct mtk_wed_device {
8585
int irq;
8686
u8 version;
8787

88+
/* used by wlan driver */
89+
u32 rev_id;
90+
8891
struct mtk_wed_ring tx_ring[MTK_WED_TX_QUEUES];
8992
struct mtk_wed_ring rx_ring[MTK_WED_RX_QUEUES];
9093
struct mtk_wed_ring txfree_ring;

0 commit comments

Comments
 (0)