[PATCH v1 09/10] ACPI: fan: Store ACPI device pointer in struct acpi_fan

From: Rafael J. Wysocki

Date: Fri Sep 11 2026 - 09:08:57 EST


From: "Rafael J. Wysocki" <rafael.j.wysocki@xxxxxxxxx>

In preparation for subsequent changes, instead of storing a fan ACPI
handle in struct acpi_fan, store a pointer to the corresponding struct
acpi_device in it.

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
---
drivers/acpi/fan.h | 2 +-
drivers/acpi/fan_core.c | 11 ++++++-----
drivers/acpi/fan_hwmon.c | 2 +-
3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/acpi/fan.h b/drivers/acpi/fan.h
index e20d6ad9df80..3faa247af514 100644
--- a/drivers/acpi/fan.h
+++ b/drivers/acpi/fan.h
@@ -52,7 +52,7 @@ struct acpi_fan_fst {
};

struct acpi_fan {
- acpi_handle handle;
+ struct acpi_device *adev;
bool acpi4;
bool has_fst;
struct acpi_fan_fif fif;
diff --git a/drivers/acpi/fan_core.c b/drivers/acpi/fan_core.c
index 29ca97503deb..8b20b8a55c13 100644
--- a/drivers/acpi/fan_core.c
+++ b/drivers/acpi/fan_core.c
@@ -340,17 +340,18 @@ static int acpi_fan_dsm_init(struct device *dev)
},
};
struct acpi_fan *fan = dev_get_drvdata(dev);
+ acpi_handle fan_handle = fan->adev->handle;
union acpi_object *obj;
int ret = 0;

- if (!acpi_check_dsm(fan->handle, &acpi_fan_microsoft_guid, 0,
+ if (!acpi_check_dsm(fan_handle, &acpi_fan_microsoft_guid, 0,
BIT(ACPI_FAN_DSM_GET_TRIP_POINT_GRANULARITY) |
BIT(ACPI_FAN_DSM_SET_TRIP_POINTS)))
return 0;

dev_info(dev, "Using Microsoft fan extensions\n");

- obj = acpi_evaluate_dsm_typed(fan->handle, &acpi_fan_microsoft_guid, 0,
+ obj = acpi_evaluate_dsm_typed(fan_handle, &acpi_fan_microsoft_guid, 0,
ACPI_FAN_DSM_GET_TRIP_POINT_GRANULARITY, &dummy,
ACPI_TYPE_INTEGER);
if (!obj)
@@ -392,8 +393,8 @@ static int acpi_fan_dsm_set_trip_points(struct device *dev, u64 upper, u64 lower
};
union acpi_object *obj;

- obj = acpi_evaluate_dsm(fan->handle, &acpi_fan_microsoft_guid, 0,
- ACPI_FAN_DSM_SET_TRIP_POINTS, &in);
+ obj = acpi_evaluate_dsm(fan->adev->handle, &acpi_fan_microsoft_guid,
+ 0, ACPI_FAN_DSM_SET_TRIP_POINTS, &in);
kfree(obj);

return 0;
@@ -503,7 +504,7 @@ static int acpi_fan_probe(struct platform_device *pdev)
return -ENOMEM;
}

- fan->handle = device->handle;
+ fan->adev = device;
device->driver_data = fan;
platform_set_drvdata(pdev, fan);

diff --git a/drivers/acpi/fan_hwmon.c b/drivers/acpi/fan_hwmon.c
index d3374f8f524b..c5d8419f41c5 100644
--- a/drivers/acpi/fan_hwmon.c
+++ b/drivers/acpi/fan_hwmon.c
@@ -94,7 +94,7 @@ static int acpi_fan_hwmon_read(struct device *dev, enum hwmon_sensor_types type,
struct acpi_fan_fst fst;
int ret;

- ret = acpi_fan_get_fst(fan->handle, &fst);
+ ret = acpi_fan_get_fst(fan->adev->handle, &fst);
if (ret < 0)
return ret;

--
2.51.0