2020-01-15 18:46:03

by Andres Freund

[permalink] [raw]
Subject: [PATCH] thermal: intel_pch_thermal: Add PCI ids for Lewisburg PCH.

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 id's missing. But I hope somebody at
Intel would have an easier time figuring that out than I...

Signed-off-by: Andres Freund <[email protected]>
---
drivers/thermal/intel/intel_pch_thermal.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/thermal/intel/intel_pch_thermal.c b/drivers/thermal/intel/intel_pch_thermal.c
index 4f0bb8f502e1..1f3ff0d489ef 100644
--- a/drivers/thermal/intel/intel_pch_thermal.c
+++ b/drivers/thermal/intel/intel_pch_thermal.c
@@ -23,6 +23,7 @@
#define PCH_THERMAL_DID_SKL_H 0xA131 /* Skylake PCH 100 series */
#define PCH_THERMAL_DID_CNL 0x9Df9 /* CNL PCH */
#define PCH_THERMAL_DID_CNL_H 0xA379 /* CNL-H PCH */
+#define PCH_THERMAL_DID_LWB 0xA1B1 /* Lewisburg PCH */

/* Wildcat Point-LP PCH Thermal registers */
#define WPT_TEMP 0x0000 /* Temperature */
@@ -272,6 +273,7 @@ enum board_ids {
board_wpt,
board_skl,
board_cnl,
+ board_lwb,
};

static const struct board_info {
@@ -294,6 +296,10 @@ static const struct board_info {
.name = "pch_cannonlake",
.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,
@@ -398,6 +404,8 @@ static const struct pci_device_id intel_pch_thermal_id[] = {
.driver_data = board_cnl, },
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_CNL_H),
.driver_data = board_cnl, },
+ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_LWB),
+ .driver_data = board_lwb, },
{ 0, },
};
MODULE_DEVICE_TABLE(pci, intel_pch_thermal_id);
--
2.25.0.rc1


2020-01-16 08:57:02

by Daniel Lezcano

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


Rui,

are you fine with this patch?


On 15/01/2020 19:44, 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 id's missing. But I hope somebody at
> Intel would have an easier time figuring that out than I...
>
> Signed-off-by: Andres Freund <[email protected]>
> ---
> drivers/thermal/intel/intel_pch_thermal.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/thermal/intel/intel_pch_thermal.c b/drivers/thermal/intel/intel_pch_thermal.c
> index 4f0bb8f502e1..1f3ff0d489ef 100644
> --- a/drivers/thermal/intel/intel_pch_thermal.c
> +++ b/drivers/thermal/intel/intel_pch_thermal.c
> @@ -23,6 +23,7 @@
> #define PCH_THERMAL_DID_SKL_H 0xA131 /* Skylake PCH 100 series */
> #define PCH_THERMAL_DID_CNL 0x9Df9 /* CNL PCH */
> #define PCH_THERMAL_DID_CNL_H 0xA379 /* CNL-H PCH */
> +#define PCH_THERMAL_DID_LWB 0xA1B1 /* Lewisburg PCH */
>
> /* Wildcat Point-LP PCH Thermal registers */
> #define WPT_TEMP 0x0000 /* Temperature */
> @@ -272,6 +273,7 @@ enum board_ids {
> board_wpt,
> board_skl,
> board_cnl,
> + board_lwb,
> };
>
> static const struct board_info {
> @@ -294,6 +296,10 @@ static const struct board_info {
> .name = "pch_cannonlake",
> .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,
> @@ -398,6 +404,8 @@ static const struct pci_device_id intel_pch_thermal_id[] = {
> .driver_data = board_cnl, },
> { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_CNL_H),
> .driver_data = board_cnl, },
> + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_LWB),
> + .driver_data = board_lwb, },
> { 0, },
> };
> MODULE_DEVICE_TABLE(pci, intel_pch_thermal_id);
>


--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

2020-01-16 13:54:26

by srinivas pandruvada

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

On Wed, 2020-01-15 at 10:44 -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.
Does the temperature reading match with what you read via IPMI?

The patch looks fine to me otherwise.

Thanks,
Srinivas

