mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 20:14:06 +02:00
ACPI: platform_profile: Add platform handler argument to platform_profile_remove()
To allow registering and unregistering multiple platform handlers calls to platform_profile_remove() will need to know which handler is to be removed. Add an argument for this. Tested-by: Mark Pearson <mpearson-lenovo@squebb.ca> Tested-by: Matthew Schwartz <matthew.schwartz@linux.dev> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca> Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Reviewed-by: Armin Wolf <W_Armin@gmx.de> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Link: https://lore.kernel.org/r/20241206031918.1537-5-mario.limonciello@amd.com Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
This commit is contained in:
parent
6f5e63ddc3
commit
9b3bb37b44
|
|
@ -205,7 +205,7 @@ int platform_profile_register(struct platform_profile_handler *pprof)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(platform_profile_register);
|
||||
|
||||
int platform_profile_remove(void)
|
||||
int platform_profile_remove(struct platform_profile_handler *pprof)
|
||||
{
|
||||
sysfs_remove_group(acpi_kobj, &platform_profile_group);
|
||||
|
||||
|
|
|
|||
|
|
@ -210,6 +210,7 @@ static int surface_platform_profile_probe(struct ssam_device *sdev)
|
|||
return -ENOMEM;
|
||||
|
||||
tpd->sdev = sdev;
|
||||
ssam_device_set_drvdata(sdev, tpd);
|
||||
|
||||
tpd->handler.name = "Surface Platform Profile";
|
||||
tpd->handler.dev = &sdev->dev;
|
||||
|
|
@ -228,7 +229,10 @@ static int surface_platform_profile_probe(struct ssam_device *sdev)
|
|||
|
||||
static void surface_platform_profile_remove(struct ssam_device *sdev)
|
||||
{
|
||||
platform_profile_remove();
|
||||
struct ssam_platform_profile_device *tpd;
|
||||
|
||||
tpd = ssam_device_get_drvdata(sdev);
|
||||
platform_profile_remove(&tpd->handler);
|
||||
}
|
||||
|
||||
static const struct ssam_device_id ssam_platform_profile_match[] = {
|
||||
|
|
|
|||
|
|
@ -2547,7 +2547,7 @@ static int acer_platform_probe(struct platform_device *device)
|
|||
|
||||
error_hwmon:
|
||||
if (platform_profile_support)
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&platform_profile_handler);
|
||||
error_platform_profile:
|
||||
acer_rfkill_exit();
|
||||
error_rfkill:
|
||||
|
|
@ -2570,7 +2570,7 @@ static void acer_platform_remove(struct platform_device *device)
|
|||
acer_rfkill_exit();
|
||||
|
||||
if (platform_profile_support)
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&platform_profile_handler);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
|
|
|
|||
|
|
@ -426,5 +426,5 @@ int amd_pmf_init_sps(struct amd_pmf_dev *dev)
|
|||
|
||||
void amd_pmf_deinit_sps(struct amd_pmf_dev *dev)
|
||||
{
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&dev->pprof);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4852,7 +4852,7 @@ static int asus_wmi_add(struct platform_device *pdev)
|
|||
fail_custom_fan_curve:
|
||||
fail_platform_profile_setup:
|
||||
if (asus->platform_profile_support)
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&asus->platform_profile_handler);
|
||||
fail_fan_boost_mode:
|
||||
fail_platform:
|
||||
kfree(asus);
|
||||
|
|
@ -4879,7 +4879,7 @@ static void asus_wmi_remove(struct platform_device *device)
|
|||
asus_wmi_battery_exit(asus);
|
||||
|
||||
if (asus->platform_profile_support)
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&asus->platform_profile_handler);
|
||||
|
||||
kfree(asus);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1165,7 +1165,7 @@ static int create_thermal_profile(struct platform_device *platform_device)
|
|||
static void remove_thermal_profile(void)
|
||||
{
|
||||
if (quirks->thermal)
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&pp_handler);
|
||||
}
|
||||
|
||||
static int __init alienware_wmi_init(void)
|
||||
|
|
|
|||
|
|
@ -289,7 +289,7 @@ static int thermal_init(void)
|
|||
static void thermal_cleanup(void)
|
||||
{
|
||||
if (thermal_handler)
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(thermal_handler);
|
||||
platform_device_unregister(platform_device);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1693,7 +1693,7 @@ static void __exit hp_wmi_bios_remove(struct platform_device *device)
|
|||
}
|
||||
|
||||
if (platform_profile_support)
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&platform_profile_handler);
|
||||
}
|
||||
|
||||
static int hp_wmi_resume_handler(struct device *device)
|
||||
|
|
|
|||
|
|
@ -1136,7 +1136,7 @@ static void ideapad_dytc_profile_exit(struct ideapad_private *priv)
|
|||
if (!priv->dytc)
|
||||
return;
|
||||
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&priv->dytc->pprof);
|
||||
mutex_destroy(&priv->dytc->mutex);
|
||||
kfree(priv->dytc);
|
||||
|
||||
|
|
|
|||
|
|
@ -191,7 +191,10 @@ static int inspur_wmi_probe(struct wmi_device *wdev, const void *context)
|
|||
|
||||
static void inspur_wmi_remove(struct wmi_device *wdev)
|
||||
{
|
||||
platform_profile_remove();
|
||||
struct inspur_wmi_priv *priv;
|
||||
|
||||
priv = dev_get_drvdata(&wdev->dev);
|
||||
platform_profile_remove(&priv->handler);
|
||||
}
|
||||
|
||||
static const struct wmi_device_id inspur_wmi_id_table[] = {
|
||||
|
|
|
|||
|
|
@ -10660,7 +10660,7 @@ static int tpacpi_dytc_profile_init(struct ibm_init_struct *iibm)
|
|||
|
||||
static void dytc_profile_exit(void)
|
||||
{
|
||||
platform_profile_remove();
|
||||
platform_profile_remove(&dytc_profile);
|
||||
}
|
||||
|
||||
static struct ibm_struct dytc_profile_driver_data = {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ struct platform_profile_handler {
|
|||
};
|
||||
|
||||
int platform_profile_register(struct platform_profile_handler *pprof);
|
||||
int platform_profile_remove(void);
|
||||
int platform_profile_remove(struct platform_profile_handler *pprof);
|
||||
int platform_profile_cycle(void);
|
||||
void platform_profile_notify(void);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user