Skip to content
Snippets Groups Projects
Select Git revision
  • 02fd2d04b0623019ecd449c5965463700ff7735d
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-07-04
  • experimental-2025-07-04-base
  • experimental-2025-07-01
  • experimental-2025-07-01-base
  • experimental-2025-06-25
  • experimental-2025-06-25-base
  • experimental-2025-06-24
  • experimental-2025-06-24-base
  • experimental-2025-06-22
  • experimental-2025-06-22-base
  • v2023.2.5-ffs0.1
  • experimental-2025-06-08
  • experimental-2025-06-08-base
  • experimental-2025-06-06
  • experimental-2025-06-06-base
  • experimental-2025-05-27
  • experimental-2025-05-27-base
  • experimental-2025-05-18
  • experimental-2025-05-18-base
  • experimental-2025-05-15
41 results

0009-mt76-import-MT7915-recovery-fixes.patch

Blame
  • 0009-mt76-import-MT7915-recovery-fixes.patch 4.79 KiB
    From: David Bauer <mail@david-bauer.net>
    Date: Fri, 7 Feb 2025 00:17:02 +0100
    Subject: mt76: import MT7915 recovery fixes
    
    diff --git a/package/kernel/mt76/patches/0003-mt7915-mcu-lower-default-timeout.patch b/package/kernel/mt76/patches/0003-mt7915-mcu-lower-default-timeout.patch
    new file mode 100644
    index 0000000000000000000000000000000000000000..2f55d42fbffba1d84bff3a89da3281b73f3668de
    --- /dev/null
    +++ b/package/kernel/mt76/patches/0003-mt7915-mcu-lower-default-timeout.patch
    @@ -0,0 +1,32 @@
    +From 74530440427abcbd20d071f00e25ab0e4c483ea2 Mon Sep 17 00:00:00 2001
    +From: David Bauer <mail@david-bauer.net>
    +Date: Mon, 13 Jan 2025 08:48:41 +0100
    +Subject: [PATCH 3/5] mt7915: mcu: lower default timeout
    +
    +The default timeout set in mt76_connac2_mcu_fill_message of 20 seconds
    +leads to excessive stalling in case messages are lost.
    +
    +Testing showed that a smaller timeout of  seconds is sufficient in
    +normal operation.
    +
    +Signed-off-by: David Bauer <mail@david-bauer.net>
    +---
    + mt7915/mcu.c | 2 ++
    + 1 file changed, 2 insertions(+)
    +
    +diff --git a/mt7915/mcu.c b/mt7915/mcu.c
    +index 9d790f23..51b6e480 100644
    +--- a/mt7915/mcu.c
    ++++ b/mt7915/mcu.c
    +@@ -197,6 +197,8 @@ mt7915_mcu_parse_response(struct mt76_dev *mdev, int cmd,
    + static void
    + mt7915_mcu_set_timeout(struct mt76_dev *mdev, int cmd)
    + {
    ++	mdev->mcu.timeout = 5 * HZ;
    ++
    + 	if ((cmd & __MCU_CMD_FIELD_ID) != MCU_CMD_EXT_CID)
    + 		return;
    + 
    +-- 
    +2.47.2
    +
    diff --git a/package/kernel/mt76/patches/0004-mt7915-mcu-increase-command-timeout.patch b/package/kernel/mt76/patches/0004-mt7915-mcu-increase-command-timeout.patch
    new file mode 100644
    index 0000000000000000000000000000000000000000..5368dcff6623681c40c938efeed171885805e3a9
    --- /dev/null
    +++ b/package/kernel/mt76/patches/0004-mt7915-mcu-increase-command-timeout.patch
    @@ -0,0 +1,32 @@
    +From 094105e471472e3ea44c4094857ad8a7c6973460 Mon Sep 17 00:00:00 2001
    +From: David Bauer <mail@david-bauer.net>
    +Date: Mon, 13 Jan 2025 08:51:30 +0100
    +Subject: [PATCH 4/5] mt7915: mcu: increase command timeout
    +
    +Increase the timeout for MCU_EXT_CMD_EFUSE_BUFFER_MODE command.
    +
    +Regular retries upon hardware-recovery have been observed. Increasing
    +the timeout slightly remedies this problem.
    +
    +Signed-off-by: David Bauer <mail@david-bauer.net>
    +---
    + mt7915/mcu.c | 3 +++
    + 1 file changed, 3 insertions(+)
    +
    +diff --git a/mt7915/mcu.c b/mt7915/mcu.c
    +index 51b6e480..cd9cb428 100644
    +--- a/mt7915/mcu.c
    ++++ b/mt7915/mcu.c
    +@@ -210,6 +210,9 @@ mt7915_mcu_set_timeout(struct mt76_dev *mdev, int cmd)
    + 	case MCU_EXT_CMD_BSS_INFO_UPDATE:
    + 		mdev->mcu.timeout = 2 * HZ;
    + 		return;
    ++	case MCU_EXT_CMD_EFUSE_BUFFER_MODE:
    ++		mdev->mcu.timeout = 10 * HZ;
    ++		return;
    + 	default:
    + 		break;
    + 	}
    +-- 
    +2.47.2
    +
    diff --git a/package/kernel/mt76/patches/0005-mt7915-mcu-re-init-MCU-before-loading-FW-patch.patch b/package/kernel/mt76/patches/0005-mt7915-mcu-re-init-MCU-before-loading-FW-patch.patch
    new file mode 100644
    index 0000000000000000000000000000000000000000..21b47b1c484edf8b29f3237fd4e02e075b368a31
    --- /dev/null
    +++ b/package/kernel/mt76/patches/0005-mt7915-mcu-re-init-MCU-before-loading-FW-patch.patch
    @@ -0,0 +1,55 @@
    +From 4e9e3cceea7ace91df52d795e4e45a7acb368a4c Mon Sep 17 00:00:00 2001
    +From: David Bauer <mail@david-bauer.net>
    +Date: Sun, 12 Jan 2025 15:30:54 +0100
    +Subject: [PATCH 5/5] mt7915: mcu: re-init MCU before loading FW patch
    +
    +Restart the MCU and release the patch semaphore before loading the MCU
    +patch firmware from the host.
    +
    +This fixes failures upon error recovery in case the semaphore was
    +previously taken and never released by the host.
    +
    +Signed-off-by: David Bauer <mail@david-bauer.net>
    +---
    + mt7915/mcu.c | 25 +++++++++++++++----------
    + 1 file changed, 15 insertions(+), 10 deletions(-)
    +
    +diff --git a/mt7915/mcu.c b/mt7915/mcu.c
    +index cd9cb428..4121b980 100644
    +--- a/mt7915/mcu.c
    ++++ b/mt7915/mcu.c
    +@@ -2097,16 +2097,21 @@ static int mt7915_load_firmware(struct mt7915_dev *dev)
    + {
    + 	int ret;
    + 
    +-	/* make sure fw is download state */
    +-	if (mt7915_firmware_state(dev, false)) {
    +-		/* restart firmware once */
    +-		mt76_connac_mcu_restart(&dev->mt76);
    +-		ret = mt7915_firmware_state(dev, false);
    +-		if (ret) {
    +-			dev_err(dev->mt76.dev,
    +-				"Firmware is not ready for download\n");
    +-			return ret;
    +-		}
    ++	/* Release Semaphore if taken by previous failed attempt */
    ++	ret = mt76_connac_mcu_patch_sem_ctrl(&dev->mt76, false);
    ++	if (ret != PATCH_REL_SEM_SUCCESS) {
    ++		dev_err(dev->mt76.dev, "Could not release semaphore\n");
    ++		/* Continue anyways */
    ++	}
    ++
    ++	/* Always restart MCU firmware */
    ++	mt76_connac_mcu_restart(&dev->mt76);
    ++
    ++	/* Check if MCU is ready */
    ++	ret = mt7915_firmware_state(dev, false);
    ++	if (ret) {
    ++		dev_err(dev->mt76.dev, "Firmware did not enter download state\n");
    ++		return ret;
    + 	}
    + 
    + 	ret = mt76_connac2_load_patch(&dev->mt76, fw_name_var(dev, ROM_PATCH));
    +-- 
    +2.47.2
    +