* [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC @ 2025-06-13 21:49 Srinivas Pandruvada 2025-06-13 21:49 ` [PATCH v2 2/2] thermal: intel: int340x: Allow temperature override Srinivas Pandruvada 2025-06-16 0:46 ` [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC Zhang, Rui 0 siblings, 2 replies; 5+ messages in thread From: Srinivas Pandruvada @ 2025-06-13 21:49 UTC (permalink / raw) To: rui.zhang, daniel.lezcano, rafael, lukasz.luba Cc: linux-kernel, linux-pm, Srinivas Pandruvada Firmware-based thermal temperature control loops may aggressively throttle performance to prevent temperature overshoots relative to the defined target temperature. This can negatively impact performance. User space may prefer to prioritize performance, even if it results in temperature overshoots with in acceptable range. For example, user space might tolerate temperature overshoots when the device is placed on a desk, as opposed to when it's on a lap. To accommodate such scenarios, an optional attribute is provided to specify a tolerance level for temperature overshoots while maintaining acceptable performance. Attribute: thermal_tolerance: This attribute ranges from 0 to 7, where 0 represents the most aggressive control to avoid any temperature overshoots, and 7 represents a more graceful approach, favoring performance even at the expense of temperature overshoots. Note: This level may not scale linearly. For example, a value of 3 does not necessarily imply a 50% improvement in performance compared to a value of 0. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> --- v2: - Changed commit description - Change "gain" to "thermal_tolerance" analogous to latency_tolerance. - Dropped "min_performance" attribute for next patch set Documentation/driver-api/thermal/intel_dptf.rst | 9 +++++++++ .../intel/int340x_thermal/platform_temperature_control.c | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Documentation/driver-api/thermal/intel_dptf.rst b/Documentation/driver-api/thermal/intel_dptf.rst index ec5769accae0..c51ac793dc06 100644 --- a/Documentation/driver-api/thermal/intel_dptf.rst +++ b/Documentation/driver-api/thermal/intel_dptf.rst @@ -206,6 +206,15 @@ All these controls needs admin privilege to update. Update a new temperature target in milli degree celsius for hardware to use for the temperature control. +``thermal_tolerance`` (RW) + This attribute ranges from 0 to 7, where 0 represents + the most aggressive control to avoid any temperature overshoots, and + 7 represents a more graceful approach, favoring performance even at + the expense of temperature overshoots. + Note: This level may not scale linearly. For example, a value of 3 does + not necessarily imply a 50% improvement in performance compared to a + value of 0. + Given that this is platform temperature control, it is expected that a single user-level manager owns and manages the controls. If multiple user-level software applications attempt to write different targets, it diff --git a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c index 2d6504514893..7850e91a6e2c 100644 --- a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c +++ b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c @@ -49,7 +49,7 @@ struct mmio_reg { }; #define MAX_ATTR_GROUP_NAME_LEN 32 -#define PTC_MAX_ATTRS 3 +#define PTC_MAX_ATTRS 4 struct ptc_data { u32 offset; @@ -57,6 +57,7 @@ struct ptc_data { struct attribute *ptc_attrs[PTC_MAX_ATTRS]; struct device_attribute temperature_target_attr; struct device_attribute enable_attr; + struct device_attribute thermal_tolerance_attr; char group_name[MAX_ATTR_GROUP_NAME_LEN]; }; @@ -78,6 +79,7 @@ static u32 ptc_offsets[PTC_MAX_INSTANCES] = {0x5B20, 0x5B28, 0x5B30}; static const char * const ptc_strings[] = { "temperature_target", "enable", + "thermal_tolerance", NULL }; @@ -177,6 +179,8 @@ PTC_SHOW(temperature_target); PTC_STORE(temperature_target); PTC_SHOW(enable); PTC_STORE(enable); +PTC_SHOW(thermal_tolerance); +PTC_STORE(thermal_tolerance); #define ptc_init_attribute(_name)\ do {\ @@ -193,9 +197,11 @@ static int ptc_create_groups(struct pci_dev *pdev, int instance, struct ptc_data ptc_init_attribute(temperature_target); ptc_init_attribute(enable); + ptc_init_attribute(thermal_tolerance); data->ptc_attrs[index++] = &data->temperature_target_attr.attr; data->ptc_attrs[index++] = &data->enable_attr.attr; + data->ptc_attrs[index++] = &data->thermal_tolerance_attr.attr; data->ptc_attrs[index] = NULL; snprintf(data->group_name, MAX_ATTR_GROUP_NAME_LEN, -- 2.49.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] thermal: intel: int340x: Allow temperature override 2025-06-13 21:49 [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC Srinivas Pandruvada @ 2025-06-13 21:49 ` Srinivas Pandruvada 2025-06-16 1:03 ` Zhang, Rui 2025-06-16 0:46 ` [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC Zhang, Rui 1 sibling, 1 reply; 5+ messages in thread From: Srinivas Pandruvada @ 2025-06-13 21:49 UTC (permalink / raw) To: rui.zhang, daniel.lezcano, rafael, lukasz.luba Cc: linux-kernel, linux-pm, Srinivas Pandruvada Add debugfs interface to override hardware provide temperature. This interface can be used primarily for debug. Alternatively this can be also used to use hardware control loops to manage temperature for virtual sensors. Virtual sensors are soft sensors created by kernel/ user space aggregating other sensors. There are three attributes to override the maximum three instances of platform temperature control. /sys/kernel/debug/platform_temperature_control/ ├── temperature_0 ├── temperature_1 └── temperature_2 These are write only attributes requires admin privilege. Any value greater than 0, will override the temperature. A value of 0 will stop overriding the temperature. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> --- v2: - correct platform spelling - Move the ptc_create_debugfs under PROC_THERMAL_FEATURE_PTC mask .../platform_temperature_control.c | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c index 7850e91a6e2c..0ccc72c93499 100644 --- a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c +++ b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c @@ -38,6 +38,7 @@ #include <linux/kernel.h> #include <linux/module.h> +#include <linux/debugfs.h> #include <linux/pci.h> #include "processor_thermal_device.h" @@ -53,6 +54,7 @@ struct mmio_reg { struct ptc_data { u32 offset; + struct pci_dev *pdev; struct attribute_group ptc_attr_group; struct attribute *ptc_attrs[PTC_MAX_ATTRS]; struct device_attribute temperature_target_attr; @@ -215,6 +217,63 @@ static int ptc_create_groups(struct pci_dev *pdev, int instance, struct ptc_data } static struct ptc_data ptc_instance[PTC_MAX_INSTANCES]; +static struct dentry *ptc_debugfs; + +#define PTC_TEMP_OVERRIDE_ENABLE_INDEX 4 +#define PTC_TEMP_OVERRIDE_INDEX 5 + +static ssize_t ptc_temperature_write(struct file *file, const char __user *data, + size_t count, loff_t *ppos) +{ + struct ptc_data *ptc_instance = file->private_data; + struct pci_dev *pdev = ptc_instance->pdev; + char buf[32]; + ssize_t len; + u32 value; + + len = min(count, sizeof(buf) - 1); + if (copy_from_user(buf, data, len)) + return -EFAULT; + + buf[len] = '\0'; + if (kstrtouint(buf, 0, &value)) + return -EINVAL; + + if (ptc_mmio_regs[PTC_TEMP_OVERRIDE_INDEX].units) + value /= ptc_mmio_regs[PTC_TEMP_OVERRIDE_INDEX].units; + + if (value > ptc_mmio_regs[PTC_TEMP_OVERRIDE_INDEX].mask) + return -EINVAL; + + if (!value) { + ptc_mmio_write(pdev, ptc_instance->offset, PTC_TEMP_OVERRIDE_ENABLE_INDEX, 0); + } else { + ptc_mmio_write(pdev, ptc_instance->offset, PTC_TEMP_OVERRIDE_INDEX, value); + ptc_mmio_write(pdev, ptc_instance->offset, PTC_TEMP_OVERRIDE_ENABLE_INDEX, 1); + } + + return count; +} + +static const struct file_operations ptc_fops = { + .open = simple_open, + .write = ptc_temperature_write, + .llseek = generic_file_llseek, +}; + +static void ptc_create_debugfs(void) +{ + ptc_debugfs = debugfs_create_dir("platform_temperature_control", NULL); + + debugfs_create_file("temperature_0", 0200, ptc_debugfs, &ptc_instance[0], &ptc_fops); + debugfs_create_file("temperature_1", 0200, ptc_debugfs, &ptc_instance[1], &ptc_fops); + debugfs_create_file("temperature_2", 0200, ptc_debugfs, &ptc_instance[2], &ptc_fops); +} + +static void ptc_delete_debugfs(void) +{ + debugfs_remove_recursive(ptc_debugfs); +} int proc_thermal_ptc_add(struct pci_dev *pdev, struct proc_thermal_device *proc_priv) { @@ -223,8 +282,11 @@ int proc_thermal_ptc_add(struct pci_dev *pdev, struct proc_thermal_device *proc_ for (i = 0; i < PTC_MAX_INSTANCES; i++) { ptc_instance[i].offset = ptc_offsets[i]; + ptc_instance[i].pdev = pdev; ptc_create_groups(pdev, i, &ptc_instance[i]); } + + ptc_create_debugfs(); } return 0; @@ -240,6 +302,8 @@ void proc_thermal_ptc_remove(struct pci_dev *pdev) for (i = 0; i < PTC_MAX_INSTANCES; i++) sysfs_remove_group(&pdev->dev.kobj, &ptc_instance[i].ptc_attr_group); + + ptc_delete_debugfs(); } } EXPORT_SYMBOL_GPL(proc_thermal_ptc_remove); -- 2.49.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] thermal: intel: int340x: Allow temperature override 2025-06-13 21:49 ` [PATCH v2 2/2] thermal: intel: int340x: Allow temperature override Srinivas Pandruvada @ 2025-06-16 1:03 ` Zhang, Rui 0 siblings, 0 replies; 5+ messages in thread From: Zhang, Rui @ 2025-06-16 1:03 UTC (permalink / raw) To: srinivas.pandruvada@linux.intel.com, lukasz.luba@arm.com, rafael@kernel.org, daniel.lezcano@linaro.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org On Fri, 2025-06-13 at 14:49 -0700, Srinivas Pandruvada wrote: > Add debugfs interface to override hardware provide temperature. This > interface can be used primarily for debug. Alternatively this can > be also used to use hardware control loops to manage temperature for > virtual sensors. Virtual sensors are soft sensors created by kernel/ > user space aggregating other sensors. > > There are three attributes to override the maximum three instances of > platform temperature control. > /sys/kernel/debug/platform_temperature_control/ > ├── temperature_0 > ├── temperature_1 > └── temperature_2 > > These are write only attributes requires admin privilege. Any value > greater than 0, will override the temperature. A value of 0 will > stop overriding the temperature. > > Signed-off-by: Srinivas Pandruvada > <srinivas.pandruvada@linux.intel.com> LGTM. Reviewed-by: Zhang Rui <rui.zhang@intel.com> -rui > --- > v2: > - correct platform spelling > - Move the ptc_create_debugfs under PROC_THERMAL_FEATURE_PTC mask > > .../platform_temperature_control.c | 64 +++++++++++++++++++ > 1 file changed, 64 insertions(+) > > diff --git > a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > index 7850e91a6e2c..0ccc72c93499 100644 > --- > a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > +++ > b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > @@ -38,6 +38,7 @@ > > #include <linux/kernel.h> > #include <linux/module.h> > +#include <linux/debugfs.h> > #include <linux/pci.h> > #include "processor_thermal_device.h" > > @@ -53,6 +54,7 @@ struct mmio_reg { > > struct ptc_data { > u32 offset; > + struct pci_dev *pdev; > struct attribute_group ptc_attr_group; > struct attribute *ptc_attrs[PTC_MAX_ATTRS]; > struct device_attribute temperature_target_attr; > @@ -215,6 +217,63 @@ static int ptc_create_groups(struct pci_dev *pdev, > int instance, struct ptc_data > } > > static struct ptc_data ptc_instance[PTC_MAX_INSTANCES]; > +static struct dentry *ptc_debugfs; > + > +#define PTC_TEMP_OVERRIDE_ENABLE_INDEX 4 > +#define PTC_TEMP_OVERRIDE_INDEX 5 > + > +static ssize_t ptc_temperature_write(struct file *file, const char > __user *data, > + size_t count, loff_t *ppos) > +{ > + struct ptc_data *ptc_instance = file->private_data; > + struct pci_dev *pdev = ptc_instance->pdev; > + char buf[32]; > + ssize_t len; > + u32 value; > + > + len = min(count, sizeof(buf) - 1); > + if (copy_from_user(buf, data, len)) > + return -EFAULT; > + > + buf[len] = '\0'; > + if (kstrtouint(buf, 0, &value)) > + return -EINVAL; > + > + if (ptc_mmio_regs[PTC_TEMP_OVERRIDE_INDEX].units) > + value /= ptc_mmio_regs[PTC_TEMP_OVERRIDE_INDEX].units; > + > + if (value > ptc_mmio_regs[PTC_TEMP_OVERRIDE_INDEX].mask) > + return -EINVAL; > + > + if (!value) { > + ptc_mmio_write(pdev, ptc_instance->offset, > PTC_TEMP_OVERRIDE_ENABLE_INDEX, 0); > + } else { > + ptc_mmio_write(pdev, ptc_instance->offset, > PTC_TEMP_OVERRIDE_INDEX, value); > + ptc_mmio_write(pdev, ptc_instance->offset, > PTC_TEMP_OVERRIDE_ENABLE_INDEX, 1); > + } > + > + return count; > +} > + > +static const struct file_operations ptc_fops = { > + .open = simple_open, > + .write = ptc_temperature_write, > + .llseek = generic_file_llseek, > +}; > + > +static void ptc_create_debugfs(void) > +{ > + ptc_debugfs = > debugfs_create_dir("platform_temperature_control", NULL); > + > + debugfs_create_file("temperature_0", 0200, ptc_debugfs, > &ptc_instance[0], &ptc_fops); > + debugfs_create_file("temperature_1", 0200, ptc_debugfs, > &ptc_instance[1], &ptc_fops); > + debugfs_create_file("temperature_2", 0200, ptc_debugfs, > &ptc_instance[2], &ptc_fops); > +} > + > +static void ptc_delete_debugfs(void) > +{ > + debugfs_remove_recursive(ptc_debugfs); > +} > > int proc_thermal_ptc_add(struct pci_dev *pdev, struct > proc_thermal_device *proc_priv) > { > @@ -223,8 +282,11 @@ int proc_thermal_ptc_add(struct pci_dev *pdev, > struct proc_thermal_device *proc_ > > for (i = 0; i < PTC_MAX_INSTANCES; i++) { > ptc_instance[i].offset = ptc_offsets[i]; > + ptc_instance[i].pdev = pdev; > ptc_create_groups(pdev, i, &ptc_instance[i]); > } > + > + ptc_create_debugfs(); > } > > return 0; > @@ -240,6 +302,8 @@ void proc_thermal_ptc_remove(struct pci_dev *pdev) > > for (i = 0; i < PTC_MAX_INSTANCES; i++) > sysfs_remove_group(&pdev->dev.kobj, > &ptc_instance[i].ptc_attr_group); > + > + ptc_delete_debugfs(); > } > } > EXPORT_SYMBOL_GPL(proc_thermal_ptc_remove); ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC 2025-06-13 21:49 [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC Srinivas Pandruvada 2025-06-13 21:49 ` [PATCH v2 2/2] thermal: intel: int340x: Allow temperature override Srinivas Pandruvada @ 2025-06-16 0:46 ` Zhang, Rui 2025-06-16 12:05 ` Rafael J. Wysocki 1 sibling, 1 reply; 5+ messages in thread From: Zhang, Rui @ 2025-06-16 0:46 UTC (permalink / raw) To: srinivas.pandruvada@linux.intel.com, lukasz.luba@arm.com, rafael@kernel.org, daniel.lezcano@linaro.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org On Fri, 2025-06-13 at 14:49 -0700, Srinivas Pandruvada wrote: > Firmware-based thermal temperature control loops may aggressively > throttle performance to prevent temperature overshoots relative to the > defined target temperature. This can negatively impact performance. > User > space may prefer to prioritize performance, even if it results in > temperature overshoots with in acceptable range. > > For example, user space might tolerate temperature overshoots when the > device is placed on a desk, as opposed to when it's on a lap. To > accommodate such scenarios, an optional attribute is provided to > specify > a tolerance level for temperature overshoots while maintaining > acceptable > performance. > > Attribute: > thermal_tolerance: yeah, this is much better to me. > This attribute ranges from 0 to 7, where 0 represents > the most aggressive control to avoid any temperature overshoots, and 7 > represents a more graceful approach, favoring performance even at the > expense of temperature overshoots. > Note: This level may not scale linearly. For example, a value of 3 does > not > necessarily imply a 50% improvement in performance compared to a value > of > 0. > > Signed-off-by: Srinivas Pandruvada > <srinivas.pandruvada@linux.intel.com> Reviewed-by: Zhang Rui <rui.zhang@intel.com> -rui > --- > v2: > - Changed commit description > - Change "gain" to "thermal_tolerance" analogous to latency_tolerance. > - Dropped "min_performance" attribute for next patch set > > Documentation/driver-api/thermal/intel_dptf.rst | 9 +++++++++ > .../intel/int340x_thermal/platform_temperature_control.c | 8 +++++++- > 2 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/Documentation/driver-api/thermal/intel_dptf.rst > b/Documentation/driver-api/thermal/intel_dptf.rst > index ec5769accae0..c51ac793dc06 100644 > --- a/Documentation/driver-api/thermal/intel_dptf.rst > +++ b/Documentation/driver-api/thermal/intel_dptf.rst > @@ -206,6 +206,15 @@ All these controls needs admin privilege to > update. > Update a new temperature target in milli degree celsius for > hardware to > use for the temperature control. > > +``thermal_tolerance`` (RW) > + This attribute ranges from 0 to 7, where 0 represents > + the most aggressive control to avoid any temperature > overshoots, and > + 7 represents a more graceful approach, favoring performance > even at > + the expense of temperature overshoots. > + Note: This level may not scale linearly. For example, a value > of 3 does > + not necessarily imply a 50% improvement in performance > compared to a > + value of 0. > + > Given that this is platform temperature control, it is expected that a > single user-level manager owns and manages the controls. If multiple > user-level software applications attempt to write different targets, > it > diff --git > a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > index 2d6504514893..7850e91a6e2c 100644 > --- > a/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > +++ > b/drivers/thermal/intel/int340x_thermal/platform_temperature_control.c > @@ -49,7 +49,7 @@ struct mmio_reg { > }; > > #define MAX_ATTR_GROUP_NAME_LEN 32 > -#define PTC_MAX_ATTRS 3 > +#define PTC_MAX_ATTRS 4 > > struct ptc_data { > u32 offset; > @@ -57,6 +57,7 @@ struct ptc_data { > struct attribute *ptc_attrs[PTC_MAX_ATTRS]; > struct device_attribute temperature_target_attr; > struct device_attribute enable_attr; > + struct device_attribute thermal_tolerance_attr; > char group_name[MAX_ATTR_GROUP_NAME_LEN]; > }; > > @@ -78,6 +79,7 @@ static u32 ptc_offsets[PTC_MAX_INSTANCES] = {0x5B20, > 0x5B28, 0x5B30}; > static const char * const ptc_strings[] = { > "temperature_target", > "enable", > + "thermal_tolerance", > NULL > }; > > @@ -177,6 +179,8 @@ PTC_SHOW(temperature_target); > PTC_STORE(temperature_target); > PTC_SHOW(enable); > PTC_STORE(enable); > +PTC_SHOW(thermal_tolerance); > +PTC_STORE(thermal_tolerance); > > #define ptc_init_attribute(_name)\ > do {\ > @@ -193,9 +197,11 @@ static int ptc_create_groups(struct pci_dev *pdev, > int instance, struct ptc_data > > ptc_init_attribute(temperature_target); > ptc_init_attribute(enable); > + ptc_init_attribute(thermal_tolerance); > > data->ptc_attrs[index++] = &data- > >temperature_target_attr.attr; > data->ptc_attrs[index++] = &data->enable_attr.attr; > + data->ptc_attrs[index++] = &data->thermal_tolerance_attr.attr; > data->ptc_attrs[index] = NULL; > > snprintf(data->group_name, MAX_ATTR_GROUP_NAME_LEN, ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC 2025-06-16 0:46 ` [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC Zhang, Rui @ 2025-06-16 12:05 ` Rafael J. Wysocki 0 siblings, 0 replies; 5+ messages in thread From: Rafael J. Wysocki @ 2025-06-16 12:05 UTC (permalink / raw) To: Zhang, Rui, srinivas.pandruvada@linux.intel.com Cc: lukasz.luba@arm.com, daniel.lezcano@linaro.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org On Mon, Jun 16, 2025 at 2:47 AM Zhang, Rui <rui.zhang@intel.com> wrote: > > On Fri, 2025-06-13 at 14:49 -0700, Srinivas Pandruvada wrote: > > Firmware-based thermal temperature control loops may aggressively > > throttle performance to prevent temperature overshoots relative to the > > defined target temperature. This can negatively impact performance. > > User > > space may prefer to prioritize performance, even if it results in > > temperature overshoots with in acceptable range. > > > > For example, user space might tolerate temperature overshoots when the > > device is placed on a desk, as opposed to when it's on a lap. To > > accommodate such scenarios, an optional attribute is provided to > > specify > > a tolerance level for temperature overshoots while maintaining > > acceptable > > performance. > > > > Attribute: > > thermal_tolerance: > > yeah, this is much better to me. > > > This attribute ranges from 0 to 7, where 0 represents > > the most aggressive control to avoid any temperature overshoots, and 7 > > represents a more graceful approach, favoring performance even at the > > expense of temperature overshoots. > > Note: This level may not scale linearly. For example, a value of 3 does > > not > > necessarily imply a 50% improvement in performance compared to a value > > of > > 0. > > > > Signed-off-by: Srinivas Pandruvada > > <srinivas.pandruvada@linux.intel.com> > > Reviewed-by: Zhang Rui <rui.zhang@intel.com> Applied along with the [2/2] as 6.17 material, thanks! ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-06-16 12:06 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-13 21:49 [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC Srinivas Pandruvada 2025-06-13 21:49 ` [PATCH v2 2/2] thermal: intel: int340x: Allow temperature override Srinivas Pandruvada 2025-06-16 1:03 ` Zhang, Rui 2025-06-16 0:46 ` [PATCH v2 1/2] thermal: intel: int340x: Add throttling control interface to PTC Zhang, Rui 2025-06-16 12:05 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox