From 02a3f141620cd103db9355e99a7c28e3fdc5e7ad Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 7 Dec 2015 03:01:15 +0100 Subject: [PATCH] mt7603: more mac init Signed-off-by: Felix Fietkau --- mt7603_init.c | 15 ++++++++------- mt7603_regs.h | 7 +++++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/mt7603_init.c b/mt7603_init.c index 1069a9bf..69af7a04 100644 --- a/mt7603_init.c +++ b/mt7603_init.c @@ -41,17 +41,18 @@ wait_for_wpdma(struct mt7603_dev *dev) static int mt7603_mac_reset(struct mt7603_dev *dev) { - u32 val; - mt76_wr(dev, MT_WPDMA_GLO_CFG, 0x52000850); - mt76_wr(dev, MT_DMA_DCR0, 0x1000); + mt76_rmw(dev, MT_DMA_DCR0, 0xffff, 0xc0211000); mt76_wr(dev, MT_DMA_DCR1, GENMASK(13, 11)); - val = mt76_rr(dev, MT_DMA_VCFR0); - val &= ~BIT(0); /* To HIF */ - val |= BIT(13); /* Rx Ring 1 */ - mt76_wr(dev, MT_DMA_VCFR0, val); + mt76_rmw(dev, MT_DMA_VCFR0, BIT(0), BIT(13)); + mt76_rmw(dev, MT_DMA_TMCFR0, BIT(0) | BIT(1), BIT(13)); + + mt76_clear(dev, MT_WF_RMAC_TMR_PA, BIT(31)); + + mt76_set(dev, MT_WF_RMAC_RMACDR, BIT(30)); + mt76_rmw(dev, MT_WF_RMAC_MAXMINLEN, 0xffffff, 0x19000); return 0; } diff --git a/mt7603_regs.h b/mt7603_regs.h index 51467239..73360824 100644 --- a/mt7603_regs.h +++ b/mt7603_regs.h @@ -79,6 +79,13 @@ #define MT_DMA_DCR1 MT_WF_DMA(0x004) #define MT_DMA_RCFR0 MT_WF_DMA(0x070) #define MT_DMA_VCFR0 MT_WF_DMA(0x07c) +#define MT_DMA_TMCFR0 MT_WF_DMA(0x088) + +#define MT_WF_RMAC_BASE 0x21800 +#define MT_WF_RMAC(ofs) (MT_WF_RMAC_BASE + (ofs)) +#define MT_WF_RMAC_RMACDR MT_WF_RMAC(0x078) +#define MT_WF_RMAC_MAXMINLEN MT_WF_RMAC(0x098) +#define MT_WF_RMAC_TMR_PA MT_WF_RMAC(0x0e0) #define MT_PCIE_REMAP_BASE_1 0x40000 #define MT_PCIE_REMAP_BASE_2 0x80000