[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20251220170501.3972438-1-gaohan@iscas.ac.cn>
Date: Sun, 21 Dec 2025 01:05:01 +0800
From: Han Gao <gaohan@...as.ac.cn>
To: Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
Kai Vehmanen <kai.vehmanen@...ux.intel.com>,
Peter Ujfalusi <peter.ujfalusi@...ux.intel.com>,
Ranjani Sridharan <ranjani.sridharan@...ux.intel.com>,
Bard Liao <yung-chuan.liao@...ux.intel.com>,
Maxim Mikityanskiy <maxtram95@...il.com>,
Pierre-Louis Bossart <pierre-louis.bossart@...ux.dev>,
Stuart Hayhurst <stuart.a.hayhurst@...il.com>,
linux-sound@...r.kernel.org
Cc: Han Gao <rabenda.cn@...il.com>,
linux-riscv@...ts.infradead.org,
sophgo@...ts.linux.dev,
linux-kernel@...r.kernel.org,
Han Gao <gaohan@...as.ac.cn>
Subject: [PATCH] ALSA: hda: intel: Introduce msi64 parameter to override 64-bit MSI restriction
Sophgo SG2042 MSI driver does not support 32-bit MSI.
Introduce an 'msi64' kernel parameter to bypass NO_MSI64 for ATI/HDMI.
Signed-off-by: Han Gao <gaohan@...as.ac.cn>
---
sound/hda/controllers/intel.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sound/hda/controllers/intel.c b/sound/hda/controllers/intel.c
index 1e8e3d61291a..b4bad9e65235 100644
--- a/sound/hda/controllers/intel.c
+++ b/sound/hda/controllers/intel.c
@@ -121,6 +121,7 @@ static bool beep_mode[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] =
#endif
static bool dmic_detect = 1;
static bool ctl_dev_id = IS_ENABLED(CONFIG_SND_HDA_CTL_DEV_ID) ? 1 : 0;
+static bool msi64;
module_param_array(index, int, NULL, 0444);
MODULE_PARM_DESC(index, "Index value for Intel HD audio interface.");
@@ -161,6 +162,8 @@ MODULE_PARM_DESC(dmic_detect, "Allow DSP driver selection (bypass this driver) "
"deprecated, use snd-intel-dspcfg.dsp_driver option instead");
module_param(ctl_dev_id, bool, 0444);
MODULE_PARM_DESC(ctl_dev_id, "Use control device identifier (based on codec address).");
+module_param(msi64, bool, 0444);
+MODULE_PARM_DESC(msi64, "Force use msi 64bit.");
#ifdef CONFIG_PM
static int param_set_xint(const char *val, const struct kernel_param *kp);
@@ -1903,7 +1906,7 @@ static int azx_first_init(struct azx *chip)
chip->gts_present = true;
#endif
- if (chip->msi && chip->driver_caps & AZX_DCAPS_NO_MSI64) {
+ if (chip->msi && chip->driver_caps & AZX_DCAPS_NO_MSI64 && !msi64) {
dev_dbg(card->dev, "Disabling 64bit MSI\n");
pci->no_64bit_msi = true;
}
--
2.47.3
Powered by blists - more mailing lists