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 <[email protected]>
> Cc: Srinivas Pandruvada <[email protected]>
> Cc: Tushar Dave <[email protected]>
> Cc: Zhang Rui <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Link: 
> https://lore.kernel.org/lkml/[email protected]/
> Signed-off-by: Andres Freund <[email protected]>
Reviewed-by: Pandruvada, Srinivas <[email protected]>

> ---
>  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);

Reply via email to