linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Benoit Parrot <bparrot@ti.com>, Pratyush Yadav <p.yadav@ti.com>,
	Lokesh Vutla <lokeshvutla@ti.com>,
	linux-media@vger.kernel.org
Subject: Re: [PATCH 15/28] media: ti-vpe: cal: remove wait when stopping camerarx
Date: Tue, 4 May 2021 10:56:59 +0300	[thread overview]
Message-ID: <28d4fab7-44c5-70d3-1dd7-d8814a39fef0@ideasonboard.com> (raw)
In-Reply-To: <YIn2Y/HpOPBKUzh/@pendragon.ideasonboard.com>

On 29/04/2021 02:57, Laurent Pinchart wrote:
> Hi Tomi,
> 
> On Mon, Apr 19, 2021 at 02:29:20PM +0300, Tomi Valkeinen wrote:
>> On 18/04/2021 15:46, Laurent Pinchart wrote:
>>> On Mon, Apr 12, 2021 at 02:34:44PM +0300, Tomi Valkeinen wrote:
>>>> Asserting ComplexIO reset seems to affect the HW (ie. asserting reset
>>>> will break an active capture), but the RESET_DONE bit never changes to
>>>> "reset is ongoing" state. Thus we always get a timeout.
>>>>
>>>> Drop the wait, as it seems to achieve nothing.
>>>>
>>>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
>>>> ---
>>>>    drivers/media/platform/ti-vpe/cal-camerarx.c | 15 ++-------------
>>>>    1 file changed, 2 insertions(+), 13 deletions(-)
>>>>
>>>> diff --git a/drivers/media/platform/ti-vpe/cal-camerarx.c b/drivers/media/platform/ti-vpe/cal-camerarx.c
>>>> index 0354f311c5d2..245c601b992c 100644
>>>> --- a/drivers/media/platform/ti-vpe/cal-camerarx.c
>>>> +++ b/drivers/media/platform/ti-vpe/cal-camerarx.c
>>>> @@ -405,7 +405,6 @@ static int cal_camerarx_start(struct cal_camerarx *phy)
>>>>    
>>>>    static void cal_camerarx_stop(struct cal_camerarx *phy)
>>>>    {
>>>> -	unsigned int i;
>>>>    	int ret;
>>>>    
>>>>    	cal_camerarx_ppi_disable(phy);
>>>> @@ -419,19 +418,9 @@ static void cal_camerarx_stop(struct cal_camerarx *phy)
>>>>    			CAL_CSI2_COMPLEXIO_CFG_RESET_CTRL,
>>>>    			CAL_CSI2_COMPLEXIO_CFG_RESET_CTRL_MASK);
>>>>    
>>>> -	/* Wait for power down completion */
>>>> -	for (i = 0; i < 10; i++) {
>>>> -		if (cal_read_field(phy->cal,
>>>> -				   CAL_CSI2_COMPLEXIO_CFG(phy->instance),
>>>> -				   CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_MASK) ==
>>>> -		    CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_RESETONGOING)
>>>
>>> Isn't this the wrong condition ? I would have expected
>>> CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_RESETCOMPLETED, not
>>> CAL_CSI2_COMPLEXIO_CFG_RESET_DONE_RESETONGOING. That could explain why
>>> you always get a timeout.
>>
>> No, I don't think so. The complexio reset is set active just before the
>> wait. So the reset status should show reset ongoing, until at some point
>> we release the reset (we do that when starting the PHY again).
>>
>> The TRM doesn't talk about this, though. So, I guess the status might go
>> to RESETONGOING for a very short time and back to RESETCOMPLETED before
>> the code can see the RESETONGOING. But I suspect the status just stays
>> at RESETCOMPLETED.
> 
> The TRM is indeed not very clear. My understanding was that asserting
> RESET_CTRL initiates the reset, and RESET_DONE switches to 1 once the
> reset completes. There's however a note in the initialization sequence
> that states

No, it's a bit to keep (or release) camerarx in reset. When the camerarx 
is being started, both reset ctrl and done are 0. The driver then 
releases the reset by setting ctrl to 1. Nothing happens at this time, 
as the camerarx needs the byteclk from the sensor to finish the reset. 
Later, when the sensor has been started, done changes to 1. This works fine.

The problem is on the stop side. Setting ctrl back to 0 does something, 
as the capture stops, so presumably the camerarx goes into reset state. 
But the done bit does not change.

The done bit is back to 0 when we start the camerarx again. My guess is 
that it's reset when the CAL module is turned off via runtime PM. This 
is not good, as there's no strict rule that says CAL will be turned off 
by runtime PM. However, I have not found any other way to reset the done 
bit. And in the case that we don't get a CAL reset, I guess we're still 
fine, as the camerarx is just already out of reset, and works.

  Tomi

  reply	other threads:[~2021-05-04  7:57 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-12 11:34 [PATCH 00/28] media: ti-vpe: cal: prepare for multistream support Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 01/28] media: ti-vpe: cal: add g/s_parm for legacy API Tomi Valkeinen
2021-04-17 23:01   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 02/28] media: ti-vpe: cal: fix error handling in cal_camerarx_create Tomi Valkeinen
2021-04-17 23:05   ` Laurent Pinchart
2021-04-19  8:24     ` Tomi Valkeinen
2021-04-19  8:31       ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 03/28] media: ti-vpe: cal: remove unused cal_camerarx->dev field Tomi Valkeinen
2021-04-18  0:43   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 04/28] media: ti-vpe: cal: rename "sensor" to "source" Tomi Valkeinen
2021-04-17 23:18   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 05/28] media: ti-vpe: cal: move global config from cal_ctx_wr_dma_config to runtime resume Tomi Valkeinen
2021-04-17 23:27   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 06/28] media: ti-vpe: cal: use v4l2_get_link_freq Tomi Valkeinen
2021-04-18 11:48   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 07/28] media: ti-vpe: cal: add cal_ctx_prepare/unprepare Tomi Valkeinen
2021-04-18 13:30   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 08/28] media: ti-vpe: cal: change index and cport to u8 Tomi Valkeinen
2021-04-18 11:55   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 09/28] media: ti-vpe: cal: Add PPI context Tomi Valkeinen
2021-04-18 12:17   ` Laurent Pinchart
2021-04-19  9:01     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 10/28] media: ti-vpe: cal: Add pixel processing context Tomi Valkeinen
2021-04-18 12:20   ` Laurent Pinchart
2021-04-18 12:23     ` Laurent Pinchart
2021-04-19  9:17     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 11/28] media: ti-vpe: cal: rename cal_ctx->index to dma_ctx Tomi Valkeinen
2021-04-18 12:22   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 12/28] media: ti-vpe: cal: rename CAL_HL_IRQ_MASK Tomi Valkeinen
2021-04-18 12:29   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 13/28] media: ti-vpe: cal: clean up CAL_CSI2_VC_IRQ_* macros Tomi Valkeinen
2021-04-18 12:32   ` Laurent Pinchart
2021-04-19 10:29     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 14/28] media: ti-vpe: cal: catch VC errors Tomi Valkeinen
2021-04-18 12:38   ` Laurent Pinchart
2021-04-19 11:19     ` Tomi Valkeinen
2021-04-28 23:44       ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 15/28] media: ti-vpe: cal: remove wait when stopping camerarx Tomi Valkeinen
2021-04-18 12:46   ` Laurent Pinchart
2021-04-19 11:29     ` Tomi Valkeinen
2021-04-28 23:57       ` Laurent Pinchart
2021-05-04  7:56         ` Tomi Valkeinen [this message]
2021-06-04 13:44         ` Laurent Pinchart
2021-06-07 10:41           ` Tomi Valkeinen
2021-06-09 12:31             ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 16/28] media: ti-vpe: cal: disable ppi and pix proc at ctx_stop Tomi Valkeinen
2021-04-18 12:49   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 17/28] media: ti-vpe: cal: allocate pix proc dynamically Tomi Valkeinen
2021-04-18 12:59   ` Laurent Pinchart
2021-04-19 11:45     ` Tomi Valkeinen
2021-04-29  0:04       ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 18/28] media: ti-vpe: cal: add 'use_pix_proc' field Tomi Valkeinen
2021-04-18 13:00   ` Laurent Pinchart
2021-04-19 11:53     ` Tomi Valkeinen
2021-04-29  0:07       ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 19/28] media: ti-vpe: cal: add cal_ctx_wr_dma_enable and fix a race Tomi Valkeinen
2021-04-18 13:04   ` Laurent Pinchart
2021-04-19 12:02     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 20/28] media: ti-vpe: cal: add vc and datatype fields to cal_ctx Tomi Valkeinen
2021-04-18 13:06   ` Laurent Pinchart
2021-04-19 12:07     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 21/28] media: ti-vpe: cal: fix cal_ctx_v4l2_register error handling Tomi Valkeinen
2021-04-18 13:09   ` Laurent Pinchart
2021-04-20 10:50     ` Tomi Valkeinen
2021-04-20 11:17       ` Tomi Valkeinen
2021-04-29  0:10         ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 22/28] media: ti-vpe: cal: set field always to V4L2_FIELD_NONE Tomi Valkeinen
2021-04-18 13:14   ` Laurent Pinchart
2021-04-19 12:34     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 23/28] media: ti-vpe: cal: fix typo in a comment Tomi Valkeinen
2021-04-18 13:14   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 24/28] media: ti-vpe: cal: add mbus_code support to cal_mc_enum_fmt_vid_cap Tomi Valkeinen
2021-04-18 13:17   ` Laurent Pinchart
2021-04-19 12:50     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 25/28] media: ti-vpe: cal: rename non-MC funcs to cal_legacy_* Tomi Valkeinen
2021-04-18 13:18   ` Laurent Pinchart
2021-04-12 11:34 ` [PATCH 26/28] media: ti-vpe: cal: init ctx->v_fmt correctly in MC mode Tomi Valkeinen
2021-04-18 13:21   ` Laurent Pinchart
2021-04-19 13:01     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 27/28] media: ti-vpe: cal: remove cal_camerarx->fmtinfo Tomi Valkeinen
2021-04-18 13:24   ` Laurent Pinchart
2021-04-19 13:08     ` Tomi Valkeinen
2021-04-12 11:34 ` [PATCH 28/28] media: ti-vpe: cal: support 8 DMA contexts Tomi Valkeinen
2021-04-18 13:29   ` Laurent Pinchart

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=28d4fab7-44c5-70d3-1dd7-d8814a39fef0@ideasonboard.com \
    --to=tomi.valkeinen@ideasonboard.com \
    --cc=bparrot@ti.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=lokeshvutla@ti.com \
    --cc=p.yadav@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).