[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJZ5v0iQToOkedruYqsowSm8=fxpnyJf86JJHB36E8+aCSZ5Hw@mail.gmail.com>
Date: Wed, 22 Oct 2025 20:46:05 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Slawomir Rosek <srosek@...gle.com>
Cc: "Rafael J . Wysocki" <rafael@...nel.org>, Alex Hung <alexhung@...il.com>,
Hans de Goede <hansg@...nel.org>, Ilpo Jarvinen <ilpo.jarvinen@...ux.intel.com>,
AceLan Kao <acelan.kao@...onical.com>, Daniel Lezcano <daniel.lezcano@...aro.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Zhang Rui <rui.zhang@...el.com>,
Srinivas Pandruvada <srinivas.pandruvada@...ux.intel.com>, Tomasz Nowicki <tnowicki@...gle.com>,
Stanislaw Kardach <skardach@...gle.com>, Michal Krawczyk <mikrawczyk@...gle.com>,
linux-kernel@...r.kernel.org, linux-acpi@...r.kernel.org,
platform-driver-x86@...r.kernel.org, linux-pm@...r.kernel.org
Subject: Re: [PATCH v3 2/6] ACPI: DPTF: Move INT340X device IDs to header
On Thu, Oct 2, 2025 at 1:34 PM Slawomir Rosek <srosek@...gle.com> wrote:
>
> The ACPI INT340X device IDs are shared between the DPTF core
> and thermal drivers, thus they are moved to the common header.
>
> Signed-off-by: Slawomir Rosek <srosek@...gle.com>
I've actually started to wonder if int340x_thermal_handler is needed at all.
It just creates a platform device if the given ACPI device ID is in
its list, but acpi_default_enumeration() would do that too with the
caveat that it would also be done for CONFIG_INT340X_THERMAL unset.
That should not be a problem though because if CONFIG_INT340X_THERMAL,
there are no drivers that will bind to those platform devices, so the
net outcome should be the same.
Thus I'm wondering if the way to go might be to drop
int340x_thermal_handler and simply keep the device IDs in the drivers
that use them for device binding.
> ---
> drivers/acpi/dptf/dptf_power.c | 18 +----
> drivers/acpi/dptf/int340x_thermal.c | 51 +++-----------
> drivers/acpi/fan.h | 10 +--
> drivers/acpi/int340x_thermal.h | 68 +++++++++++++++++++
> .../intel/int340x_thermal/int3400_thermal.c | 10 +--
> .../intel/int340x_thermal/int3401_thermal.c | 3 +-
> .../intel/int340x_thermal/int3402_thermal.c | 3 +-
> .../intel/int340x_thermal/int3403_thermal.c | 10 +--
> .../intel/int340x_thermal/int3406_thermal.c | 3 +-
> 9 files changed, 90 insertions(+), 86 deletions(-)
> create mode 100644 drivers/acpi/int340x_thermal.h
>
> diff --git a/drivers/acpi/dptf/dptf_power.c b/drivers/acpi/dptf/dptf_power.c
> index 776914f31b9e..d7c59f016083 100644
> --- a/drivers/acpi/dptf/dptf_power.c
> +++ b/drivers/acpi/dptf/dptf_power.c
> @@ -8,6 +8,7 @@
> #include <linux/module.h>
> #include <linux/acpi.h>
> #include <linux/platform_device.h>
> +#include "../int340x_thermal.h"
>
> /*
> * Presentation of attributes which are defined for INT3407 and INT3532.
> @@ -224,22 +225,7 @@ static void dptf_power_remove(struct platform_device *pdev)
> }
>
> static const struct acpi_device_id int3407_device_ids[] = {
> - {"INT3407", 0},
> - {"INT3532", 0},
> - {"INTC1047", 0},
> - {"INTC1050", 0},
> - {"INTC1060", 0},
> - {"INTC1061", 0},
> - {"INTC1065", 0},
> - {"INTC1066", 0},
> - {"INTC106C", 0},
> - {"INTC106D", 0},
> - {"INTC10A4", 0},
> - {"INTC10A5", 0},
> - {"INTC10D8", 0},
> - {"INTC10D9", 0},
> - {"INTC1100", 0},
> - {"INTC1101", 0},
> + ACPI_INT3407_DEVICE_IDS,
> {"", 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 947fe50c2ef6..43afb6141b98 100644
> --- a/drivers/acpi/dptf/int340x_thermal.c
> +++ b/drivers/acpi/dptf/int340x_thermal.c
> @@ -9,63 +9,28 @@
> #include <linux/acpi.h>
> #include <linux/module.h>
>
> +#include "../int340x_thermal.h"
> #include "../internal.h"
>
> static const struct acpi_device_id int340x_thermal_device_ids[] = {
> - {"INT3400"},
> - {"INT3401"},
> - {"INT3402"},
> - {"INT3403"},
> - {"INT3404"},
> - {"INT3406"},
> - {"INT3407"},
> + ACPI_INT3400_DEVICE_IDS,
> + ACPI_INT3401_DEVICE_IDS,
> + ACPI_INT3402_DEVICE_IDS,
> + ACPI_INT3403_DEVICE_IDS,
> + ACPI_INT3404_DEVICE_IDS,
> + ACPI_INT3406_DEVICE_IDS,
> + ACPI_INT3407_DEVICE_IDS,
> {"INT3408"},
> {"INT3409"},
> {"INT340A"},
> {"INT340B"},
> - {"INT3532"},
> - {"INTC1040"},
> - {"INTC1041"},
> - {"INTC1042"},
> - {"INTC1043"},
> - {"INTC1044"},
> {"INTC1045"},
> - {"INTC1046"},
> - {"INTC1047"},
> - {"INTC1048"},
> {"INTC1049"},
> - {"INTC1050"},
> - {"INTC1060"},
> - {"INTC1061"},
> - {"INTC1062"},
> - {"INTC1063"},
> {"INTC1064"},
> - {"INTC1065"},
> - {"INTC1066"},
> - {"INTC1068"},
> - {"INTC1069"},
> - {"INTC106A"},
> {"INTC106B"},
> - {"INTC106C"},
> - {"INTC106D"},
> - {"INTC10A0"},
> - {"INTC10A1"},
> - {"INTC10A2"},
> {"INTC10A3"},
> - {"INTC10A4"},
> - {"INTC10A5"},
> - {"INTC10D4"},
> - {"INTC10D5"},
> - {"INTC10D6"},
> {"INTC10D7"},
> - {"INTC10D8"},
> - {"INTC10D9"},
> - {"INTC10FC"},
> - {"INTC10FD"},
> - {"INTC10FE"},
> {"INTC10FF"},
> - {"INTC1100"},
> - {"INTC1101"},
> {"INTC1102"},
> {""},
> };
> diff --git a/drivers/acpi/fan.h b/drivers/acpi/fan.h
> index 8a28a72a7c6a..4015ac56c009 100644
> --- a/drivers/acpi/fan.h
> +++ b/drivers/acpi/fan.h
> @@ -11,16 +11,10 @@
> #define _ACPI_FAN_H_
>
> #include <linux/kconfig.h>
> +#include "int340x_thermal.h"
>
> #define ACPI_FAN_DEVICE_IDS \
> - {"INT3404", }, /* Fan */ \
> - {"INTC1044", }, /* Fan for Tiger Lake generation */ \
> - {"INTC1048", }, /* Fan for Alder Lake generation */ \
> - {"INTC1063", }, /* Fan for Meteor Lake generation */ \
> - {"INTC106A", }, /* Fan for Lunar Lake generation */ \
> - {"INTC10A2", }, /* Fan for Raptor Lake generation */ \
> - {"INTC10D6", }, /* Fan for Panther Lake generation */ \
> - {"INTC10FE", }, /* Fan for Wildcat Lake generation */ \
> + ACPI_INT3404_DEVICE_IDS, \
> {"PNP0C0B", } /* Generic ACPI fan */
>
> #define ACPI_FPS_NAME_LEN 20
> diff --git a/drivers/acpi/int340x_thermal.h b/drivers/acpi/int340x_thermal.h
> new file mode 100644
> index 000000000000..854e4d3bb739
> --- /dev/null
> +++ b/drivers/acpi/int340x_thermal.h
> @@ -0,0 +1,68 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +/*
> + * The ACPI INT340X device IDs are shared between the DPTF core
> + * and thermal drivers.
> + */
> +
> +#ifndef _ACPI_INT340X_H_
> +#define _ACPI_INT340X_H_
> +
> +#define ACPI_INT3400_DEVICE_IDS \
> + {"INT3400"}, \
> + {"INTC1040"}, \
> + {"INTC1041"}, \
> + {"INTC1042"}, \
> + {"INTC1068"}, \
> + {"INTC10A0"}, \
> + {"INTC10D4"}, \
> + {"INTC10FC"}
> +
> +#define ACPI_INT3401_DEVICE_IDS \
> + {"INT3401"}
> +
> +#define ACPI_INT3402_DEVICE_IDS \
> + {"INT3402"}
> +
> +#define ACPI_INT3403_DEVICE_IDS \
> + {"INT3403"}, \
> + {"INTC1043"}, \
> + {"INTC1046"}, \
> + {"INTC1062"}, \
> + {"INTC1069"}, \
> + {"INTC10A1"}, \
> + {"INTC10D5"}, \
> + {"INTC10FD"}
> +
> +#define ACPI_INT3404_DEVICE_IDS \
> + {"INT3404", }, /* Fan */ \
> + {"INTC1044", }, /* Fan for Tiger Lake generation */ \
> + {"INTC1048", }, /* Fan for Alder Lake generation */ \
> + {"INTC1063", }, /* Fan for Meteor Lake generation */ \
> + {"INTC106A", }, /* Fan for Lunar Lake generation */ \
> + {"INTC10A2", }, /* Fan for Raptor Lake generation */ \
> + {"INTC10D6", }, /* Fan for Panther Lake generation */ \
> + {"INTC10FE", } /* Fan for Wildcat Lake generation */
> +
> +#define ACPI_INT3406_DEVICE_IDS \
> + {"INT3406"}
> +
> +#define ACPI_INT3407_DEVICE_IDS \
> + {"INT3407"}, \
> + {"INT3532"}, \
> + {"INTC1047"}, \
> + {"INTC1050"}, \
> + {"INTC1060"}, \
> + {"INTC1061"}, \
> + {"INTC1065"}, \
> + {"INTC1066"}, \
> + {"INTC106C"}, \
> + {"INTC106D"}, \
> + {"INTC10A4"}, \
> + {"INTC10A5"}, \
> + {"INTC10D8"}, \
> + {"INTC10D9"}, \
> + {"INTC1100"}, \
> + {"INTC1101"}
> +
> +#endif
> diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> index 908cc1bf57f1..6311125c3ebd 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> @@ -11,6 +11,7 @@
> #include <linux/acpi.h>
> #include <linux/thermal.h>
> #include "acpi_thermal_rel.h"
> +#include "../../../../drivers/acpi/int340x_thermal.h"
>
> #define INT3400_THERMAL_TABLE_CHANGED 0x83
> #define INT3400_ODVP_CHANGED 0x88
> @@ -683,14 +684,7 @@ static void int3400_thermal_remove(struct platform_device *pdev)
> }
>
> static const struct acpi_device_id int3400_thermal_match[] = {
> - {"INT3400", 0},
> - {"INTC1040", 0},
> - {"INTC1041", 0},
> - {"INTC1042", 0},
> - {"INTC1068", 0},
> - {"INTC10A0", 0},
> - {"INTC10D4", 0},
> - {"INTC10FC", 0},
> + ACPI_INT3400_DEVICE_IDS,
> {}
> };
>
> diff --git a/drivers/thermal/intel/int340x_thermal/int3401_thermal.c b/drivers/thermal/intel/int340x_thermal/int3401_thermal.c
> index 96d6277a5a8c..e0603f218d2e 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3401_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3401_thermal.c
> @@ -11,9 +11,10 @@
>
> #include "int340x_thermal_zone.h"
> #include "processor_thermal_device.h"
> +#include "../../../../drivers/acpi/int340x_thermal.h"
>
> static const struct acpi_device_id int3401_device_ids[] = {
> - {"INT3401", 0},
> + ACPI_INT3401_DEVICE_IDS,
> {"", 0},
> };
> MODULE_DEVICE_TABLE(acpi, int3401_device_ids);
> diff --git a/drivers/thermal/intel/int340x_thermal/int3402_thermal.c b/drivers/thermal/intel/int340x_thermal/int3402_thermal.c
> index 57b90005888a..213d4535f2c1 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3402_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3402_thermal.c
> @@ -11,6 +11,7 @@
> #include <linux/acpi.h>
> #include <linux/thermal.h>
> #include "int340x_thermal_zone.h"
> +#include "../../../../drivers/acpi/int340x_thermal.h"
>
> #define INT3402_PERF_CHANGED_EVENT 0x80
> #define INT3402_THERMAL_EVENT 0x90
> @@ -84,7 +85,7 @@ static void int3402_thermal_remove(struct platform_device *pdev)
> }
>
> static const struct acpi_device_id int3402_thermal_match[] = {
> - {"INT3402", 0},
> + ACPI_INT3402_DEVICE_IDS,
> {}
> };
>
> diff --git a/drivers/thermal/intel/int340x_thermal/int3403_thermal.c b/drivers/thermal/intel/int340x_thermal/int3403_thermal.c
> index ba63796761eb..d246c69d4872 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3403_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3403_thermal.c
> @@ -12,6 +12,7 @@
> #include <linux/thermal.h>
> #include <linux/platform_device.h>
> #include "int340x_thermal_zone.h"
> +#include "../../../../drivers/acpi/int340x_thermal.h"
>
> #define INT3403_TYPE_SENSOR 0x03
> #define INT3403_TYPE_CHARGER 0x0B
> @@ -269,14 +270,7 @@ static void int3403_remove(struct platform_device *pdev)
> }
>
> static const struct acpi_device_id int3403_device_ids[] = {
> - {"INT3403", 0},
> - {"INTC1043", 0},
> - {"INTC1046", 0},
> - {"INTC1062", 0},
> - {"INTC1069", 0},
> - {"INTC10A1", 0},
> - {"INTC10D5", 0},
> - {"INTC10FD", 0},
> + ACPI_INT3403_DEVICE_IDS,
> {"", 0},
> };
> MODULE_DEVICE_TABLE(acpi, int3403_device_ids);
> diff --git a/drivers/thermal/intel/int340x_thermal/int3406_thermal.c b/drivers/thermal/intel/int340x_thermal/int3406_thermal.c
> index e21fcbccf4ba..d05ca8bc4061 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3406_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3406_thermal.c
> @@ -12,6 +12,7 @@
> #include <linux/backlight.h>
> #include <linux/thermal.h>
> #include <acpi/video.h>
> +#include "../../../../drivers/acpi/int340x_thermal.h"
>
> #define INT3406_BRIGHTNESS_LIMITS_CHANGED 0x80
>
> @@ -187,7 +188,7 @@ static void int3406_thermal_remove(struct platform_device *pdev)
> }
>
> static const struct acpi_device_id int3406_thermal_match[] = {
> - {"INT3406", 0},
> + ACPI_INT3406_DEVICE_IDS,
> {}
> };
>
> --
> 2.51.0.618.g983fd99d29-goog
>
>
Powered by blists - more mailing lists