From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: mchehab@osg.samsung.com, linux-media@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH RESEND] media: omap3isp: Use dma_request_chan() to requesting DMA channel
Date: Thu, 03 Nov 2016 17:09:55 +0200 [thread overview]
Message-ID: <7701230.8T98ZHD6cs@avalon> (raw)
In-Reply-To: <9b482d6b-5750-9c9d-e9a8-b113788fbb67@ti.com>
Hi Peter,
On Thursday 03 Nov 2016 11:23:50 Peter Ujfalusi wrote:
> On 11/02/2016 11:19 PM, Laurent Pinchart wrote:
> > On Wednesday 02 Nov 2016 14:39:59 Peter Ujfalusi wrote:
> >> With the new dma_request_chan() the client driver does not need to look
> >> for the DMA resource and it does not need to pass filter_fn anymore.
> >> By switching to the new API the driver can now support deferred probing
> >> against DMA.
> >
> > I believe this breaks the OMAP3 ISP driver.
> > dma_request_slave_channel_compat() is a superset of dma_request_chan()
> > that will, when called with omap_dma_filter_fn, return as a fallback any
> > free channel handled by the OMAP DMA engine driver. This feature is
> > actively used by this driver and must be preserved.
>
> The fallback to use the filter_fn is used only when booted in legacy
> mode or when requesting a channel for non slave DMA operation.
> Based on the code in the driver it is handling slave transfers, so it
> must have DMA request line coming from somewhere. If that is missing the
> driver should not be able to work as it will not start the transfer.
If I remember correctly, the OMAP3 ISP has no dedicated DMA channel is it
doesn't issue any hardware trigger. It can use any DMA channel, and performs a
memcpy-like operation from a FIFO exposed through a single register to a
system memory location.
> dma_request_chan() is to be used when you want to have slave channel
> with DMA request.
>
> If legacy mode needs to be supported then adding the hist DMA request
> number to the omap3xxx_sdma_map in arch/arm/mach-omap2/dma.c should be done.
> The reason the omap3isp is not in the table is that I could not find any
> place where the DMA resource was set (nor the DMA is specified in DT).
That's because there's no DMA request number for the OMAP3 ISP :-)
> I'm unsure how this driver could work w/o DMA request line over a random
> (and SW triggered) DMA channel with slave operation. For the slave DMA
> you need to have DMA request line.
As far as I understand, the DMA channel is software triggered, and the DMA
engine will just perform the programmed number of transfers, without waiting
for a hardware trigger.
--
Regards,
Laurent Pinchart
prev parent reply other threads:[~2016-11-03 15:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-02 12:39 [PATCH RESEND] media: omap3isp: Use dma_request_chan() to requesting DMA channel Peter Ujfalusi
2016-11-02 21:19 ` Laurent Pinchart
2016-11-03 9:23 ` Peter Ujfalusi
2016-11-03 13:14 ` Peter Ujfalusi
2016-11-03 15:12 ` Laurent Pinchart
2016-11-04 8:05 ` Peter Ujfalusi
2016-11-03 15:09 ` Laurent Pinchart [this message]
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=7701230.8T98ZHD6cs@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@osg.samsung.com \
--cc=peter.ujfalusi@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 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.