mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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®