On Fri, Jan 22, 2021 at 6:41 PM Hans de Goede hdegoede@redhat.com wrote:
Before this commit the extcon-arizona code was mixing pm_runtime_get() and pm_runtime_get_sync() in different places.
In all places where pm_runtime_get[_sync]() is called, the code makes use of the device immediately after the call. This means that we should always use pm_runtime_get_sync().
I think it implies the non-atomic (may sleep) context in the below functions. Reviewed-by: Andy Shevchenko andy.shevchenko@gmail.com
Signed-off-by: Hans de Goede hdegoede@redhat.com
Changes in v3:
- This is a new patch in v3 of this patch-set
drivers/extcon/extcon-arizona.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c index 72d23b15108c..56d2ce05de50 100644 --- a/drivers/extcon/extcon-arizona.c +++ b/drivers/extcon/extcon-arizona.c @@ -290,7 +290,7 @@ static void arizona_start_mic(struct arizona_extcon_info *info) unsigned int mode;
/* Microphone detection can't use idle mode */
pm_runtime_get(info->dev);
pm_runtime_get_sync(info->dev); if (info->detecting) { ret = regulator_allow_bypass(info->micvdd, false);
@@ -695,7 +695,7 @@ static void arizona_identify_headphone(struct arizona_extcon_info *info) dev_dbg(arizona->dev, "Starting HPDET\n");
/* Make sure we keep the device enabled during the measurement */
pm_runtime_get(info->dev);
pm_runtime_get_sync(info->dev); info->hpdet_active = true;
-- 2.28.0