All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <Jonathan.Cameron@Huawei.com>
To: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Jonathan Cameron <jic23@kernel.org>,
	Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	<linux-iio@vger.kernel.org>, Julia Lawall <Julia.Lawall@inria.fr>,
	"Rafael J . Wysocki" <rjw@rjwysocki.net>
Subject: Re: [PATCH 08/28] iio: hid: trigger: Balance runtime pm + use pm_runtime_resume_and_get()
Date: Mon, 17 May 2021 09:43:47 +0100	[thread overview]
Message-ID: <20210517094347.00000af0@Huawei.com> (raw)
In-Reply-To: <34bcfe8c14e26635a4ac46f0d7b198fd07761623.camel@linux.intel.com>

On Sun, 16 May 2021 19:19:40 -0700
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> wrote:

> On Sun, 2021-05-16 at 16:19 +0100, Jonathan Cameron wrote:
> > On Wed, 12 May 2021 15:44:30 +0200
> > Mauro Carvalho Chehab <mchehab+huawei@kernel.org> wrote:
> >   
> > > Em Sun,  9 May 2021 12:33:34 +0100
> > > Jonathan Cameron <jic23@kernel.org> escreveu:
> > >   
> > > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > > 
> > > > The call to pm_runtime_put_noidle() in remove() callback is not
> > > > balanced by any gets
> > > > 
> > > > Note this doesn't cause any problems beyond reader confusion as
> > > > the runtime
> > > > pm core protects against the reference counter going negative.
> > > > 
> > > > Whilst here, use pm_runtiem_resume_and_get() to simplify code a
> > > > little.
> > > > 
> > > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > > > Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>    
> > > 
> > > RPM get/put logic LGTM.
> > > 
> > > Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>  
> > 
> > After our side discussion on this one I wanted to take another look.
> > I'm not sure I follow the logic behind the runtime_enable() path
> > and why we don't want to enable runtime_pm until first use.  However
> > it's not directly related to this patch and as far as I can tell
> > it's just unsuual rather than broken.  As such, applied this one to
> > the
> > togreg branch of iio.git and pushed out as testing.
> >   
> 
> This was enabled in init path but caused issue with USB sensor hub in
> Thinkpasd Yoga S1, where we can never power off sensor and it wakes up
> device immediately after suspend.
> 
> commit
> ad7532cefd11d11a0814a75fb814c205ee3d9d4c

Ah.  Thanks for the history.  Thanks makes a horrible kind of sense ;)

Jonathan

