From 0d947e59cbbd45c7bdad5c1978f391b309bcd4db Mon Sep 17 00:00:00 2001 From: Matt DeVillier Date: Sun, 25 Jan 2026 21:01:41 -0600 Subject: [PATCH] soc/intel: Use chipset.cb for CNVI WiFi device ops linking Move CNVI WiFi device operations linking from PCI Device ID matching to chipset.cb files for all Intel SoCs that have them. Remove corresponding DIDs from cnvi.c for these SoCs; keep DID matching only for SoCs without chipset.cb files. Remove the static declaration from cnvi_wifi_ops so the symbol is exported and visible outside of cnvi.c. This standardizes the approach across Intel SoCs and makes the CNVI WiFi controller configuration explicit in devicetree, and prevents the endless proliferation of DIDs in the common driver code. Change-Id: I82a2b20a8b967d1a3d5a80ae477def260c366be7 Signed-off-by: Matt DeVillier Reviewed-on: https://review.coreboot.org/c/coreboot/+/90922 Reviewed-by: Jakub "Kuba" Czapiga Tested-by: build bot (Jenkins) --- src/soc/intel/alderlake/chipset.cb | 2 +- src/soc/intel/alderlake/chipset_pch_s.cb | 2 +- src/soc/intel/apollolake/chipset_glk.cb | 2 +- src/soc/intel/cannonlake/chipset.cb | 2 +- src/soc/intel/cannonlake/chipset_pch_h.cb | 2 +- src/soc/intel/common/block/cnvi/cnvi.c | 53 +---------------------- src/soc/intel/jasperlake/chipset.cb | 2 +- src/soc/intel/meteorlake/chipset.cb | 2 +- src/soc/intel/pantherlake/chipset_ptl.cb | 2 +- src/soc/intel/pantherlake/chipset_wcl.cb | 2 +- src/soc/intel/tigerlake/chipset.cb | 2 +- src/soc/intel/tigerlake/chipset_pch_h.cb | 2 +- 12 files changed, 12 insertions(+), 63 deletions(-) diff --git a/src/soc/intel/alderlake/chipset.cb b/src/soc/intel/alderlake/chipset.cb index 487b4ca961..a18da51a89 100644 --- a/src/soc/intel/alderlake/chipset.cb +++ b/src/soc/intel/alderlake/chipset.cb @@ -231,7 +231,7 @@ chip soc/intel/alderlake end device pci 14.1 alias usb_otg off end device pci 14.2 alias shared_sram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 15.0 alias i2c0 off ops i2c_dev_ops end device pci 15.1 alias i2c1 off ops i2c_dev_ops end device pci 15.2 alias i2c2 off ops i2c_dev_ops end diff --git a/src/soc/intel/alderlake/chipset_pch_s.cb b/src/soc/intel/alderlake/chipset_pch_s.cb index 6d7be6f10d..962a46617b 100644 --- a/src/soc/intel/alderlake/chipset_pch_s.cb +++ b/src/soc/intel/alderlake/chipset_pch_s.cb @@ -362,7 +362,7 @@ chip soc/intel/alderlake end device pci 14.1 alias xdci off ops usb_xdci_ops end device pci 14.2 alias shared_sram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 15.0 alias i2c0 off ops i2c_dev_ops end device pci 15.1 alias i2c1 off ops i2c_dev_ops end device pci 15.2 alias i2c2 off ops i2c_dev_ops end diff --git a/src/soc/intel/apollolake/chipset_glk.cb b/src/soc/intel/apollolake/chipset_glk.cb index 818954dd52..ab5ca0cf36 100644 --- a/src/soc/intel/apollolake/chipset_glk.cb +++ b/src/soc/intel/apollolake/chipset_glk.cb @@ -6,7 +6,7 @@ chip soc/intel/apollolake device pci 00.2 alias npk off end # NorthPeak device pci 02.0 alias igd off end # Integrated Graphics Device device pci 03.0 alias gmm off end # GMM - device pci 0c.0 alias cnvi off end # CNVi + device pci 0c.0 alias cnvi off ops cnvi_wifi_ops end # CNVi device pci 0d.0 alias p2sb off end # P2SB device pci 0d.1 alias pmc off end # PMC device pci 0d.2 alias fast_spi off end # SPI diff --git a/src/soc/intel/cannonlake/chipset.cb b/src/soc/intel/cannonlake/chipset.cb index a8d5d3133f..fafb02bf50 100644 --- a/src/soc/intel/cannonlake/chipset.cb +++ b/src/soc/intel/cannonlake/chipset.cb @@ -80,7 +80,7 @@ chip soc/intel/cannonlake end device pci 14.1 alias xdci off ops usb_xdci_ops end # USB xDCI (OTG) device pci 14.2 alias shared_sram off end # Shared SRAM - device pci 14.3 alias cnvi_wifi off end # CNVi Wifi + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end # CNVi Wifi device pci 14.5 alias sdxc off end # SDCard device pci 15.0 alias i2c0 off ops i2c_dev_ops end # I2C #0 device pci 15.1 alias i2c1 off ops i2c_dev_ops end # I2C #1 diff --git a/src/soc/intel/cannonlake/chipset_pch_h.cb b/src/soc/intel/cannonlake/chipset_pch_h.cb index 89411e7cbc..2ce5269274 100644 --- a/src/soc/intel/cannonlake/chipset_pch_h.cb +++ b/src/soc/intel/cannonlake/chipset_pch_h.cb @@ -104,7 +104,7 @@ chip soc/intel/cannonlake end device pci 14.1 alias xdci off ops usb_xdci_ops end # USB xDCI (OTG) device pci 14.2 alias shared_sram off end # Shared SRAM - device pci 14.3 alias cnvi_wifi off end # CNVi Wifi + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end # CNVi Wifi device pci 14.5 alias sdxc off end # SDCard device pci 15.0 alias i2c0 off ops i2c_dev_ops end # I2C #0 device pci 15.1 alias i2c1 off ops i2c_dev_ops end # I2C #1 diff --git a/src/soc/intel/common/block/cnvi/cnvi.c b/src/soc/intel/common/block/cnvi/cnvi.c index 0511fd20c0..214bd0890e 100644 --- a/src/soc/intel/common/block/cnvi/cnvi.c +++ b/src/soc/intel/common/block/cnvi/cnvi.c @@ -462,7 +462,7 @@ static void cnvw_fill_ssdt(const struct device *dev) acpigen_write_scope_end(); } -static struct device_operations cnvi_wifi_ops = { +struct device_operations cnvi_wifi_ops = { .read_resources = pci_dev_read_resources, .set_resources = pci_dev_set_resources, .enable_resources = pci_dev_enable_resources, @@ -477,61 +477,10 @@ static const unsigned short wifi_pci_device_ids[] = { PCI_DID_INTEL_NVL_CNVI_WIFI_1, PCI_DID_INTEL_NVL_CNVI_WIFI_2, PCI_DID_INTEL_NVL_CNVI_WIFI_3, - PCI_DID_INTEL_WCL_CNVI_WIFI_0, - PCI_DID_INTEL_WCL_CNVI_WIFI_1, - PCI_DID_INTEL_WCL_CNVI_WIFI_2, - PCI_DID_INTEL_WCL_CNVI_WIFI_3, - PCI_DID_INTEL_PTL_H_CNVI_WIFI_0, - PCI_DID_INTEL_PTL_H_CNVI_WIFI_1, - PCI_DID_INTEL_PTL_H_CNVI_WIFI_2, - PCI_DID_INTEL_PTL_H_CNVI_WIFI_3, - PCI_DID_INTEL_PTL_U_H_CNVI_WIFI_0, - PCI_DID_INTEL_PTL_U_H_CNVI_WIFI_1, - PCI_DID_INTEL_PTL_U_H_CNVI_WIFI_2, - PCI_DID_INTEL_PTL_U_H_CNVI_WIFI_3, PCI_DID_INTEL_LNL_CNVI_WIFI_0, PCI_DID_INTEL_LNL_CNVI_WIFI_1, PCI_DID_INTEL_LNL_CNVI_WIFI_2, PCI_DID_INTEL_LNL_CNVI_WIFI_3, - PCI_DID_INTEL_MTL_CNVI_WIFI_0, - PCI_DID_INTEL_MTL_CNVI_WIFI_1, - PCI_DID_INTEL_MTL_CNVI_WIFI_2, - PCI_DID_INTEL_MTL_CNVI_WIFI_3, - PCI_DID_INTEL_ARL_CNVI_WIFI, - PCI_DID_INTEL_ARP_S_CNVI_WIFI, - PCI_DID_INTEL_CML_LP_CNVI_WIFI, - PCI_DID_INTEL_CML_H_CNVI_WIFI, - PCI_DID_INTEL_CNL_LP_CNVI_WIFI, - PCI_DID_INTEL_CNL_H_CNVI_WIFI, - PCI_DID_INTEL_GLK_CNVI_WIFI, - PCI_DID_INTEL_JSL_CNVI_WIFI_0, - PCI_DID_INTEL_JSL_CNVI_WIFI_1, - PCI_DID_INTEL_JSL_CNVI_WIFI_2, - PCI_DID_INTEL_JSL_CNVI_WIFI_3, - PCI_DID_INTEL_TGL_CNVI_WIFI_0, - PCI_DID_INTEL_TGL_CNVI_WIFI_1, - PCI_DID_INTEL_TGL_CNVI_WIFI_2, - PCI_DID_INTEL_TGL_CNVI_WIFI_3, - PCI_DID_INTEL_TGL_H_CNVI_WIFI_0, - PCI_DID_INTEL_TGL_H_CNVI_WIFI_1, - PCI_DID_INTEL_TGL_H_CNVI_WIFI_2, - PCI_DID_INTEL_TGL_H_CNVI_WIFI_3, - PCI_DID_INTEL_ADL_P_CNVI_WIFI_0, - PCI_DID_INTEL_ADL_P_CNVI_WIFI_1, - PCI_DID_INTEL_ADL_P_CNVI_WIFI_2, - PCI_DID_INTEL_ADL_P_CNVI_WIFI_3, - PCI_DID_INTEL_ADL_S_CNVI_WIFI_0, - PCI_DID_INTEL_ADL_S_CNVI_WIFI_1, - PCI_DID_INTEL_ADL_S_CNVI_WIFI_2, - PCI_DID_INTEL_ADL_S_CNVI_WIFI_3, - PCI_DID_INTEL_ADL_N_CNVI_WIFI_0, - PCI_DID_INTEL_ADL_N_CNVI_WIFI_1, - PCI_DID_INTEL_ADL_N_CNVI_WIFI_2, - PCI_DID_INTEL_ADL_N_CNVI_WIFI_3, - PCI_DID_INTEL_RPL_S_CNVI_WIFI_0, - PCI_DID_INTEL_RPL_S_CNVI_WIFI_1, - PCI_DID_INTEL_RPL_S_CNVI_WIFI_2, - PCI_DID_INTEL_RPL_S_CNVI_WIFI_3, 0 }; diff --git a/src/soc/intel/jasperlake/chipset.cb b/src/soc/intel/jasperlake/chipset.cb index 4288b425fe..278ba50050 100644 --- a/src/soc/intel/jasperlake/chipset.cb +++ b/src/soc/intel/jasperlake/chipset.cb @@ -63,7 +63,7 @@ chip soc/intel/jasperlake end device pci 14.1 alias south_xdci off ops usb_xdci_ops end device pci 14.2 alias shared_ram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 14.5 alias sdxc off end device pci 15.0 alias i2c0 off ops i2c_dev_ops end device pci 15.1 alias i2c1 off ops i2c_dev_ops end diff --git a/src/soc/intel/meteorlake/chipset.cb b/src/soc/intel/meteorlake/chipset.cb index ef023c1e23..3488a0f684 100644 --- a/src/soc/intel/meteorlake/chipset.cb +++ b/src/soc/intel/meteorlake/chipset.cb @@ -151,7 +151,7 @@ chip soc/intel/meteorlake end device pci 14.1 alias usb_otg off end device pci 14.2 alias pmc_shared_sram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 14.5 alias ieh off end device pci 15.0 alias i2c0 off ops i2c_dev_ops end device pci 15.1 alias i2c1 off ops i2c_dev_ops end diff --git a/src/soc/intel/pantherlake/chipset_ptl.cb b/src/soc/intel/pantherlake/chipset_ptl.cb index debb0a2bae..d2521efc78 100644 --- a/src/soc/intel/pantherlake/chipset_ptl.cb +++ b/src/soc/intel/pantherlake/chipset_ptl.cb @@ -212,7 +212,7 @@ chip soc/intel/pantherlake end end device pci 14.2 alias pmc_shared_sram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 14.7 alias cnvi_bluetooth off end device pci 14.5 alias ieh off end device pci 15.0 alias i2c0 off ops i2c_dev_ops end diff --git a/src/soc/intel/pantherlake/chipset_wcl.cb b/src/soc/intel/pantherlake/chipset_wcl.cb index ccc5948d1f..465ad05ad9 100644 --- a/src/soc/intel/pantherlake/chipset_wcl.cb +++ b/src/soc/intel/pantherlake/chipset_wcl.cb @@ -98,7 +98,7 @@ chip soc/intel/pantherlake end end device pci 14.2 alias pmc_shared_sram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 14.7 alias cnvi_bluetooth off end device pci 14.5 alias ieh off end device pci 15.0 alias i2c0 off ops i2c_dev_ops end diff --git a/src/soc/intel/tigerlake/chipset.cb b/src/soc/intel/tigerlake/chipset.cb index 9e33123c73..725f8296a3 100644 --- a/src/soc/intel/tigerlake/chipset.cb +++ b/src/soc/intel/tigerlake/chipset.cb @@ -114,7 +114,7 @@ chip soc/intel/tigerlake end device pci 14.1 alias south_xdci off ops usb_xdci_ops end device pci 14.2 alias shared_ram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 15.0 alias i2c0 off ops i2c_dev_ops end device pci 15.1 alias i2c1 off ops i2c_dev_ops end device pci 15.2 alias i2c2 off ops i2c_dev_ops end diff --git a/src/soc/intel/tigerlake/chipset_pch_h.cb b/src/soc/intel/tigerlake/chipset_pch_h.cb index fe98239693..28adb940e4 100644 --- a/src/soc/intel/tigerlake/chipset_pch_h.cb +++ b/src/soc/intel/tigerlake/chipset_pch_h.cb @@ -136,7 +136,7 @@ chip soc/intel/tigerlake end device pci 14.1 alias south_xdci off ops usb_xdci_ops end device pci 14.2 alias shared_ram off end - device pci 14.3 alias cnvi_wifi off end + device pci 14.3 alias cnvi_wifi off ops cnvi_wifi_ops end device pci 15.0 alias i2c0 off ops i2c_dev_ops end device pci 15.1 alias i2c1 off ops i2c_dev_ops end device pci 15.2 alias i2c2 off ops i2c_dev_ops end