* [PATCH] thermal: int340x: processor_thermal: Fix Nova Lake-S PCI device ID
@ 2026-11-13 15:40 Sankara Tankala
2026-11-13 17:28 ` srinivas pandruvada
0 siblings, 1 reply; 2+ messages in thread
From: Sankara Tankala @ 2026-11-13 15:40 UTC (permalink / raw)
To: rafael, daniel.lezcano
Cc: rui.zhang, lukasz.luba, srinivas.pandruvada, linux-pm,
linux-kernel, Sankara Tankala, stable
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 <srinivas.pandruvada@linux.intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Sankara Tankala <sankara.narayana@intel.com>
---
.../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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] thermal: int340x: processor_thermal: Fix Nova Lake-S PCI device ID
2026-11-13 15:40 [PATCH] thermal: int340x: processor_thermal: Fix Nova Lake-S PCI device ID Sankara Tankala
@ 2026-11-13 17:28 ` srinivas pandruvada
0 siblings, 0 replies; 2+ messages in thread
From: srinivas pandruvada @ 2026-11-13 17:28 UTC (permalink / raw)
To: Sankara Tankala, rafael, daniel.lezcano
Cc: rui.zhang, lukasz.luba, linux-pm, linux-kernel, stable
On Fri, 2026-11-13 at 21:10 +0530, Sankara Tankala wrote:
> 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 <srinivas.pandruvada@linux.intel.com>
> Cc: stable@vger.kernel.org
> Signed-off-by: Sankara Tankala <sankara.narayana@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> ---
> .../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;
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-13 17:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-13 15:40 [PATCH] thermal: int340x: processor_thermal: Fix Nova Lake-S PCI device ID Sankara Tankala
2026-11-13 17:28 ` srinivas pandruvada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®