diff options
Diffstat (limited to '')
-rw-r--r-- | drivers/acpi/dptf/dptf_pch_fivr.c | 1 | ||||
-rw-r--r-- | drivers/acpi/dptf/dptf_power.c | 2 | ||||
-rw-r--r-- | drivers/acpi/dptf/int340x_thermal.c | 6 | ||||
-rw-r--r-- | drivers/acpi/fan.h | 1 | ||||
-rw-r--r-- | drivers/powercap/intel_rapl_common.c | 1 | ||||
-rw-r--r-- | drivers/thermal/gov_bang_bang.c | 57 | ||||
-rw-r--r-- | drivers/thermal/gov_user_space.c | 12 | ||||
-rw-r--r-- | drivers/thermal/intel/Kconfig | 4 | ||||
-rw-r--r-- | drivers/thermal/intel/int340x_thermal/Kconfig | 4 | ||||
-rw-r--r-- | drivers/thermal/intel/int340x_thermal/int3400_thermal.c | 2 | ||||
-rw-r--r-- | drivers/thermal/intel/int340x_thermal/int3403_thermal.c | 1 | ||||
-rw-r--r-- | drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c | 1 | ||||
-rw-r--r-- | drivers/thermal/intel/int340x_thermal/processor_thermal_device.h | 1 | ||||
-rw-r--r-- | drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c | 4 | ||||
-rw-r--r-- | drivers/thermal/thermal_core.c | 10 | ||||
-rw-r--r-- | drivers/thermal/thermal_core.h | 2 |
16 files changed, 61 insertions, 48 deletions
diff --git a/drivers/acpi/dptf/dptf_pch_fivr.c b/drivers/acpi/dptf/dptf_pch_fivr.c index 624fce67ce43..952216c67d58 100644 --- a/drivers/acpi/dptf/dptf_pch_fivr.c +++ b/drivers/acpi/dptf/dptf_pch_fivr.c @@ -152,6 +152,7 @@ static const struct acpi_device_id pch_fivr_device_ids[] = { {"INTC1064", 0}, {"INTC106B", 0}, {"INTC10A3", 0}, + {"INTC10D7", 0}, {"", 0}, }; MODULE_DEVICE_TABLE(acpi, pch_fivr_device_ids); diff --git a/drivers/acpi/dptf/dptf_power.c b/drivers/acpi/dptf/dptf_power.c index 3d3edd81b172..e8caf4106ff9 100644 --- a/drivers/acpi/dptf/dptf_power.c +++ b/drivers/acpi/dptf/dptf_power.c @@ -236,6 +236,8 @@ static const struct acpi_device_id int3407_device_ids[] = { {"INTC106D", 0}, {"INTC10A4", 0}, {"INTC10A5", 0}, + {"INTC10D8", 0}, + {"INTC10D9", 0}, {"", 0}, }; MODULE_DEVICE_TABLE(acpi, int3407_device_ids); diff --git a/drivers/acpi/dptf/int340x_thermal.c b/drivers/acpi/dptf/int340x_thermal.c index 014ada759954..aef7aca2161d 100644 --- a/drivers/acpi/dptf/int340x_thermal.c +++ b/drivers/acpi/dptf/int340x_thermal.c @@ -55,6 +55,12 @@ static const struct acpi_device_id int340x_thermal_device_ids[] = { {"INTC10A3"}, {"INTC10A4"}, {"INTC10A5"}, + {"INTC10D4"}, + {"INTC10D5"}, + {"INTC10D6"}, + {"INTC10D7"}, + {"INTC10D8"}, + {"INTC10D9"}, {""}, }; diff --git a/drivers/acpi/fan.h b/drivers/acpi/fan.h index db25a3898af7..488b51e2cb31 100644 --- a/drivers/acpi/fan.h +++ b/drivers/acpi/fan.h @@ -19,6 +19,7 @@ {"INTC1063", }, /* Fan for Meteor Lake generation */ \ {"INTC106A", }, /* Fan for Lunar Lake generation */ \ {"INTC10A2", }, /* Fan for Raptor Lake generation */ \ + {"INTC10D6", }, /* Fan for Panther Lake generation */ \ {"PNP0C0B", } /* Generic ACPI fan */ #define ACPI_FPS_NAME_LEN 20 diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_rapl_common.c index 5e793b80fd6b..77d75e1f14a9 100644 --- a/drivers/powercap/intel_rapl_common.c +++ b/drivers/powercap/intel_rapl_common.c @@ -1265,6 +1265,7 @@ static const struct x86_cpu_id rapl_ids[] __initconst = { X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X, &rapl_defaults_spr_server), X86_MATCH_VFM(INTEL_EMERALDRAPIDS_X, &rapl_defaults_spr_server), X86_MATCH_VFM(INTEL_LUNARLAKE_M, &rapl_defaults_core), + X86_MATCH_VFM(INTEL_PANTHERLAKE_L, &rapl_defaults_core), X86_MATCH_VFM(INTEL_ARROWLAKE_H, &rapl_defaults_core), X86_MATCH_VFM(INTEL_ARROWLAKE, &rapl_defaults_core), X86_MATCH_VFM(INTEL_ARROWLAKE_U, &rapl_defaults_core), diff --git a/drivers/thermal/gov_bang_bang.c b/drivers/thermal/gov_bang_bang.c index 97f3d819852b..51951967d67f 100644 --- a/drivers/thermal/gov_bang_bang.c +++ b/drivers/thermal/gov_bang_bang.c @@ -7,6 +7,27 @@ * Based on step_wise.c with following Copyrights: * Copyright (C) 2012 Intel Corp * Copyright (C) 2012 Durgadoss R <durgadoss.r@intel.com> + * + * Regulation Logic: a two point regulation, deliver cooling state depending + * on the previous state shown in this diagram: + * + * Fan: OFF ON + * + * | + * | + * trip_temp: +---->+ + * | | ^ + * | | | + * | | Temperature + * (trip_temp - hyst): +<----+ + * | + * | + * | + * + * * If the fan is not running and temperature exceeds trip_temp, the fan + * gets turned on. + * * In case the fan is running, temperature must fall below + * (trip_temp - hyst) so that the fan gets turned off again. */ #include <linux/thermal.h> @@ -34,36 +55,14 @@ static void bang_bang_set_instance_target(struct thermal_instance *instance, } /** - * bang_bang_control - controls devices associated with the given zone + * bang_bang_trip_crossed - controls devices associated with the given zone * @tz: thermal_zone_device * @trip: the trip point - * @crossed_up: whether or not the trip has been crossed on the way up - * - * Regulation Logic: a two point regulation, deliver cooling state depending - * on the previous state shown in this diagram: - * - * Fan: OFF ON - * - * | - * | - * trip_temp: +---->+ - * | | ^ - * | | | - * | | Temperature - * (trip_temp - hyst): +<----+ - * | - * | - * | - * - * * If the fan is not running and temperature exceeds trip_temp, the fan - * gets turned on. - * * In case the fan is running, temperature must fall below - * (trip_temp - hyst) so that the fan gets turned off again. - * + * @upward: whether or not the trip has been crossed on the way up */ -static void bang_bang_control(struct thermal_zone_device *tz, - const struct thermal_trip *trip, - bool crossed_up) +static void bang_bang_trip_crossed(struct thermal_zone_device *tz, + const struct thermal_trip *trip, + bool upward) { const struct thermal_trip_desc *td = trip_to_trip_desc(trip); struct thermal_instance *instance; @@ -75,7 +74,7 @@ static void bang_bang_control(struct thermal_zone_device *tz, tz->temperature, trip->hysteresis); list_for_each_entry(instance, &td->thermal_instances, trip_node) - bang_bang_set_instance_target(instance, crossed_up); + bang_bang_set_instance_target(instance, upward); } static void bang_bang_manage(struct thermal_zone_device *tz) @@ -123,7 +122,7 @@ static void bang_bang_update_tz(struct thermal_zone_device *tz, static struct thermal_governor thermal_gov_bang_bang = { .name = "bang_bang", - .trip_crossed = bang_bang_control, + .trip_crossed = bang_bang_trip_crossed, .manage = bang_bang_manage, .update_tz = bang_bang_update_tz, }; diff --git a/drivers/thermal/gov_user_space.c b/drivers/thermal/gov_user_space.c index 75137b419eb2..ef95cf7d65ef 100644 --- a/drivers/thermal/gov_user_space.c +++ b/drivers/thermal/gov_user_space.c @@ -23,16 +23,16 @@ static int user_space_bind(struct thermal_zone_device *tz) } /** - * notify_user_space - Notifies user space about thermal events + * user_space_trip_crossed - Notify user space about trip crossing events * @tz: thermal_zone_device * @trip: trip point - * @crossed_up: whether or not the trip has been crossed on the way up + * @upward: whether or not the trip has been crossed on the way up * * This function notifies the user space through UEvents. */ -static void notify_user_space(struct thermal_zone_device *tz, - const struct thermal_trip *trip, - bool crossed_up) +static void user_space_trip_crossed(struct thermal_zone_device *tz, + const struct thermal_trip *trip, + bool upward) { char *thermal_prop[5]; int i; @@ -52,7 +52,7 @@ static void notify_user_space(struct thermal_zone_device *tz, static struct thermal_governor thermal_gov_user_space = { .name = "user_space", - .trip_crossed = notify_user_space, + .trip_crossed = user_space_trip_crossed, .bind_to_tz = user_space_bind, }; THERMAL_GOVERNOR_DECLARE(thermal_gov_user_space); diff --git a/drivers/thermal/intel/Kconfig b/drivers/thermal/intel/Kconfig index a31f2f32996a..e0268fac7093 100644 --- a/drivers/thermal/intel/Kconfig +++ b/drivers/thermal/intel/Kconfig @@ -21,8 +21,8 @@ config INTEL_TCC config X86_PKG_TEMP_THERMAL tristate "X86 package temperature thermal driver" - depends on X86_THERMAL_VECTOR - select THERMAL_GOV_USER_SPACE + depends on X86_THERMAL_VECTOR && NET + select THERMAL_NETLINK select INTEL_TCC default m help diff --git a/drivers/thermal/intel/int340x_thermal/Kconfig b/drivers/thermal/intel/int340x_thermal/Kconfig index e76b13e44d03..4c699f0896b5 100644 --- a/drivers/thermal/intel/int340x_thermal/Kconfig +++ b/drivers/thermal/intel/int340x_thermal/Kconfig @@ -5,8 +5,8 @@ config INT340X_THERMAL tristate "ACPI INT340X thermal drivers" - depends on X86_64 && ACPI && PCI - select THERMAL_GOV_USER_SPACE + depends on X86_64 && ACPI && PCI && NET + select THERMAL_NETLINK select ACPI_THERMAL_REL select ACPI_FAN select ACPI_THERMAL_LIB diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c index 8660ef2175be..0e07693ecf59 100644 --- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c +++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c @@ -521,7 +521,6 @@ static struct thermal_zone_device_ops int3400_thermal_ops = { }; static struct thermal_zone_params int3400_thermal_params = { - .governor_name = "user_space", .no_hwmon = true, }; @@ -690,6 +689,7 @@ static const struct acpi_device_id int3400_thermal_match[] = { {"INTC1042", 0}, {"INTC1068", 0}, {"INTC10A0", 0}, + {"INTC10D4", 0}, {} }; diff --git a/drivers/thermal/intel/int340x_thermal/int3403_thermal.c b/drivers/thermal/intel/int340x_thermal/int3403_thermal.c index 04aa0afb3b1d..5a925a8df7b3 100644 --- a/drivers/thermal/intel/int340x_thermal/int3403_thermal.c +++ b/drivers/thermal/intel/int340x_thermal/int3403_thermal.c @@ -275,6 +275,7 @@ static const struct acpi_device_id int3403_device_ids[] = { {"INTC1062", 0}, {"INTC1069", 0}, {"INTC10A1", 0}, + {"INTC10D5", 0}, {"", 0}, }; MODULE_DEVICE_TABLE(acpi, int3403_device_ids); diff --git a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c index 31ed338eb83c..8dca6a6aceca 100644 --- a/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c +++ b/drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c @@ -105,7 +105,6 @@ static int int340x_thermal_read_trips(struct acpi_device *zone_adev, } static struct thermal_zone_params int340x_thermal_params = { - .governor_name = "user_space", .no_hwmon = true, }; diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h index d5eca6db2c00..ba2d89d3024c 100644 --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.h @@ -30,6 +30,7 @@ #define PCI_DEVICE_ID_INTEL_RPL_THERMAL 0xA71D #define PCI_DEVICE_ID_INTEL_SKL_THERMAL 0x1903 #define PCI_DEVICE_ID_INTEL_TGL_THERMAL 0x9A03 +#define PCI_DEVICE_ID_INTEL_PTL_THERMAL 0xB01D struct power_config { u32 index; 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 145d471546d5..a55aaa8cef42 100644 --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device_pci.c @@ -272,7 +272,6 @@ static const struct thermal_zone_device_ops tzone_ops = { }; static struct thermal_zone_params tzone_params = { - .governor_name = "user_space", .no_hwmon = true, }; @@ -495,6 +494,9 @@ static const struct pci_device_id proc_thermal_pci_ids[] = { PROC_THERMAL_FEATURE_DVFS | PROC_THERMAL_FEATURE_DLVR | PROC_THERMAL_FEATURE_WT_HINT) }, { PCI_DEVICE_DATA(INTEL, RPL_THERMAL, PROC_THERMAL_FEATURE_RAPL | PROC_THERMAL_FEATURE_FIVR | PROC_THERMAL_FEATURE_DVFS | PROC_THERMAL_FEATURE_WT_REQ) }, + { PCI_DEVICE_DATA(INTEL, PTL_THERMAL, PROC_THERMAL_FEATURE_RAPL | + PROC_THERMAL_FEATURE_DLVR | PROC_THERMAL_FEATURE_MSI_SUPPORT | + PROC_THERMAL_FEATURE_WT_HINT | PROC_THERMAL_FEATURE_POWER_FLOOR) }, { }, }; diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 19a3894ad752..2328ac0d8561 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -453,23 +453,23 @@ static void move_to_trips_invalid(struct thermal_zone_device *tz, static void thermal_governor_trip_crossed(struct thermal_governor *governor, struct thermal_zone_device *tz, const struct thermal_trip *trip, - bool crossed_up) + bool upward) { if (trip->type == THERMAL_TRIP_HOT || trip->type == THERMAL_TRIP_CRITICAL) return; if (governor->trip_crossed) - governor->trip_crossed(tz, trip, crossed_up); + governor->trip_crossed(tz, trip, upward); } static void thermal_trip_crossed(struct thermal_zone_device *tz, struct thermal_trip_desc *td, struct thermal_governor *governor, - bool crossed_up) + bool upward) { const struct thermal_trip *trip = &td->trip; - if (crossed_up) { + if (upward) { if (trip->type == THERMAL_TRIP_PASSIVE) tz->passive++; else if (trip->type == THERMAL_TRIP_CRITICAL || @@ -486,7 +486,7 @@ static void thermal_trip_crossed(struct thermal_zone_device *tz, thermal_notify_tz_trip_down(tz, trip); thermal_debug_tz_trip_down(tz, trip); } - thermal_governor_trip_crossed(governor, tz, trip, crossed_up); + thermal_governor_trip_crossed(governor, tz, trip, upward); } void thermal_zone_set_trip_hyst(struct thermal_zone_device *tz, diff --git a/drivers/thermal/thermal_core.h b/drivers/thermal/thermal_core.h index be271e7c8f41..09866f0ce765 100644 --- a/drivers/thermal/thermal_core.h +++ b/drivers/thermal/thermal_core.h @@ -56,7 +56,7 @@ struct thermal_governor { void (*unbind_from_tz)(struct thermal_zone_device *tz); void (*trip_crossed)(struct thermal_zone_device *tz, const struct thermal_trip *trip, - bool crossed_up); + bool upward); void (*manage)(struct thermal_zone_device *tz); void (*update_tz)(struct thermal_zone_device *tz, enum thermal_notify_event reason); |