From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: jean-philippe francois <jp.francois@cynove.com>
Cc: Julien BERAUD <julien.beraud@parrot.com>,
Sakari Ailus <sakari.ailus@iki.fi>,
linux-media <linux-media@vger.kernel.org>
Subject: Re: Lockup on second streamon with omap3-isp
Date: Mon, 17 Dec 2012 17:09:23 +0100 [thread overview]
Message-ID: <15066502.oJSHXTO5Oy@avalon> (raw)
In-Reply-To: <CAGGh5h1RW9suO7gE-3Xy=5FQoW=_39oeihXuMMKHYJrnAp93cg@mail.gmail.com>
Hi Jean-Philippe,
On Monday 17 December 2012 16:41:29 jean-philippe francois wrote:
> 2012/12/17 Laurent Pinchart:
> > On Friday 14 December 2012 15:18:29 Julien BERAUD wrote:
> >> Hi Jean-Philippe,
> >>
> >> I have had exactly the same problem and the following workaround has
> >> caused no regression on our board yet.
> >> I can't explain exactly why it works and I think that it is internal to
> >> the isp.
> >>
> >> In function ccdc_set_stream, don't disable the ccdc_subclk when stopping
> >>
> >> capture:
> >> ret = ccdc_disable(ccdc);
> >> if (ccdc->output & CCDC_OUTPUT_MEMORY)
> >>
> >> omap3isp_sbl_disable(isp,
> >>
> >> OMAP3_ISP_SBL_CCDC_WRITE);
> >> - omap3isp_subclk_disable(isp, OMAP3_ISP_SUBCLK_CCDC);
> >> + //omap3isp_subclk_disable(isp, OMAP3_ISP_SUBCLK_CCDC);
> >>
> >> I know that it is still a workaround but I hope that maybe it will help
> >> someone to understand the real cause of this issue.
> >
> > Do you get CCDC stop timeouts ? They are reported in the kernel log as
> > "CCDC stop timeout!".
Does Julien's patch fix your issue ?
> >> Le 13/12/2012 15:14, jean-philippe francois a écrit :
> >> > Hi,
> >> >
> >> > I have news on the "IRQ storm on second streamon" problem.
> >> > Reminder :
> >> > Given a perfectly fine HSYNC / VSYNC / PIXELCLOK configuration, the
> >> > omap3-isp (at least until 3.4) will go into an interrupt storm when
> >> > streamon is called for the second time, unless you are able to stop
> >> > the sensor when not streaming. I have reproduced this on three
> >> > different board, with three different sensor.
> >> >
> >> > On board 1, the problem disappeared by itself (in fact not by itself,
> >> > see below) and the board is not in my possession anymore.
> >> > On board 2, I implemented a working s_stream operation in the subdev
> >> > driver, so the problem was solved because the sensor would effectively
> >> > stop streaming when told to, keeping the ISP + CCDC happy
> >> > On board 3, I can't stop the streaming, or I did not figure out how to
> >> > make it stop yet.
> >> >
> >> > I tried to disable the HS_VS_IRQ, but it did not help, so I came back
> >> > looking at the code of board 1, which was running fine with a 3.4
> >> > kernel. And I discovered the problem doesn't happen if I break the
> >> > pipeline between two consecutive streamon.
> >> >
> >> > In other word if I do the following :
> >> >
> >> > media-ctl -l '16:0->5:0[1], 5:1->6:0[1]'
> >> > media-ctl -f '16:0 [SBGGR8 2560x800 (0, 0)/2560x800]'
> >> > yavta ....
> >> > yavta ... <--------- board locks up, soft lockup is fired
> >> >
> >> > But if I do this instead :
> >> >
> >> > media-ctl -l '16:0->5:0[0], 5:1->6:0[0]'
> >> > media-ctl -l '16:0->5:0[1], 5:1->6:0[1]'
> >> > media-ctl -f '16:0 [SBGGR8 2560x800 (0, 0)/2560x800]'
> >> > yavta ....
> >> > media-ctl -l '16:0->5:0[0], 5:1->6:0[0]'
> >> > media-ctl -l '16:0->5:0[1], 5:1->6:0[1]'
> >> > media-ctl -f '16:0 [SBGGR8 2560x800 (0, 0)/2560x800]'
> >> > yavta ... <--------- image are acquired, board doesn't lock up
> >> > anymore
> >
> > Now this really doesn't make much sense to me. Both sequences should
> > produce the exact same hardware accesses.
> >
> > Could you add a printk in isp_reg_writel
> > (drivers/media/platform/omap3isp/isp.h) and compare the register writes
> > for
> > both sequences ?
>
> And you are right, it was pure coincidence, the issue is still there.
Thought so :-)
> Sorry for the inaccurate report.
No worries.
> >> > It would be interesting to go from this workaround to the elimination
> >> > of the root cause. What can I do / test next to stop this bug from
> >> > hapenning ?
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2012-12-17 16:08 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-06 17:08 Lockup on second streamon with omap3-isp jean-philippe francois
2012-03-07 14:24 ` jean-philippe francois
2012-03-08 17:22 ` Sakari Ailus
2012-03-08 23:28 ` Laurent Pinchart
2012-03-09 7:30 ` jean-philippe francois
2012-03-09 10:42 ` Laurent Pinchart
2012-03-09 12:54 ` Michael Jones
2012-03-09 12:58 ` Laurent Pinchart
2012-03-09 15:55 ` jean-philippe francois
2012-12-13 14:14 ` jean-philippe francois
2012-12-14 14:18 ` Julien BERAUD
2012-12-17 9:32 ` Laurent Pinchart
2012-12-17 15:41 ` jean-philippe francois
2012-12-17 16:09 ` Laurent Pinchart [this message]
2012-12-18 10:13 ` Julien BERAUD
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=15066502.oJSHXTO5Oy@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=jp.francois@cynove.com \
--cc=julien.beraud@parrot.com \
--cc=linux-media@vger.kernel.org \
--cc=sakari.ailus@iki.fi \
/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