Hi Marco, On Fri, Nov 08, 2019 at 11:25:02AM +0100, Marco Felsch wrote: > Hi Sakari, > > On 19-10-24 14:59, Sakari Ailus wrote: > > Hi Marco, > > > > On Mon, Sep 30, 2019 at 11:38:56AM +0200, Marco Felsch wrote: > > > Don't en-/disable the interrupts during s_stream because someone can > > > disable the stream but wants to get informed if the stream is locked > > > again. So keep the interrupts enabled the whole time the pipeline is > > > opened. > > > > > > Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx> > > > --- > > > drivers/media/i2c/tvp5150.c | 23 +++++++++++++++++------ > > > 1 file changed, 17 insertions(+), 6 deletions(-) > > > > > > diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c > > > index dda9f0a2995f..4afe2093b950 100644 > > > --- a/drivers/media/i2c/tvp5150.c > > > +++ b/drivers/media/i2c/tvp5150.c > > > @@ -1356,11 +1356,26 @@ static const struct media_entity_operations tvp5150_sd_media_ops = { > > > /**************************************************************************** > > > I2C Command > > > ****************************************************************************/ > > > +static int tvp5150_s_power(struct v4l2_subdev *sd, int on) > > > +{ > > > + struct tvp5150 *decoder = to_tvp5150(sd); > > > + unsigned int val = 0; > > > + > > > + if (on) > > > + val = TVP5150_INT_A_LOCK; > > > + > > > + if (decoder->irq) > > > + /* Enable / Disable lock interrupt */ > > > + regmap_update_bits(decoder->regmap, TVP5150_INT_ENABLE_REG_A, > > > + TVP5150_INT_A_LOCK, val); > > > > Could you use runtime PM to do this instead? > > You mean I should add a simple runtime_resume/suspend() which is called > during v4l2_subdev_internal_ops.open/close()? Of course I can do that > but why? There's no reason to use generic mechanisms that have been around for ten or so years. Eventually the s_power() op will be dropped. -- Sakari Ailus