Re: [PATCH] thermal: intel_pch_thermal: Add PCI ids for Lewisburg PCH.

From: Pandruvada, Srinivas
Date: Sat Nov 14 2020 - 13:41:53 EST


On Fri, 2020-11-13 at 12:49 -0800, Andres Freund wrote:
> I noticed that I couldn't read the PCH temperature on my workstation
> (C620 series chipset, w/ 2x Xeon Gold 5215 CPUs) directly, but had to
> go
> through IPMI. Looking at the data sheet, it looks to me like the
> existing intel PCH thermal driver should work without changes for
> Lewisburg.
>
> I suspect there's some other PCI IDs missing. But I hope somebody at
> Intel would have an easier time figuring that out than I...
>
> Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@xxxxxxxxxxxxxxx>
> Cc: Tushar Dave <tushar.n.dave@xxxxxxxxx>
> Cc: Zhang Rui <rui.zhang@xxxxxxxxx>
> Cc: linux-pm@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Link:
> https://lore.kernel.org/lkml/20200115184415.1726953-1-andres@xxxxxxxxxxx/
> Signed-off-by: Andres Freund <andres@xxxxxxxxxxx>
Reviewed-by: Pandruvada, Srinivas <srinivas.pandruvada@xxxxxxxxxxxxxxx>

> ---
> drivers/thermal/intel/intel_pch_thermal.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/intel/intel_pch_thermal.c
> b/drivers/thermal/intel/intel_pch_thermal.c
> index 3b813ebb6ca1..7785e05f46f0 100644
> --- a/drivers/thermal/intel/intel_pch_thermal.c
> +++ b/drivers/thermal/intel/intel_pch_thermal.c
> @@ -26,6 +26,7 @@
> #define PCH_THERMAL_DID_CNL_H 0xA379 /* CNL-H PCH */
> #define PCH_THERMAL_DID_CNL_LP 0x02F9 /* CNL-LP PCH */
> #define PCH_THERMAL_DID_CML_H 0X06F9 /* CML-H PCH */
> +#define PCH_THERMAL_DID_LWB 0xA1B1 /* Lewisburg PCH */
>
> /* Wildcat Point-LP PCH Thermal registers */
> #define WPT_TEMP 0x0000 /* Temperature */
> @@ -276,6 +277,7 @@ enum board_ids {
> board_skl,
> board_cnl,
> board_cml,
> + board_lwb,
> };
>
> static const struct board_info {
> @@ -301,7 +303,11 @@ static const struct board_info {
> [board_cml] = {
> .name = "pch_cometlake",
> .ops = &pch_dev_ops_wpt,
> - }
> + },
> + [board_lwb] = {
> + .name = "pch_lewisburg",
> + .ops = &pch_dev_ops_wpt,
> + },
> };
>
> static int intel_pch_thermal_probe(struct pci_dev *pdev,
> @@ -415,6 +421,8 @@ static const struct pci_device_id
> intel_pch_thermal_id[] = {
> .driver_data = board_cnl, },
> { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_CML_H),
> .driver_data = board_cml, },
> + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_LWB),
> + .driver_data = board_lwb, },
> { 0, },
> };
> MODULE_DEVICE_TABLE(pci, intel_pch_thermal_id);