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 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.