Nova Lake-S uses the same processor thermal PCI device ID as Nova Lake-H, 0xD703. The 0xAD03 ID added for Nova Lake-S is the Arrow Lake-S ID (PCI_DEVICE_ID_INTEL_ARL_S_THERMAL). The ARL-S entry comes first in the PCI ID table, so the NVL-S entry never matched. However, proc_thermal_rfim_add() matches on the device ID alone, so Arrow Lake-S, which has DLVR, wrongly gets the Nova Lake DLVR register map. Replace the separate NVL_H and NVL_S IDs with a single NVL ID, 0xD703, and drop the 0xAD03 entries. Fixes: af1b80b94126 ("thermal: int340x: processor_thermal: Add Nova Lake processor thermal device") Fixes: dbd911a07f14 ("thermal: intel: int340x: Add DLVR support for Nova Lake") Cc: Srinivas Pandruvada Cc: stable@vger.kernel.org Signed-off-by: Sankara Tankala --- .../intel/int340x_thermal/processor_thermal_device.h | 3 +-- .../intel/int340x_thermal/processor_thermal_device_pci.c | 7 +------ .../thermal/intel/int340x_thermal/processor_thermal_rfim.c | 3 +-- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h index b79937a386ec..87d8ff9c7173 100644 --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h @@ -27,8 +27,7 @@ #define PCI_DEVICE_ID_INTEL_JSL_THERMAL 0x4E03 #define PCI_DEVICE_ID_INTEL_LNLM_THERMAL 0x641D #define PCI_DEVICE_ID_INTEL_MTLP_THERMAL 0x7D03 -#define PCI_DEVICE_ID_INTEL_NVL_H_THERMAL 0xD703 -#define PCI_DEVICE_ID_INTEL_NVL_S_THERMAL 0xAD03 +#define PCI_DEVICE_ID_INTEL_NVL_THERMAL 0xD703 #define PCI_DEVICE_ID_INTEL_RPL_THERMAL 0xA71D #define PCI_DEVICE_ID_INTEL_SKL_THERMAL 0x1903 #define PCI_DEVICE_ID_INTEL_TGL_THERMAL 0x9A03 diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c index 7d6fee59ade2..f218ee247ab4 100644 --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c @@ -501,12 +501,7 @@ static const struct pci_device_id proc_thermal_pci_ids[] = { PROC_THERMAL_FEATURE_DVFS | PROC_THERMAL_FEATURE_WT_HINT | PROC_THERMAL_FEATURE_POWER_FLOOR | PROC_THERMAL_FEATURE_PTC | PROC_THERMAL_FEATURE_SOC_POWER_SLIDER) }, - { PCI_DEVICE_DATA(INTEL, NVL_H_THERMAL, PROC_THERMAL_FEATURE_RAPL | - PROC_THERMAL_FEATURE_DLVR | PROC_THERMAL_FEATURE_DVFS | - PROC_THERMAL_FEATURE_MSI_SUPPORT | PROC_THERMAL_FEATURE_WT_HINT | - PROC_THERMAL_FEATURE_POWER_FLOOR | PROC_THERMAL_FEATURE_PTC | - PROC_THERMAL_FEATURE_SOC_POWER_SLIDER) }, - { PCI_DEVICE_DATA(INTEL, NVL_S_THERMAL, PROC_THERMAL_FEATURE_RAPL | + { PCI_DEVICE_DATA(INTEL, NVL_THERMAL, PROC_THERMAL_FEATURE_RAPL | PROC_THERMAL_FEATURE_DLVR | PROC_THERMAL_FEATURE_DVFS | PROC_THERMAL_FEATURE_MSI_SUPPORT | PROC_THERMAL_FEATURE_WT_HINT | PROC_THERMAL_FEATURE_POWER_FLOOR | PROC_THERMAL_FEATURE_PTC | diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c index 96279756177f..1832f13634d8 100644 --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c @@ -472,8 +472,7 @@ int proc_thermal_rfim_add(struct pci_dev *pdev, struct proc_thermal_device *proc dlvr_mmio_regs_table = lnl_dlvr_mmio_regs; dlvr_mapping = lnl_dlvr_mapping; break; - case PCI_DEVICE_ID_INTEL_NVL_H_THERMAL: - case PCI_DEVICE_ID_INTEL_NVL_S_THERMAL: + case PCI_DEVICE_ID_INTEL_NVL_THERMAL: dlvr_mmio_regs_table = nvl_dlvr_mmio_regs; ddr_data_rate_reg = &nvl_ddr_data_rate_reg; break; -- 2.43.0