From: Baolin Wang <baolin.wang@linaro.org> To: Vinod Koul <vinod.koul@intel.com> Cc: Dan Williams <dan.j.williams@intel.com>, Eric Long <eric.long@spreadtrum.com>, Mark Brown <broonie@kernel.org>, dmaengine@vger.kernel.org, LKML <linux-kernel@vger.kernel.org> Subject: [4/5] dmaengine: sprd: Add Spreadtrum DMA configuration Date: Mon, 16 Apr 2018 14:32:05 +0800 [thread overview] Message-ID: <CAMz4kuKbPZkJBF1ci5osntnHHD2nkm1d81=2GQohzc3KGn-wiw@mail.gmail.com> (raw) On 16 April 2018 at 11:58, Vinod Koul <vinod.koul@intel.com> wrote: > On Fri, Apr 13, 2018 at 02:41:48PM +0800, Baolin Wang wrote: >> On 13 April 2018 at 14:36, Vinod Koul <vinod.koul@intel.com> wrote: >> > On Fri, Apr 13, 2018 at 02:17:34PM +0800, Baolin Wang wrote: >> > >> >> > Agreed, users only care about grabbing a channel, setting a descriptor and >> >> > submitting that. >> >> > >> >> > I think you need to go back and think about this a bit, please do go thru >> >> > dmaengine documentation and see other driver examples. >> >> > >> >> > We don't typically expose these to users, they give us a transfer and we set >> >> > that up in hardware for efficient. Its DMA so people expect us to use fastest >> >> > mechanism available. >> >> >> >> But there are some configuration are really special for Spreadtrum >> >> DMA, and must need user to specify how to configure, especially some >> >> scenarios of audio. So I wander if we can add one pointer for >> >> 'dma_slave_config' to expand some special DMA configuration >> >> requirements, like: >> >> >> >> struct dma_slave_config { >> >> ...... >> >> unsigned int slave_id; >> >> void *platform_data; >> >> }; >> >> >> >> So if some DMA has some special configuration (such as Spreadtrum >> >> DMA), they can user this platform_data pointer. Like xilinx DMA, they >> >> also have some special configuration. >> > >> > Well we all think our HW is special and needs some additional stuff, most of >> > the cases turns out not to be the case. >> > >> > Can you explain how audio in this case additional configuration... >> >> Beside the general configuration, our audio driver will configure the >> fragment length, block length, maybe transaction length, and they must >> specify the request type and interrupt type, these are what we want to >> export for users. > > As I said before, you need to derive fragment, block or transaction from I am sorry I did not make things clear here. What I mean is not only link list mode(prep_cyclic), but also other modes (prep_slave, prep_interleaved ...), users still need to configure the fragment length, block length or transaction length according to their requirements. > given prep_cyclic values. Interrupt type needs to be derived with the flags > passed. Please do see how other drivers make use of it. Fine. We configure the Interrupt type through the flags passed.
WARNING: multiple messages have this Message-ID (diff)
From: Baolin Wang <baolin.wang@linaro.org> To: Vinod Koul <vinod.koul@intel.com> Cc: Dan Williams <dan.j.williams@intel.com>, Eric Long <eric.long@spreadtrum.com>, Mark Brown <broonie@kernel.org>, dmaengine@vger.kernel.org, LKML <linux-kernel@vger.kernel.org> Subject: Re: [PATCH 4/5] dmaengine: sprd: Add Spreadtrum DMA configuration Date: Mon, 16 Apr 2018 14:32:05 +0800 [thread overview] Message-ID: <CAMz4kuKbPZkJBF1ci5osntnHHD2nkm1d81=2GQohzc3KGn-wiw@mail.gmail.com> (raw) In-Reply-To: <20180416035831.GO6014@localhost> On 16 April 2018 at 11:58, Vinod Koul <vinod.koul@intel.com> wrote: > On Fri, Apr 13, 2018 at 02:41:48PM +0800, Baolin Wang wrote: >> On 13 April 2018 at 14:36, Vinod Koul <vinod.koul@intel.com> wrote: >> > On Fri, Apr 13, 2018 at 02:17:34PM +0800, Baolin Wang wrote: >> > >> >> > Agreed, users only care about grabbing a channel, setting a descriptor and >> >> > submitting that. >> >> > >> >> > I think you need to go back and think about this a bit, please do go thru >> >> > dmaengine documentation and see other driver examples. >> >> > >> >> > We don't typically expose these to users, they give us a transfer and we set >> >> > that up in hardware for efficient. Its DMA so people expect us to use fastest >> >> > mechanism available. >> >> >> >> But there are some configuration are really special for Spreadtrum >> >> DMA, and must need user to specify how to configure, especially some >> >> scenarios of audio. So I wander if we can add one pointer for >> >> 'dma_slave_config' to expand some special DMA configuration >> >> requirements, like: >> >> >> >> struct dma_slave_config { >> >> ...... >> >> unsigned int slave_id; >> >> void *platform_data; >> >> }; >> >> >> >> So if some DMA has some special configuration (such as Spreadtrum >> >> DMA), they can user this platform_data pointer. Like xilinx DMA, they >> >> also have some special configuration. >> > >> > Well we all think our HW is special and needs some additional stuff, most of >> > the cases turns out not to be the case. >> > >> > Can you explain how audio in this case additional configuration... >> >> Beside the general configuration, our audio driver will configure the >> fragment length, block length, maybe transaction length, and they must >> specify the request type and interrupt type, these are what we want to >> export for users. > > As I said before, you need to derive fragment, block or transaction from I am sorry I did not make things clear here. What I mean is not only link list mode(prep_cyclic), but also other modes (prep_slave, prep_interleaved ...), users still need to configure the fragment length, block length or transaction length according to their requirements. > given prep_cyclic values. Interrupt type needs to be derived with the flags > passed. Please do see how other drivers make use of it. Fine. We configure the Interrupt type through the flags passed. -- Baolin.wang Best Regards
next reply other threads:[~2018-04-16 6:32 UTC|newest] Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-04-16 6:32 Baolin Wang [this message] 2018-04-16 6:32 ` [PATCH 4/5] dmaengine: sprd: Add Spreadtrum DMA configuration Baolin Wang -- strict thread matches above, loose matches on Subject: below -- 2018-04-18 5:40 [5/5] dmaengine: sprd: Add 'device_config' and 'device_prep_slave_sg' interfaces Baolin Wang 2018-04-18 5:40 ` [PATCH 5/5] " Baolin Wang 2018-04-17 10:45 [5/5] " Lars-Peter Clausen 2018-04-17 10:45 ` [PATCH 5/5] " Lars-Peter Clausen 2018-04-17 6:06 [4/5] dmaengine: sprd: Add Spreadtrum DMA configuration Baolin Wang 2018-04-17 6:06 ` [PATCH 4/5] " Baolin Wang 2018-04-16 15:35 [4/5] " Vinod Koul 2018-04-16 15:35 ` [PATCH 4/5] " Vinod Koul 2018-04-16 3:58 [4/5] " Vinod Koul 2018-04-16 3:58 ` [PATCH 4/5] " Vinod Koul 2018-04-13 10:48 [4/5] " Baolin Wang 2018-04-13 10:48 ` [PATCH 4/5] " Baolin Wang 2018-04-13 10:11 [4/5] " Vinod Koul 2018-04-13 10:11 ` [PATCH 4/5] " Vinod Koul 2018-04-13 6:41 [4/5] " Baolin Wang 2018-04-13 6:41 ` [PATCH 4/5] " Baolin Wang 2018-04-13 6:36 [4/5] " Vinod Koul 2018-04-13 6:36 ` [PATCH 4/5] " Vinod Koul 2018-04-13 6:17 [4/5] " Baolin Wang 2018-04-13 6:17 ` [PATCH 4/5] " Baolin Wang 2018-04-13 5:44 [4/5] " Baolin Wang 2018-04-13 5:44 ` [PATCH 4/5] " Baolin Wang 2018-04-13 3:43 [4/5] " Vinod Koul 2018-04-13 3:43 ` [PATCH 4/5] " Vinod Koul 2018-04-13 3:39 [4/5] " Vinod Koul 2018-04-13 3:39 ` [PATCH 4/5] " Vinod Koul 2018-04-12 11:36 [4/5] " Baolin Wang 2018-04-12 11:36 ` [PATCH 4/5] " Baolin Wang 2018-04-12 11:30 [4/5] " Baolin Wang 2018-04-12 11:30 ` [PATCH 4/5] " Baolin Wang 2018-04-12 9:37 [4/5] " Vinod Koul 2018-04-12 9:37 ` [PATCH 4/5] " Vinod Koul 2018-04-11 12:13 [4/5] " Baolin Wang 2018-04-11 12:13 ` [PATCH 4/5] " Baolin Wang 2018-04-11 10:51 [5/5] dmaengine: sprd: Add 'device_config' and 'device_prep_slave_sg' interfaces Baolin Wang 2018-04-11 10:51 ` [PATCH 5/5] " Baolin Wang 2018-04-11 10:49 [1/5] dmaengine: sprd: Define the DMA transfer step type Baolin Wang 2018-04-11 10:49 ` [PATCH 1/5] " Baolin Wang 2018-04-11 9:40 [5/5] dmaengine: sprd: Add 'device_config' and 'device_prep_slave_sg' interfaces Vinod Koul 2018-04-11 9:40 ` [PATCH 5/5] " Vinod Koul 2018-04-11 9:36 [4/5] dmaengine: sprd: Add Spreadtrum DMA configuration Vinod Koul 2018-04-11 9:36 ` [PATCH 4/5] " Vinod Koul 2018-04-11 9:24 [1/5] dmaengine: sprd: Define the DMA transfer step type Vinod Koul 2018-04-11 9:24 ` [PATCH 1/5] " Vinod Koul 2018-04-10 7:46 [5/5] dmaengine: sprd: Add 'device_config' and 'device_prep_slave_sg' interfaces Baolin Wang 2018-04-10 7:46 ` [PATCH 5/5] " Baolin Wang 2018-04-10 7:46 [4/5] dmaengine: sprd: Add Spreadtrum DMA configuration Baolin Wang 2018-04-10 7:46 ` [PATCH 4/5] " Baolin Wang 2018-04-10 7:46 [3/5] dmaengine: sprd: Move DMA request mode and interrupt type into head file Baolin Wang 2018-04-10 7:46 ` [PATCH 3/5] " Baolin Wang 2018-04-10 7:46 [2/5] dmaengine: sprd: Define the DMA data width type Baolin Wang 2018-04-10 7:46 ` [PATCH 2/5] " Baolin Wang 2018-04-10 7:46 [1/5] dmaengine: sprd: Define the DMA transfer step type Baolin Wang 2018-04-10 7:46 ` [PATCH 1/5] " Baolin Wang
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='CAMz4kuKbPZkJBF1ci5osntnHHD2nkm1d81=2GQohzc3KGn-wiw@mail.gmail.com' \ --to=baolin.wang@linaro.org \ --cc=broonie@kernel.org \ --cc=dan.j.williams@intel.com \ --cc=dmaengine@vger.kernel.org \ --cc=eric.long@spreadtrum.com \ --cc=linux-kernel@vger.kernel.org \ --cc=vinod.koul@intel.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: linkBe 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.