Hi, On 7/12/22 16:58, Shyam Sundar S K wrote: > From: Mario Limonciello <mario.limonciello@xxxxxxx> > > Allow other drivers to react to determine current active profile > and react to platform profile changes. > > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> > Signed-off-by: Shyam Sundar S K <Shyam-sundar.S-k@xxxxxxx> This new helper is not necessary, as mentioned in my review of 8/15, its single caller, the code there can just use: current_profile = READ_ONCE(dev->current_profile); Please drop this patch for the next version of the series. Regards, Hans > --- > drivers/acpi/platform_profile.c | 26 ++++++++++++++++++++++++++ > include/linux/platform_profile.h | 1 + > 2 files changed, 27 insertions(+) > > diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c > index d418462ab791..7e12a1f30f06 100644 > --- a/drivers/acpi/platform_profile.c > +++ b/drivers/acpi/platform_profile.c > @@ -49,6 +49,32 @@ static ssize_t platform_profile_choices_show(struct device *dev, > return len; > } > > +int platform_profile_get(enum platform_profile_option *profile) > +{ > + int err; > + > + err = mutex_lock_interruptible(&profile_lock); > + if (err) > + return err; > + > + if (!cur_profile) { > + mutex_unlock(&profile_lock); > + return -ENODEV; > + } > + > + err = cur_profile->profile_get(cur_profile, profile); > + mutex_unlock(&profile_lock); > + if (err) > + return err; > + > + /* Check that profile is valid index */ > + if (WARN_ON((*profile < 0) || (*profile >= ARRAY_SIZE(profile_names)))) > + return -EIO; > + > + return 0; > +} > +EXPORT_SYMBOL_GPL(platform_profile_get); > + > static ssize_t platform_profile_show(struct device *dev, > struct device_attribute *attr, > char *buf) > diff --git a/include/linux/platform_profile.h b/include/linux/platform_profile.h > index e5cbb6841f3a..2395be670dfd 100644 > --- a/include/linux/platform_profile.h > +++ b/include/linux/platform_profile.h > @@ -37,5 +37,6 @@ struct platform_profile_handler { > int platform_profile_register(struct platform_profile_handler *pprof); > int platform_profile_remove(void); > void platform_profile_notify(void); > +int platform_profile_get(enum platform_profile_option *profile); > > #endif /*_PLATFORM_PROFILE_H_*/