>
> I suspect there's some other PCI id's missing. But I hope somebody at
> Intel would have an easier time figuring that out than I...
>
> Signed-off-by: Andres Freund <[email protected]>
> ---
> drivers/thermal/intel/intel_pch_thermal.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/thermal/intel/intel_pch_thermal.c
> b/drivers/thermal/intel/intel_pch_thermal.c
> index 4f0bb8f502e1..1f3ff0d489ef 100644
> --- a/drivers/thermal/intel/intel_pch_thermal.c
> +++ b/drivers/thermal/intel/intel_pch_thermal.c
> @@ -23,6 +23,7 @@
> #define PCH_THERMAL_DID_SKL_H 0xA131 /* Skylake PCH 100
> series */
> #define PCH_THERMAL_DID_CNL 0x9Df9 /* CNL PCH */
> #define PCH_THERMAL_DID_CNL_H 0xA379 /* CNL-H PCH */
> +#define PCH_THERMAL_DID_LWB 0xA1B1 /* Lewisburg PCH */
>
> /* Wildcat Point-LP PCH Thermal registers */
> #define WPT_TEMP 0x0000 /* Temperature */
> @@ -272,6 +273,7 @@ enum board_ids {
> board_wpt,
> board_skl,
> board_cnl,
> + board_lwb,
> };
>
> static const struct board_info {
> @@ -294,6 +296,10 @@ static const struct board_info {
> .name = "pch_cannonlake",
> .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,
> @@ -398,6 +404,8 @@ static const struct pci_device_id
> intel_pch_thermal_id[] = {
> .driver_data = board_cnl, },
> { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_CNL_H),
> .driver_data = board_cnl, },
> + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCH_THERMAL_DID_LWB),
> + .driver_data = board_lwb, },
> { 0, },
> };
> MODULE_DEVICE_TABLE(pci, intel_pch_thermal_id);

2020-01-16 18:45:04

by Andres Freund

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

Hi,

On 2020-01-16 05:53:13 -0800, Srinivas Pandruvada wrote:
> On Wed, 2020-01-15 at 10:44 -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.
> Does the temperature reading match with what you read via IPMI?

It does:

root@awork3:~# ipmitool sdr|grep ^PCH
PCH Temp | 58 degrees C | ok

andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/type
pch_lewisburg
andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
58000

And if I generate some load, it rises for both:
root@awork3:~# ipmitool sdr|grep ^PCH
PCH Temp | 60 degrees C | ok
andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
60000

Regards,

Andres

2020-01-16 23:23:55

by srinivas pandruvada

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

On Thu, 2020-01-16 at 10:42 -0800, Andres Freund wrote:
> Hi,
>
> On 2020-01-16 05:53:13 -0800, Srinivas Pandruvada wrote:
> > On Wed, 2020-01-15 at 10:44 -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.
> > Does the temperature reading match with what you read via IPMI?
>
> It does:
>
> root@awork3:~# ipmitool sdr|grep ^PCH
> PCH Temp | 58 degrees C | ok
>
> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/type
> pch_lewisburg
> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
> 58000
>
> And if I generate some load, it rises for both:
> root@awork3:~# ipmitool sdr|grep ^PCH
> PCH Temp | 60 degrees C | ok
> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
> 60000
>
Thanks for the test.

Rui can add his ACK.


Thanks,
Srinivas

2020-10-29 08:53:43

by Andres Freund

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

Hi,

On 2020-01-16 11:41:34 -0800, Srinivas Pandruvada wrote:
> On Thu, 2020-01-16 at 10:42 -0800, Andres Freund wrote:
> > Hi,
> >
> > On 2020-01-16 05:53:13 -0800, Srinivas Pandruvada wrote:
> > > On Wed, 2020-01-15 at 10:44 -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.
> > > Does the temperature reading match with what you read via IPMI?
> >
> > It does:
> >
> > root@awork3:~# ipmitool sdr|grep ^PCH
> > PCH Temp | 58 degrees C | ok
> >
> > andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/type
> > pch_lewisburg
> > andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
> > 58000
> >
> > And if I generate some load, it rises for both:
> > root@awork3:~# ipmitool sdr|grep ^PCH
> > PCH Temp | 60 degrees C | ok
> > andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
> > 60000
> >
> Thanks for the test.
>
> Rui can add his ACK.

Ping? Looks like this got lost somewhere?

Greetings,

Andres Freund

2020-11-12 11:31:34

by Daniel Lezcano

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

