From 8851b5b0e72eb9823544a664b74205da31b60598 Mon Sep 17 00:00:00 2001 From: Simon Yang Date: Mon, 10 Nov 2025 19:36:07 +0800 Subject: [PATCH] soc/intel/pantherlake: Program HDA SVID/SSID Retrieve SVID/SSID via devicetree and program to HDA device BUG=b/458444964, b/454824561 TEST="lspci -s 00:1f.3 -x and check value in offset 0x2c-0x2f" Change-Id: I6bf4b5f2cbce69429daabce83ab11c13272194f4 Signed-off-by: Simon Yang Reviewed-on: https://review.coreboot.org/c/coreboot/+/89983 Reviewed-by: Subrata Banik Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) Reviewed-by: Derek Huang --- src/soc/intel/pantherlake/romstage/fsp_params.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/soc/intel/pantherlake/romstage/fsp_params.c b/src/soc/intel/pantherlake/romstage/fsp_params.c index 04cd86d7a1..69f3ed4d9b 100644 --- a/src/soc/intel/pantherlake/romstage/fsp_params.c +++ b/src/soc/intel/pantherlake/romstage/fsp_params.c @@ -196,6 +196,15 @@ static void fill_fspm_audio_params(FSP_M_CONFIG *m_cfg, memset(m_cfg->PchHdaAudioLinkDmicEnable, 0, sizeof(m_cfg->PchHdaAudioLinkDmicEnable)); memset(m_cfg->PchHdaAudioLinkSspEnable, 0, sizeof(m_cfg->PchHdaAudioLinkSspEnable)); memset(m_cfg->PchHdaAudioLinkSndwEnable, 0, sizeof(m_cfg->PchHdaAudioLinkSndwEnable)); + + /* + * Get HDA Subsystem Vendor ID and Device ID from devicetree + * and set it in FSPM UPD. + */ + const struct device_path path = { .type = DEVICE_PATH_PCI, .pci.devfn = PCI_DEVFN_HDA }; + const struct device *dev = find_dev_path(pci_root_bus(), &path); + if (is_dev_enabled(dev) && dev->subsystem_vendor && dev->subsystem_device) + m_cfg->PchHdaSubSystemIds = dev->subsystem_vendor | (dev->subsystem_device << 16); } static void pcie_rp_init(FSP_M_CONFIG *m_cfg, uint32_t en_mask,