From: Sameer Pujar <spujar@nvidia.com> To: vkoul@kernel.org, dan.j.williams@intel.com, tiwai@suse.com Cc: jonathanh@nvidia.com, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Sameer Pujar <spujar@nvidia.com> Subject: [RFC] dmaengine: add fifo_size member Date: Tue, 30 Apr 2019 17:00:28 +0530 [thread overview] Message-ID: <1556623828-21577-1-git-send-email-spujar@nvidia.com> (raw) During the DMA transfers from memory to I/O, it was observed that transfers were inconsistent and resulted in glitches for audio playback. It happened because fifo size on DMA did not match with slave channel configuration. currently 'dma_slave_config' structure does not have a field for fifo size. Hence the platform pcm driver cannot pass the fifo size as a slave_config. Note that 'snd_dmaengine_dai_dma_data' structure has fifo_size field which cannot be used to pass the size info. This patch introduces fifo_size field and the same can be populated on slave side. Users can set required size for slave peripheral (multiple channels can be independently running with different fifo sizes) and the corresponding sizes are programmed through dma_slave_config on DMA side. Request for feedback/suggestions. Signed-off-by: Sameer Pujar <spujar@nvidia.com> --- include/linux/dmaengine.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index d49ec5c..9ec198b 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -351,6 +351,8 @@ enum dma_slave_buswidth { * @slave_id: Slave requester id. Only valid for slave channels. The dma * slave peripheral will have unique id as dma requester which need to be * pass as slave config. + * @fifo_size: Fifo size value. The dma slave peripheral can configure required + * fifo size and the same needs to be passed as slave config. * * This struct is passed in as configuration data to a DMA engine * in order to set up a certain channel for DMA transport at runtime. @@ -376,6 +378,7 @@ struct dma_slave_config { u32 dst_port_window_size; bool device_fc; unsigned int slave_id; + u32 fifo_size; }; /**
WARNING: multiple messages have this Message-ID (diff)
From: Sameer Pujar <spujar@nvidia.com> To: <vkoul@kernel.org>, <dan.j.williams@intel.com>, <tiwai@suse.com> Cc: <jonathanh@nvidia.com>, <dmaengine@vger.kernel.org>, <linux-kernel@vger.kernel.org>, Sameer Pujar <spujar@nvidia.com> Subject: [PATCH] [RFC] dmaengine: add fifo_size member Date: Tue, 30 Apr 2019 17:00:28 +0530 [thread overview] Message-ID: <1556623828-21577-1-git-send-email-spujar@nvidia.com> (raw) Message-ID: <20190430113028.ZD_Nc6lMXX4k5wsXTptC7fVWPgqxdNXSonUAhoML8gA@z> (raw) During the DMA transfers from memory to I/O, it was observed that transfers were inconsistent and resulted in glitches for audio playback. It happened because fifo size on DMA did not match with slave channel configuration. currently 'dma_slave_config' structure does not have a field for fifo size. Hence the platform pcm driver cannot pass the fifo size as a slave_config. Note that 'snd_dmaengine_dai_dma_data' structure has fifo_size field which cannot be used to pass the size info. This patch introduces fifo_size field and the same can be populated on slave side. Users can set required size for slave peripheral (multiple channels can be independently running with different fifo sizes) and the corresponding sizes are programmed through dma_slave_config on DMA side. Request for feedback/suggestions. Signed-off-by: Sameer Pujar <spujar@nvidia.com> --- include/linux/dmaengine.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index d49ec5c..9ec198b 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -351,6 +351,8 @@ enum dma_slave_buswidth { * @slave_id: Slave requester id. Only valid for slave channels. The dma * slave peripheral will have unique id as dma requester which need to be * pass as slave config. + * @fifo_size: Fifo size value. The dma slave peripheral can configure required + * fifo size and the same needs to be passed as slave config. * * This struct is passed in as configuration data to a DMA engine * in order to set up a certain channel for DMA transport at runtime. @@ -376,6 +378,7 @@ struct dma_slave_config { u32 dst_port_window_size; bool device_fc; unsigned int slave_id; + u32 fifo_size; }; /** -- 2.7.4
next reply other threads:[~2019-04-30 11:30 UTC|newest] Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-04-30 11:30 Sameer Pujar [this message] 2019-04-30 11:30 ` [PATCH] [RFC] dmaengine: add fifo_size member Sameer Pujar 2019-05-02 6:04 ` Vinod Koul 2019-05-02 6:04 ` [PATCH] " Vinod Koul 2019-05-02 10:53 ` Sameer Pujar 2019-05-02 12:25 ` Vinod Koul 2019-05-02 13:29 ` Sameer Pujar 2019-05-03 19:10 ` Peter Ujfalusi 2019-05-04 10:23 ` Vinod Koul 2019-05-06 13:04 ` Sameer Pujar 2019-05-06 15:50 ` Vinod Koul 2019-06-06 3:49 ` Sameer Pujar 2019-06-06 6:00 ` Peter Ujfalusi 2019-06-06 6:41 ` Sameer Pujar 2019-06-06 7:14 ` Jon Hunter 2019-06-06 10:22 ` Peter Ujfalusi 2019-06-06 10:49 ` Jon Hunter 2019-06-06 11:54 ` Peter Ujfalusi 2019-06-06 12:37 ` Jon Hunter 2019-06-06 13:45 ` Dmitry Osipenko 2019-06-06 13:55 ` Dmitry Osipenko 2019-06-06 14:26 ` Jon Hunter 2019-06-06 14:36 ` Jon Hunter 2019-06-06 14:36 ` Dmitry Osipenko 2019-06-06 14:47 ` Jon Hunter 2019-06-06 14:25 ` Jon Hunter 2019-06-06 15:18 ` Dmitry Osipenko 2019-06-06 16:32 ` Jon Hunter 2019-06-06 16:44 ` Dmitry Osipenko 2019-06-06 16:53 ` Jon Hunter 2019-06-06 17:25 ` Dmitry Osipenko 2019-06-06 17:56 ` Dmitry Osipenko 2019-06-07 9:24 ` Jon Hunter 2019-06-07 5:50 ` Peter Ujfalusi 2019-06-07 9:18 ` Jon Hunter 2019-06-07 10:27 ` Jon Hunter 2019-06-07 12:17 ` Peter Ujfalusi 2019-06-07 12:58 ` Jon Hunter 2019-06-07 13:35 ` Peter Ujfalusi 2019-06-07 20:53 ` Dmitry Osipenko 2019-06-10 8:01 ` Jon Hunter 2019-06-10 7:59 ` Jon Hunter 2019-06-13 4:43 ` Vinod Koul 2019-06-17 7:07 ` Sameer Pujar 2019-06-18 4:33 ` Vinod Koul 2019-06-20 10:29 ` Sameer Pujar 2019-06-24 6:26 ` Vinod Koul 2019-06-25 2:57 ` Sameer Pujar 2019-07-05 6:15 ` Sameer Pujar 2019-07-15 15:42 ` Sameer Pujar 2019-07-19 5:04 ` Vinod Koul 2019-07-23 5:54 ` Sameer Pujar 2019-07-29 6:10 ` Vinod Koul 2019-07-31 9:48 ` Jon Hunter 2019-07-31 15:16 ` Vinod Koul 2019-08-02 8:51 ` Jon Hunter 2019-08-08 12:38 ` Vinod Koul 2019-08-19 15:56 ` Jon Hunter 2019-08-20 11:05 ` Vinod Koul 2019-09-16 9:02 ` Sameer Pujar
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=1556623828-21577-1-git-send-email-spujar@nvidia.com \ --to=spujar@nvidia.com \ --cc=dan.j.williams@intel.com \ --cc=dmaengine@vger.kernel.org \ --cc=jonathanh@nvidia.com \ --cc=linux-kernel@vger.kernel.org \ --cc=tiwai@suse.com \ --cc=vkoul@kernel.org \ /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 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).