On 28/10/2020 21:21, Andres Freund wrote:
> Hi,
>
> On 2020-01-16 11:41:34 -0800, Srinivas Pandruvada wrote:
>> On Thu, 2020-01-16 at 10:42 -0800, Andres Freund wrote:
>>> Hi,
>>>
>>> On 2020-01-16 05:53:13 -0800, Srinivas Pandruvada wrote:
>>>> On Wed, 2020-01-15 at 10:44 -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.
>>>> Does the temperature reading match with what you read via IPMI?
>>>
>>> It does:
>>>
>>> root@awork3:~# ipmitool sdr|grep ^PCH
>>> PCH Temp | 58 degrees C | ok
>>>
>>> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/type
>>> pch_lewisburg
>>> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
>>> 58000
>>>
>>> And if I generate some load, it rises for both:
>>> root@awork3:~# ipmitool sdr|grep ^PCH
>>> PCH Temp | 60 degrees C | ok
>>> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
>>> 60000
>>>
>> Thanks for the test.
>>
>> Rui can add his ACK.
>
> Ping? Looks like this got lost somewhere?

Waiting for Rui's ack :)


--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

2020-11-12 11:38:28

by Daniel Lezcano

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

On 28/10/2020 21:21, Andres Freund wrote:
> Hi,
>
> On 2020-01-16 11:41:34 -0800, Srinivas Pandruvada wrote:
>> On Thu, 2020-01-16 at 10:42 -0800, Andres Freund wrote:
>>> Hi,
>>>
>>> On 2020-01-16 05:53:13 -0800, Srinivas Pandruvada wrote:
>>>> On Wed, 2020-01-15 at 10:44 -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.
>>>> Does the temperature reading match with what you read via IPMI?
>>>
>>> It does:
>>>
>>> root@awork3:~# ipmitool sdr|grep ^PCH
>>> PCH Temp | 58 degrees C | ok
>>>
>>> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/type
>>> pch_lewisburg
>>> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
>>> 58000
>>>
>>> And if I generate some load, it rises for both:
>>> root@awork3:~# ipmitool sdr|grep ^PCH
>>> PCH Temp | 60 degrees C | ok
>>> andres@awork3:~$ cat /sys/class/thermal/thermal_zone0/temp
>>> 60000
>>>
>> Thanks for the test.
>>
>> Rui can add his ACK.
>
> Ping? Looks like this got lost somewhere?

It does no longer apply, is it possible to do a respin ?

Thanks

-- Daniel


--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

2020-11-13 20:52:41

by Andres Freund

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

Hi,

On 2020-11-12 12:34:08 +0100, Daniel Lezcano wrote:
> It does no longer apply, is it possible to do a respin ?

Yep, sent.

Thanks,

- Andres

2020-11-13 20:53:19

by Andres Freund

[permalink] [raw]
Subject: [PATCH] thermal: intel_pch_thermal: Add PCI ids for Lewisburg PCH.

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]>
---
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);
--
2.28.0.651.g306ee63a70

2020-11-14 18:44:16

by Pandruvada, Srinivas

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

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

2020-11-16 09:32:18

by Daniel Lezcano

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

On 13/11/2020 21:49, 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]>
> ---

Applied, thanks

--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

2020-11-21 00:49:11

by Andres Freund

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

Hi,

On 2020-11-16 10:28:04 +0100, Daniel Lezcano wrote:
> On 13/11/2020 21:49, 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]>
> > ---
>
> Applied, thanks

Thanks for review and applying.

Greetings,

Andres Freund

Subject: [thermal: thermal/next] thermal: intel_pch_thermal: Add PCI ids for Lewisburg PCH.

The following commit has been merged into the thermal/next branch of thermal:

Commit-ID: e78acf7efebff9184ad4add02b62a1f486a8cde8
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git//e78acf7efebff9184ad4add02b62a1f486a8cde8
Author: Andres Freund <[email protected]>
AuthorDate: Fri, 13 Nov 2020 12:49:16 -08:00
Committer: Daniel Lezcano <[email protected]>
CommitterDate: Sat, 14 Nov 2020 19:44:39 +01:00

thermal: intel_pch_thermal: Add PCI ids for Lewisburg PCH.

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]>
Signed-off-by: Daniel Lezcano <[email protected]>
Link: https://lore.kernel.org/r/[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 0a9e445..32e1b28 100644
--- a/drivers/thermal/intel/intel_pch_thermal.c
+++ b/drivers/thermal/intel/intel_pch_thermal.c
@@ -28,6 +28,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 */
@@ -340,6 +341,7 @@ enum board_ids {
board_skl,
board_cnl,
board_cml,
+ board_lwb,
};

static const struct board_info {
@@ -365,7 +367,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,
@@ -479,6 +485,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);