2020-09-21 21:41:10

by Sowjanya Komatineni

[permalink] [raw]
Subject: [PATCH v6 2/3] media: i2c: imx274: Remove stop stream i2c writes during remove

Sensor should already be in standby during remove and there is no
need to configure sensor registers for stream stop.

Signed-off-by: Sowjanya Komatineni <[email protected]>
---
drivers/media/i2c/imx274.c | 3 ---
1 file changed, 3 deletions(-)

diff --git a/drivers/media/i2c/imx274.c b/drivers/media/i2c/imx274.c
index a4b9dfd..5e515f0 100644
--- a/drivers/media/i2c/imx274.c
+++ b/drivers/media/i2c/imx274.c
@@ -1968,9 +1968,6 @@ static int imx274_remove(struct i2c_client *client)
struct v4l2_subdev *sd = i2c_get_clientdata(client);
struct stimx274 *imx274 = to_imx274(sd);

- /* stop stream */
- imx274_write_table(imx274, imx274_stop);
-
v4l2_async_unregister_subdev(sd);
v4l2_ctrl_handler_free(&imx274->ctrls.handler);
media_entity_cleanup(&sd->entity);
--
2.7.4


2020-09-22 08:35:15

by Luca Ceresoli

[permalink] [raw]
Subject: Re: [PATCH v6 2/3] media: i2c: imx274: Remove stop stream i2c writes during remove

Hi,

On 21/09/20 23:39, Sowjanya Komatineni wrote:
> Sensor should already be in standby during remove and there is no
> need to configure sensor registers for stream stop.

I beg your pardon for the newbie question: does the V4L2 framework
guarantee that the stream is stopped (.s_stream(..., 0)) before removing
the driver?

Thanks,
--
Luca

2020-09-22 08:36:25

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH v6 2/3] media: i2c: imx274: Remove stop stream i2c writes during remove

On Mon, Sep 21, 2020 at 02:39:38PM -0700, Sowjanya Komatineni wrote:
> Sensor should already be in standby during remove and there is no
> need to configure sensor registers for stream stop.
>
> Signed-off-by: Sowjanya Komatineni <[email protected]>
> ---
> drivers/media/i2c/imx274.c | 3 ---
> 1 file changed, 3 deletions(-)

Reviewed-by: Thierry Reding <[email protected]>


Attachments:
(No filename) (394.00 B)
signature.asc (849.00 B)
Download all attachments

2020-09-22 08:50:21

by Sakari Ailus

[permalink] [raw]
Subject: Re: [PATCH v6 2/3] media: i2c: imx274: Remove stop stream i2c writes during remove

Hi Luca,

On Tue, Sep 22, 2020 at 10:09:33AM +0200, Luca Ceresoli wrote:
> Hi,
>
> On 21/09/20 23:39, Sowjanya Komatineni wrote:
> > Sensor should already be in standby during remove and there is no
> > need to configure sensor registers for stream stop.
>
> I beg your pardon for the newbie question: does the V4L2 framework
> guarantee that the stream is stopped (.s_stream(..., 0)) before removing
> the driver?

It doesn't. That's however one of the lesser concerns, and I don't think
it'd help if drivers tried to prepare for that.

--
Sakari Ailus

2020-09-24 10:10:56

by Luca Ceresoli

[permalink] [raw]
Subject: Re: [PATCH v6 2/3] media: i2c: imx274: Remove stop stream i2c writes during remove

On 22/09/20 10:47, Sakari Ailus wrote:
> Hi Luca,
>
> On Tue, Sep 22, 2020 at 10:09:33AM +0200, Luca Ceresoli wrote:
>> Hi,
>>
>> On 21/09/20 23:39, Sowjanya Komatineni wrote:
>>> Sensor should already be in standby during remove and there is no
>>> need to configure sensor registers for stream stop.
>>
>> I beg your pardon for the newbie question: does the V4L2 framework
>> guarantee that the stream is stopped (.s_stream(..., 0)) before removing
>> the driver?
>
> It doesn't. That's however one of the lesser concerns, and I don't think
> it'd help if drivers tried to prepare for that.

Thanks for the clarification.

I've been working with hardware where the sensor is always powered. In
this case, and with this patch applied, the sensor would keep producing
frames after driver removal. This looks wrong, unless I'm overlooking
something.

BTW at first sight it looks like the framework should take care of
stopping the stream before removal, not the individual drivers, but
maybe there are good reasons this is not done?

--
Luca

2020-09-24 17:30:29

by Sakari Ailus

[permalink] [raw]
Subject: Re: [PATCH v6 2/3] media: i2c: imx274: Remove stop stream i2c writes during remove

On Thu, Sep 24, 2020 at 12:09:22PM +0200, Luca Ceresoli wrote:
> On 22/09/20 10:47, Sakari Ailus wrote:
> > Hi Luca,
> >
> > On Tue, Sep 22, 2020 at 10:09:33AM +0200, Luca Ceresoli wrote:
> >> Hi,
> >>
> >> On 21/09/20 23:39, Sowjanya Komatineni wrote:
> >>> Sensor should already be in standby during remove and there is no
> >>> need to configure sensor registers for stream stop.
> >>
> >> I beg your pardon for the newbie question: does the V4L2 framework
> >> guarantee that the stream is stopped (.s_stream(..., 0)) before removing
> >> the driver?
> >
> > It doesn't. That's however one of the lesser concerns, and I don't think
> > it'd help if drivers tried to prepare for that.
>
> Thanks for the clarification.
>
> I've been working with hardware where the sensor is always powered. In
> this case, and with this patch applied, the sensor would keep producing
> frames after driver removal. This looks wrong, unless I'm overlooking
> something.
>
> BTW at first sight it looks like the framework should take care of
> stopping the stream before removal, not the individual drivers, but
> maybe there are good reasons this is not done?

Yes, it should.

This is a complex problem area to address. The framework (V4L2) wasn't
originally built with object refcounting when support was added for complex
cameras that comprise multiple devices because it wasn't thought it would
be really needed. And it's hard to add that later on.

Either way, there's little individual drivers can do to address that; the
framework support needs to be there first.

The same goes with Media controller; it's not just V4L2.

--
Sakari Ailus