diff options
| author | Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> | 2024-12-30 20:21:09 +0200 |
|---|---|---|
| committer | Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> | 2024-12-30 20:21:09 +0200 |
| commit | c416a3fed78b9b1d93755d2c5d8104769559c4cb (patch) | |
| tree | 9c728e93ad5676686399f2ea4c8e163659d758e9 /drivers/acpi | |
| parent | 03f8e0e05510dad6377cd5ef029594d30e6c096d (diff) | |
| parent | b651ea8a44aab69f71c5ebeec7e472b03f1b2ca2 (diff) | |
| download | ath-c416a3fed78b9b1d93755d2c5d8104769559c4cb.tar.gz | |
Merge branch 'platform-drivers-x86-platform-profile' into for-next
Diffstat (limited to 'drivers/acpi')
| -rw-r--r-- | drivers/acpi/platform_profile.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c index 75a1415190ace..4c4200a0b1a68 100644 --- a/drivers/acpi/platform_profile.c +++ b/drivers/acpi/platform_profile.c @@ -519,6 +519,35 @@ int platform_profile_remove(struct platform_profile_handler *pprof) } EXPORT_SYMBOL_GPL(platform_profile_remove); +static void devm_platform_profile_release(struct device *dev, void *res) +{ + struct platform_profile_handler **pprof = res; + + platform_profile_remove(*pprof); +} + +int devm_platform_profile_register(struct platform_profile_handler *pprof) +{ + struct platform_profile_handler **dr; + int ret; + + dr = devres_alloc(devm_platform_profile_release, sizeof(*dr), GFP_KERNEL); + if (!dr) + return -ENOMEM; + + ret = platform_profile_register(pprof); + if (ret) { + devres_free(dr); + return ret; + } + + *dr = pprof; + devres_add(pprof->dev, dr); + + return 0; +} +EXPORT_SYMBOL_GPL(devm_platform_profile_register); + static int __init platform_profile_init(void) { int err; |