> 
> 
> Thanks,
> Srinivas
> 
> > Thanks,
> > 
> > Jonathan
> >   
> > >   
> > > > ---
> > > >  drivers/iio/common/hid-sensors/hid-sensor-trigger.c | 8 ++------
> > > >  1 file changed, 2 insertions(+), 6 deletions(-)
> > > > 
> > > > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > > b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > > index 5a7b3e253e58..c06537e106e9 100644
> > > > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > > > @@ -163,18 +163,15 @@ int hid_sensor_power_state(struct
> > > > hid_sensor_common *st, bool state)
> > > >  
> > > >         if (state) {
> > > >                 atomic_inc(&st->user_requested_state);
> > > > -               ret = pm_runtime_get_sync(&st->pdev->dev);
> > > > +               ret = pm_runtime_resume_and_get(&st->pdev->dev);
> > > >         } else {
> > > >                 atomic_dec(&st->user_requested_state);
> > > >                 pm_runtime_mark_last_busy(&st->pdev->dev);
> > > >                 pm_runtime_use_autosuspend(&st->pdev->dev);
> > > >                 ret = pm_runtime_put_autosuspend(&st->pdev->dev);
> > > >         }
> > > > -       if (ret < 0) {
> > > > -               if (state)
> > > > -                       pm_runtime_put_noidle(&st->pdev->dev);
> > > > +       if (ret < 0)
> > > >                 return ret;
> > > > -       }
> > > >  
> > > >         return 0;
> > > >  #else
> > > > @@ -222,7 +219,6 @@ void hid_sensor_remove_trigger(struct iio_dev
> > > > *indio_dev,
> > > >                 pm_runtime_disable(&attrb->pdev->dev);
> > > >  
> > > >         pm_runtime_set_suspended(&attrb->pdev->dev);
> > > > -       pm_runtime_put_noidle(&attrb->pdev->dev);
> > > >  
> > > >         cancel_work_sync(&attrb->work);
> > > >         iio_trigger_unregister(attrb->trigger);    
> > > 
> > > 
> > > 
> > > Thanks,
> > > Mauro  
> >   
> 
> 


  reply	other threads:[~2021-05-17  8:45 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-09 11:33 [RESEND PATCH 00/28] IIO: Runtime PM related cleanups Jonathan Cameron
2021-05-09 11:33 ` [PATCH 01/28] iio: gyro: fxa210002c: Balance runtime pm + use pm_runtime_resume_and_get() Jonathan Cameron
2021-05-09 17:26   ` Rui Miguel Silva
2021-05-12 13:22   ` Mauro Carvalho Chehab
2021-05-12 13:30     ` Mauro Carvalho Chehab
2021-05-13  8:34       ` Rui Miguel Silva
2021-05-13 16:31         ` Jonathan Cameron
2021-05-13 16:35           ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 02/28] iio: light: isl29028: " Jonathan Cameron
2021-05-12 13:33   ` Mauro Carvalho Chehab
2021-05-13 16:37     ` Jonathan Cameron
2021-05-17 21:44   ` Linus Walleij
2021-05-09 11:33 ` [PATCH 03/28] iio: light: tsl2583: " Jonathan Cameron
2021-05-10 10:46   ` Brian Masney
2021-05-13 16:39     ` Jonathan Cameron
2021-05-12 13:35   ` Mauro Carvalho Chehab
2021-05-09 11:33 ` [PATCH 04/28] iio: accel: bmc150-accel: Balanced " Jonathan Cameron
2021-05-09 13:52   ` Hans de Goede
2021-05-13 16:41     ` Jonathan Cameron
2021-05-12 13:36   ` Mauro Carvalho Chehab
2021-05-09 11:33 ` [PATCH 05/28] iio: accel: mma8452: Balance " Jonathan Cameron
2021-05-12 13:37   ` Mauro Carvalho Chehab
2021-05-13 17:06     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 06/28] iio: accel: mma9551/3: Balance untime " Jonathan Cameron
2021-05-12 13:37   ` Mauro Carvalho Chehab
2021-05-13 16:42     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 07/28] iio: accel: kxcjk-1013: Balance runtime " Jonathan Cameron
2021-05-09 13:53   ` Hans de Goede
2021-05-12 13:39   ` Mauro Carvalho Chehab
2021-05-09 11:33 ` [PATCH 08/28] iio: hid: trigger: " Jonathan Cameron
2021-05-12 13:44   ` Mauro Carvalho Chehab
2021-05-16 15:19     ` Jonathan Cameron
2021-05-17  2:19       ` Srinivas Pandruvada
2021-05-17  8:43         ` Jonathan Cameron [this message]
2021-05-09 11:33 ` [PATCH 09/28] iio: imu: kmx61: " Jonathan Cameron
2021-05-12 13:45   ` Mauro Carvalho Chehab
2021-05-13 16:46     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 10/28] iio: light: rpr0521: " Jonathan Cameron
2021-05-12 13:46   ` Mauro Carvalho Chehab
2021-05-13 17:03     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 11/28] iio: magn: bmc150: " Jonathan Cameron
2021-05-12 13:48   ` Mauro Carvalho Chehab
2021-05-13 17:02     ` Jonathan Cameron
2021-05-17 21:49   ` Linus Walleij
2021-05-09 11:33 ` [PATCH 12/28] iio: accel: bmi088: " Jonathan Cameron
2021-05-12 13:51   ` Mauro Carvalho Chehab
2021-05-13 17:00     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 13/28] iio: imu: mpu6050: Use pm_runtime_resume_and_get() to replace open coding Jonathan Cameron
2021-05-12 14:11   ` Mauro Carvalho Chehab
2021-05-16 15:36     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 14/28] iio: adc: stm32-adc: " Jonathan Cameron
2021-05-12 13:30   ` Fabrice Gasnier
2021-05-13 16:47     ` Jonathan Cameron
2021-05-12 14:17   ` Mauro Carvalho Chehab
2021-05-09 11:33 ` [PATCH 15/28] iio: adc: stm32-dfsdm: " Jonathan Cameron
2021-05-12 13:31   ` Fabrice Gasnier
2021-05-13 16:48     ` Jonathan Cameron
2021-05-12 14:19   ` Mauro Carvalho Chehab
2021-05-09 11:33 ` [PATCH 16/28] iio: dac: stm32-dac: " Jonathan Cameron
2021-05-12 13:32   ` Fabrice Gasnier
2021-05-12 14:20   ` Mauro Carvalho Chehab
2021-05-13 16:49     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 17/28] iio: adc: ads1015: " Jonathan Cameron
2021-05-12 14:22   ` Mauro Carvalho Chehab
2021-05-16 15:41     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 18/28] iio: chemical: atlas-sensor: " Jonathan Cameron
2021-05-10  0:36   ` Matt Ranostay
2021-05-12 14:25   ` Mauro Carvalho Chehab
2021-05-16 15:46     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 19/28] iio: light: pa12203001: " Jonathan Cameron
2021-05-14  7:35   ` Mauro Carvalho Chehab
2021-05-14  8:21     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 20/28] iio: light: us5182: " Jonathan Cameron
2021-05-12 14:35   ` Mauro Carvalho Chehab
2021-05-13 16:51     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 21/28] iio: light: vcnl4000: " Jonathan Cameron
2021-05-12 14:36   ` Mauro Carvalho Chehab
2021-05-13 16:57     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 22/28] iio: light: vcnl4035: " Jonathan Cameron
2021-05-12 14:39   ` Mauro Carvalho Chehab
2021-05-13 16:58     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 23/28] iio: pressure: zpa2326: fix potential extra call of runtime suspend Jonathan Cameron
2021-05-12 14:49   ` Mauro Carvalho Chehab
2021-05-16 16:08     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 24/28] iio: temp: mlx90614: Handle failure in pm_runtime_resume_and_get() Jonathan Cameron
2021-05-12 14:51   ` Mauro Carvalho Chehab
2021-05-13 16:53     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 25/28] iio: proximity: srf04: Use pm_runtime_resume_and_get() and handle error Jonathan Cameron
2021-05-12 14:53   ` Mauro Carvalho Chehab
2021-05-13 16:55     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 26/28] iio: prox: pulsed-light-v2: Switch pm_runtime_resume_and_get() Jonathan Cameron
2021-05-12 14:56   ` Mauro Carvalho Chehab
2021-05-16 16:08     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 27/28] iio: pressure: icp10100: Use pm_runtime_resume_and_get() + handle errors Jonathan Cameron
2021-05-12 15:00   ` Mauro Carvalho Chehab
2021-05-16 16:17     ` Jonathan Cameron
2021-05-09 11:33 ` [PATCH 28/28] iio: adc: rcar-gyroadc: Use pm_runtime_resume_and_get() and check in probe() Jonathan Cameron
2021-05-12 15:01   ` Mauro Carvalho Chehab
2021-05-13 16:54     ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210517094347.00000af0@Huawei.com \
    --to=jonathan.cameron@huawei.com \
    --cc=Julia.Lawall@inria.fr \
    --cc=jic23@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=mchehab+huawei@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=srinivas.pandruvada@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.