FAILED: patch "[PATCH] wifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz" failed to apply to 6.1-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 57af267d2b8f5d88485c6372761386d79c5e6a1a
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2025021037-retype-jaunt-6b0b@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 57af267d2b8f5d88485c6372761386d79c5e6a1a Mon Sep 17 00:00:00 2001
From: Shayne Chen <[email protected]>
Date: Thu, 10 Oct 2024 10:38:16 +0200
Subject: [PATCH] wifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz
on MT7916
Due to a limitation in available memory, the MT7916 firmware can only handle either 5 GHz or 6 GHz at a time. It does not support runtime switching without a full restart.
On older firmware, this accidentally worked to some degree due to missing checks, but couldn't be supported properly, because it left the 6 GHz channels uncalibrated.
Newer firmware refuses to start on either band if the passed EEPROM data indicates support for both.
Deal with this limitation by using a module parameter to specify the preferred band in case both are supported.
drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c +19 -2
@@ -2,9 +2,14 @@/* Copyright (C) 2020 MediaTek Inc. */ #include <linux/firmware.h> +#include <linux/moduleparam.h> #include "mt7915.h" #include "eeprom.h" +static bool enable_6ghz; +module_param (enable_6ghz, bool,0644 ); +MODULE_PARM_DESC (enable_6ghz,"Enable 6 GHz instead of 5 GHz on hardware that supports both" ); +static int mt7915_eeprom_load_precal (struct mt7915_dev *dev) {struct mt76_dev *mdev = &dev->mt76;
@@ -170,8 +175,20 @@ static void mt7915_eeprom_parse_band_config(struct mt7915_phy *phy) phy->mt76->cap.has_6ghz = true;return ;case MT_EE_V2_BAND_SEL_5GHZ_6GHZ : - phy->mt76->cap.has_5ghz = true; - phy->mt76->cap.has_6ghz = true; +if (enable_6ghz) { + phy->mt76->cap.has_6ghz = true; +u8p_replace_bits (&eeprom[MT_EE_WIFI_CONF + band], +MT_EE_V2_BAND_SEL_6GHZ , +MT_EE_WIFI_CONF0_BAND_SEL ); + }else { + phy->mt76->cap.has_5ghz = true; +u8p_replace_bits (&eeprom[MT_EE_WIFI_CONF + band], +MT_EE_V2_BAND_SEL_5GHZ , +MT_EE_WIFI_CONF0_BAND_SEL ); + } +/* force to buffer mode */ + dev->flash_mode = true; +return ;default : phy->mt76->cap.has_2ghz = true;
drivers/net/wireless/mediatek/mt76/mt7915/init.c +2 -2
@@ -1239,14 +1239,14 @@ int mt7915_register_device(struct mt7915_dev *dev)if (ret) goto unreg_dev; -ieee80211_queue_work (mt76_hw (dev), &dev->init_work); -if (phy2) { ret =mt7915_register_ext_phy (dev, phy2);if (ret) goto unreg_thermal; } +ieee80211_queue_work (mt76_hw (dev), &dev->init_work); + dev->recovery.hw_init_done = true; ret =mt7915_init_debugfs (&dev->phy);