From nobody Mon Apr 6 10:46:13 2026 Received: from flow-b3-smtp.messagingengine.com (flow-b3-smtp.messagingengine.com [202.12.124.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 20545407577; Thu, 19 Mar 2026 22:24:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=202.12.124.138 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773959089; cv=none; b=pXb6EfY7rYcv2LQBB092Kt2Wl+LsaUCug/Z9PAMSJEUuj/BpCQQYXqXMLl/MlbSeFMfdwhhdEfx0U9JLeGrKd6dcM3ApNN7cdieOUcp4JMO8NaAJJBUc9UXyaDV7dvJjA1deOibWtNiQpsCHY4nbw+W/rJ+DDtATHnazG3NMLLE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773959089; c=relaxed/simple; bh=/gjiel5869rYGCVjZwRZFG03XJXO8FEsTHwufAYf8os=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc: In-Reply-To:References; b=DJfdMvzkHIeFdtuhLeNZXLpTsJjakPZrOcahJL8QZ53CmFLqeoPADA3BE167JsbXfHUOXrk5kSMHZyDqDElrdFwMVysyP5O+TVApgpIgJUcSMeklRCV0n2mHB6CQPqCoA/UO4tnGOFdM5DnMFDX841l9kKMbB49T/Msw3wFaF6Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=jetm.me; spf=pass smtp.mailfrom=jetm.me; dkim=pass (2048-bit key) header.d=jetm.me header.i=@jetm.me header.b=f/q76d0z; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=D+Mz2j0n; arc=none smtp.client-ip=202.12.124.138 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=jetm.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=jetm.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=jetm.me header.i=@jetm.me header.b="f/q76d0z"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="D+Mz2j0n" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailflow.stl.internal (Postfix) with ESMTP id B91F613000BA; Thu, 19 Mar 2026 18:24:41 -0400 (EDT) Received: from phl-imap-07 ([10.202.2.97]) by phl-compute-02.internal (MEProxy); Thu, 19 Mar 2026 18:24:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jetm.me; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1773959081; x=1773966281; bh=FmXZ9AWojJY1aMvgCUXzZGGkyVWJ2/d5Ccx43mIJnaI=; b= f/q76d0zqSLgaEWiJFVdGd9BdZQt5Djoe3REvmWm67Nc4qfeSWw9kwT83DwjbPKb fz8HJgoENN0rm21kUeweptvzThkQBSNeq04HHpEDxSs/lZwW09dqlvE6RUoX5M+P 4jC1cq8pumqpsi1eqk+Zk1UQdy62TbxpL0v/EUKCbtXO9KJ68fDVoiiPiNGkXXYu TK/BPcaEeQD3yWdD1obYlmrToizofl4jRToBzvp4qwjYaWB85awRUNxG819oHY45 5Stsjg5bSuPgKUyFM4GYSmZCOhVgZWabagwq+ACqncIBzyB6+UFWHbw2aUptREv1 8xMurSF1qI0KA7ZNRCp3Ww== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1773959081; x= 1773966281; bh=FmXZ9AWojJY1aMvgCUXzZGGkyVWJ2/d5Ccx43mIJnaI=; b=D +Mz2j0nWcv3jocWe9nLGYtHwOsT3H20nmtB/lcukqSVtNhvKD0bNoucQxXPynCnr 50bO0KczF0DhQKLK9U/875fsYuKi2+11jlbzYHJ3g4on5ItdU65aA/3CjVMegFsM fprg+TI4ipwlM0lBVzCGCiufq2SgI+/j+X4aWcUrjd9PAcJtZKI9gMUTXvhCl8qV zv+jM0yLf5RRrDqRZ1kVzafFPuCuvpa0wfg6P14Dc7JaWvJdlH5sRXwtBBM/MIm6 3fNe07sf1o3FNoe6GCmkQwTVdLCicZyCMdBe9c71zXO6ScoE5JuFGRgFwOQoEVbO DTh+RVh9T7Pc8Cl6a1BnQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdeftdekvddtucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepoffhfffugggtgffkvfevofgjfhesthekredtredtjeenucfhrhhomheplfgrvhhi vghrucfvihgruceofhhlohhsshesjhgvthhmrdhmvgeqnecuggftrfgrthhtvghrnhepue dttdfggfdufeeiueetffegveefffevjeehvdelfeevhffhteekgfegveeuiefhnecuffho mhgrihhnpehgihhthhhusgdrtghomhenucevlhhushhtvghrufhiiigvpedunecurfgrrh grmhepmhgrihhlfhhrohhmpehflhhoshhssehjvghtmhdrmhgvpdhnsggprhgtphhtthho pedvvddpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtoheprghnghgvlhhoghhiohgrtg gthhhinhhordguvghlrhgvghhnohestgholhhlrggsohhrrgdrtghomhdprhgtphhtthho peefudelfeeifedusehgmhgrihhlrdgtohhmpdhrtghpthhtoheplhhoohhnghdrtdigtd dtsehgmhgrihhlrdgtohhmpdhrtghpthhtoheprghrihgvlhdrrhhoshgvnhhfvghlugdr jeehtdesghhmrghilhdrtghomhdprhgtphhtthhopegthhgrphhuihhsuggrrhhiohegse hgmhgrihhlrdgtohhmpdhrtghpthhtohepghhiohhsrghlledtsehgmhgrihhlrdgtohhm pdhrtghpthhtohepmhgrthhthhhirghsrdgsghhgsehgmhgrihhlrdgtohhmpdhrtghpth htoheprhgrughoihdrtghhrhhishesghhmrghilhdrtghomhdprhgtphhtthhopehsrghm uhdrthholhhjrghmohesghhmrghilhdrtghomh X-ME-Proxy: Feedback-ID: i9dde48b3:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 27A6F1EA006C; Thu, 19 Mar 2026 18:24:41 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface From: Javier Tia Date: Thu, 19 Mar 2026 16:24:26 -0600 Subject: [PATCH v2 10/13] wifi: mt76: mt7925: add MT7927 hardware initialization Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260319-mt7927-wifi-support-v2-v2-10-d627a7fad70d@jetm.me> To: Felix Fietkau , Lorenzo Bianconi , Ryder Lee , Shayne Chen , Sean Wang , Matthias Brugger , AngeloGioacchino Del Regno , Deren Wu , Ming Yen Hsieh Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, =?utf-8?q?=E5=BC=A0=E6=97=AD=E6=B6=B5?= , Marcin FM , Cristian-Florin Radoi , George Salukvadze , Evgeny Kapusta <3193631@gmail.com>, Samu Toljamo , Ariel Rosenfeld , Chapuis Dario , =?utf-8?q?Thibaut_Fran=C3=A7ois?= X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=10527; i=floss@jetm.me; h=from:subject:message-id; bh=/gjiel5869rYGCVjZwRZFG03XJXO8FEsTHwufAYf8os=; b=owEB7QES/pANAwAKAbXuwwuoZ3cfAcsmYgBpvHeR2w1DkIuJrbkOygUy5D9atwjadjhCjVIIo DbVywuclWKJAbMEAAEKAB0WIQSbE7ILzw7eI0VKk8m17sMLqGd3HwUCabx3kQAKCRC17sMLqGd3 H42FC/4msAplLp8BrK1e1KTKrdd2iO9NN8QAQUQE7O6QiDnbAjhPm6GxoKvd1NdhX/aSQcEFCVg c9tSYGNxxeV7K3YFAt7mNreux2DrJdkdnFLSvw2RWpPyIwFYXbs78LWKXLx69N+qk06r/0CTfnM fHVfCjAZ7bBtCTWMnL9FVBU1oMrgi73MSTPOUKXNFo3+WIyxr8r2WUd+wxTkI5B6VgPRkMnaFmc kbmox3cAu4mPhm58fYrmPlBMDPnX4NJUwvUgV/U9ZMrxxl2G1Fp43kMthGRqTu+jwfaesN3IXiV ibdJVzV21MmwAeZ5mmq4HuW0Vuxto0/yOpnFxnP1E3Rwz0JrJ4ESZLoFwiVTs7M8iNIYwSOPAuj z85YV6IWwfM5QFA0M/4M3jNj4u0Y6bqAVM946h5erEu+F1VPqwNOCdergJToA6v80NBPgD2k1oD 7OkOCd4cnkEvfuQjbdnV+C3KcpTDoekMRss5xbE4D9L7AjFgwChPeja3mwgoDGPw5KW3o= X-Developer-Key: i=floss@jetm.me; a=openpgp; fpr=9B13B20BCF0EDE23454A93C9B5EEC30BA867771F In-Reply-To: <20260319-mt7927-wifi-support-v2-v2-0-d627a7fad70d@jetm.me> References: <20260319-mt7927-wifi-support-v2-v2-0-d627a7fad70d@jetm.me> Add MT7927-specific hardware initialization for the Filogic 380 combo chip, which has an additional CBInfra (ConnectaBus Infrastructure) bus fabric between PCIe and the WiFi subsystem. CBTOP remap: configure PCIe address mapping so MMIO reads to WiFi registers return valid data instead of zero. Chip initialization sequence: 1. WF subsystem reset via CBInfra RGU 2. MCU ownership acquisition 3. Poll ROMCODE_INDEX for MCU idle (0x1D1E) 4. MCIF remap for host DMA 5. PCIe sleep disable Probe flow changes for MT7927: - Skip early CLR_OWN (CBTOP not yet configured) - Force chip ID if CHIPID register returns stale value - Replace wfsys_reset with mt7927_chip_init CLR_OWN skip in mt7925e_mcu_init(): every CLR_OWN triggers the ROM to reinitialize WFDMA, destroying ring configuration set up by DMA init. The controlled SET_OWN/CLR_OWN is already handled in the DMA pre-ring setup hook. DBDC enable: MT7927 firmware defaults to single-band (2.4GHz only). Send explicit SET_DBDC_PARMS to enable dual-band operation. CNM force: MT7927 firmware lacks the connac2 feature trailer, causing channel context ops to be replaced with stubs. Force the CNM flag at probe to preserve ROC support needed for authentication. mac_reset guard: return -EOPNOTSUPP for MT7927 since the reset path performs CLR_OWN and logic reset that destroy DMA configuration. Full reset recovery is follow-up work. Register values derived from Loong0x00's reverse-engineered MT7927 driver. Reported-by: =E5=BC=A0=E6=97=AD=E6=B6=B5 Closes: https://github.com/openwrt/mt76/issues/927 Tested-by: Marcin FM Tested-by: Cristian-Florin Radoi Tested-by: George Salukvadze Tested-by: Evgeny Kapusta <3193631@gmail.com> Tested-by: Samu Toljamo Tested-by: Ariel Rosenfeld Tested-by: Chapuis Dario Tested-by: Thibaut Fran=C3=A7ois Tested-by: =E5=BC=A0=E6=97=AD=E6=B6=B5 Signed-off-by: Javier Tia --- drivers/net/wireless/mediatek/mt76/mt7925/init.c | 13 +++ drivers/net/wireless/mediatek/mt76/mt7925/pci.c | 103 +++++++++++++++++= ++-- .../net/wireless/mediatek/mt76/mt7925/pci_mac.c | 9 ++ .../net/wireless/mediatek/mt76/mt7925/pci_mcu.c | 20 ++-- drivers/net/wireless/mediatek/mt76/mt792x_regs.h | 18 ++++ 5 files changed, 149 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/init.c b/drivers/net= /wireless/mediatek/mt76/mt7925/init.c index 3ce5d6fcc69d..c4c99380f5b5 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/init.c @@ -115,6 +115,19 @@ static int __mt7925_init_hardware(struct mt792x_dev *d= ev) if (ret) goto out; =20 + /* MT7927: Enable DBDC (dual-band) mode. Without this, firmware + * defaults to 2.4GHz only and ignores 5GHz scan requests. + * MT7925 firmware handles DBDC automatically. + */ + if (is_mt7927(&dev->mt76)) { + ret =3D mt7925_mcu_set_dbdc(&dev->mphy, true); + if (ret) { + dev_warn(dev->mt76.dev, + "MT7927 DBDC enable failed: %d\n", ret); + ret =3D 0; + } + } + out: return ret; } diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c b/drivers/net/= wireless/mediatek/mt76/mt7925/pci.c index 415194a440f8..393d9f408b84 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/pci.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci.c @@ -400,6 +400,64 @@ static const struct mt792x_irq_map mt7927_irq_map =3D { .wm2_complete_mask =3D MT7927_RX_DONE_INT_ENA7, }, }; + +static int mt7927_chip_init(struct mt792x_dev *dev) +{ + struct mt76_dev *mdev =3D &dev->mt76; + u32 val; + + /* EMI sleep protect */ + mt76_rmw_field(dev, MT_HW_EMI_CTL, MT_HW_EMI_CTL_SLPPROT_EN, 1); + + /* WF subsystem reset via CBInfra RGU */ + mt76_set(dev, MT7927_CBINFRA_RGU_WF_RST, + MT7927_CBINFRA_RGU_WF_RST_WF_SUBSYS); + msleep(1); + mt76_clear(dev, MT7927_CBINFRA_RGU_WF_RST, + MT7927_CBINFRA_RGU_WF_RST_WF_SUBSYS); + msleep(5); + + /* MCU ownership */ + mt76_wr(dev, MT7927_CBINFRA_MCU_OWN_SET, BIT(0)); + + /* Poll ROMCODE_INDEX for MCU idle */ + if (!__mt76_poll_msec(mdev, MT7927_ROMCODE_INDEX, + 0xffff, MT7927_MCU_IDLE_VALUE, 2000)) { + val =3D mt76_rr(dev, MT7927_ROMCODE_INDEX); + dev_err(mdev->dev, + "MT7927 MCU idle timeout (ROMCODE_INDEX=3D0x%04x)\n", + val & 0xffff); + return -ETIMEDOUT; + } + + /* MCIF remap - MCU needs this to DMA to host memory */ + mt76_wr(dev, MT7927_MCIF_REMAP_WF_1_BA, + MT7927_MCIF_REMAP_WF_1_BA_VAL); + + /* Disable PCIe sleep */ + mt76_wr(dev, MT7927_CBINFRA_SLP_CTRL, 0xffffffff); + + /* Clear CONNINFRA wakeup */ + mt76_wr(dev, MT7927_CBINFRA_WAKEPU_TOP, 0x0); + + return 0; +} + +static void mt7927_cbtop_remap(struct mt792x_dev *dev) +{ + /* CONNINFRA wakeup - required before CBInfra register access */ + mt76_wr(dev, MT7927_CBINFRA_WAKEPU_TOP, 0x1); + usleep_range(1000, 2000); + + /* Configure CBTOP PCIe address remap for WF and BT */ + mt76_wr(dev, MT7927_CBINFRA_MISC0_REMAP_WF, + MT7927_CBINFRA_REMAP_WF_VAL); + mt76_wr(dev, MT7927_CBINFRA_MISC0_REMAP_BT, + MT7927_CBINFRA_REMAP_BT_VAL); + + /* Readback to push writes */ + mt76_rr(dev, MT7927_CBINFRA_MISC0_REMAP_WF); +} static int mt7925_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { @@ -482,6 +540,17 @@ static int mt7925_pci_probe(struct pci_dev *pdev, goto err_free_pci_vec; } =20 + /* MT7927 firmware lacks the connac2 feature trailer, so + * mt792x_get_mac80211_ops() can't detect CNM support and + * replaces chanctx/ROC/mgd_prepare_tx ops with stubs. + * Force CNM and restore the original mt7925 ops. + */ + if ((pdev->device =3D=3D 0x6639 || pdev->device =3D=3D 0x7927) && + !(features & MT792x_FW_CAP_CNM)) { + features |=3D MT792x_FW_CAP_CNM; + memcpy(ops, &mt7925_ops, sizeof(*ops)); + } + mdev =3D mt76_alloc_device(&pdev->dev, sizeof(*dev), ops, &drv_ops); if (!mdev) { ret =3D -ENOMEM; @@ -517,25 +586,43 @@ static int mt7925_pci_probe(struct pci_dev *pdev, =20 if (!mt7925_disable_aspm && mt76_pci_aspm_supported(pdev)) dev->aspm_supported =3D true; - ret =3D __mt792x_mcu_fw_pmctrl(dev); if (ret) goto err_free_dev; =20 - ret =3D __mt792xe_mcu_drv_pmctrl(dev); - if (ret) - goto err_free_dev; + if (!is_mt7927_hw) { + ret =3D __mt792xe_mcu_drv_pmctrl(dev); + if (ret) + goto err_free_dev; + } + + if (is_mt7927_hw) + mt7927_cbtop_remap(dev); =20 mdev->rev =3D (mt76_rr(dev, MT_HW_CHIPID) << 16) | (mt76_rr(dev, MT_HW_REV) & 0xff); =20 dev_info(mdev->dev, "ASIC revision: %04x\n", mdev->rev); =20 - mt76_rmw_field(dev, MT_HW_EMI_CTL, MT_HW_EMI_CTL_SLPPROT_EN, 1); + /* Force chip ID for MT7927 hardware if CHIPID read returns garbage */ + if (is_mt7927_hw && (mdev->rev >> 16) !=3D 0x7927) { + dev_info(mdev->dev, + "MT7927 raw CHIPID=3D0x%04x, forcing chip=3D0x7927\n", + (u16)(mdev->rev >> 16)); + mdev->rev =3D (0x7927 << 16) | (mdev->rev & 0xff); + } =20 - ret =3D mt792x_wfsys_reset(dev); - if (ret) - goto err_free_dev; + if (is_mt7927_hw) { + ret =3D mt7927_chip_init(dev); + if (ret) + goto err_free_dev; + } else { + mt76_rmw_field(dev, MT_HW_EMI_CTL, + MT_HW_EMI_CTL_SLPPROT_EN, 1); + ret =3D mt792x_wfsys_reset(dev); + if (ret) + goto err_free_dev; + } =20 mt76_wr(dev, irq_map.host_irq_enable, 0); =20 diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci_mac.c b/drivers/= net/wireless/mediatek/mt76/mt7925/pci_mac.c index 1626a3684082..9b3eeb1328f6 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/pci_mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci_mac.c @@ -72,6 +72,15 @@ int mt7925e_mac_reset(struct mt792x_dev *dev) const struct mt792x_irq_map *irq_map =3D dev->irq_map; int i, err; =20 + /* MT7927: CLR_OWN and WPDMA reset destroy DMA ring configuration. + * A full reset requires re-running mt7927_dma_init() which is not + * yet implemented in the recovery path. + */ + if (is_mt7927(&dev->mt76)) { + dev_warn(dev->mt76.dev, "MT7927 mac_reset not supported, reload module t= o recover\n"); + return -EOPNOTSUPP; + } + mt792xe_mcu_drv_pmctrl(dev); =20 mt76_connac_free_pending_tx_skbs(&dev->pm, NULL); diff --git a/drivers/net/wireless/mediatek/mt76/mt7925/pci_mcu.c b/drivers/= net/wireless/mediatek/mt76/mt7925/pci_mcu.c index 6cceff88c656..1f50d1ef6fb6 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7925/pci_mcu.c +++ b/drivers/net/wireless/mediatek/mt76/mt7925/pci_mcu.c @@ -35,13 +35,21 @@ int mt7925e_mcu_init(struct mt792x_dev *dev) =20 dev->mt76.mcu_ops =3D &mt7925_mcu_ops; =20 - err =3D mt792xe_mcu_fw_pmctrl(dev); - if (err) - return err; + if (is_mt7927(&dev->mt76)) { + /* MT7927: CLR_OWN was already done in mt7927_dma_init(). + * The ROM re-initializes WFDMA on every CLR_OWN, wiping + * ring and prefetch config. Skip SET_OWN/CLR_OWN here + * to preserve DMA state. + */ + } else { + err =3D mt792xe_mcu_fw_pmctrl(dev); + if (err) + return err; =20 - err =3D __mt792xe_mcu_drv_pmctrl(dev); - if (err) - return err; + err =3D __mt792xe_mcu_drv_pmctrl(dev); + if (err) + return err; + } =20 mt76_rmw_field(dev, MT_PCIE_MAC_PM, MT_PCIE_MAC_PM_L0S_DIS, 1); =20 diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_regs.h b/drivers/net= /wireless/mediatek/mt76/mt792x_regs.h index 1b9b51d43f79..9c4bbbe898f3 100644 --- a/drivers/net/wireless/mediatek/mt76/mt792x_regs.h +++ b/drivers/net/wireless/mediatek/mt76/mt792x_regs.h @@ -499,4 +499,22 @@ #define WFSYS_SW_RST_B BIT(0) #define WFSYS_SW_INIT_DONE BIT(4) =20 +/* CBInfra registers - MT7927 combo chip */ +#define MT7927_CBINFRA_WAKEPU_TOP 0xe01a0 +#define MT7927_CBINFRA_MISC0_REMAP_WF 0x1f6554 +#define MT7927_CBINFRA_MISC0_REMAP_BT 0x1f6558 +#define MT7927_CBINFRA_RGU_WF_RST 0x1f8600 +#define MT7927_CBINFRA_RGU_WF_RST_WF_SUBSYS BIT(4) +#define MT7927_CBINFRA_MCU_OWN_SET 0x1f5034 +#define MT7927_CBINFRA_SLP_CTRL 0x1f5018 +#define MT7927_ROMCODE_INDEX 0xc1604 +#define MT7927_MCU_IDLE_VALUE 0x1d1e +#define MT7927_MCIF_REMAP_WF_1_BA 0xd1034 + +/* CBInfra CBTOP remap values */ +#define MT7927_CBINFRA_REMAP_WF_VAL 0x74037001 +#define MT7927_CBINFRA_REMAP_BT_VAL 0x70007000 + +#define MT7927_MCIF_REMAP_WF_1_BA_VAL 0x18051803 + #endif /* __MT792X_REGS_H */ --=20 2.53.0