[v6,09/10] snd: dmaengine-pcm: add snd_dmaengine_pcm_get_caps interface
diff mbox

Message ID 1444872998-2548-1-git-send-email-shawn.lin@rock-chips.com
State New
Headers show

Commit Message

Shawn Lin Oct. 15, 2015, 1:36 a.m. UTC
Add snd_dmaengine_pcm_get_caps for I2S devices to query
dma controller's caps if they need it to make special limitation
due to specific dma controller design

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

---

Changes in v6:
- remove get quirks and add get slave caps

Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None
Changes in v1: None

 sound/soc/soc-generic-dmaengine-pcm.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Comments

kbuild test robot Oct. 15, 2015, 3:07 a.m. UTC | #1
Hi Shawn,

[auto build test WARNING on rockchip/for-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url:    https://github.com/0day-ci/linux/commits/Shawn-Lin/Fix-broken-DMAFLUSHP-on-Rockchips-platform/20151015-094613
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

>> sound/soc/soc-generic-dmaengine-pcm.c:475: warning: No description found for parameter 'caps'

vim +/caps +475 sound/soc/soc-generic-dmaengine-pcm.c

   459			return;
   460	
   461		pcm = soc_platform_to_pcm(platform);
   462	
   463		snd_soc_remove_platform(platform);
   464		dmaengine_pcm_release_chan(pcm);
   465		kfree(pcm);
   466	}
   467	EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_unregister);
   468	
   469	
   470	/**
   471	 * snd_dmaengine_pcm_get_caps - Get slave dma caps based PCM device
   472	 * @dev: Parent device the PCM was register with
   473	 */
   474	int snd_dmaengine_pcm_get_caps(struct device *dev, struct dma_slave_caps *caps)
 > 475	{
   476		struct snd_soc_platform *platform;
   477		struct dmaengine_pcm *pcm;
   478		int ret = -ENODEV;
   479	
   480		platform = snd_soc_lookup_platform(dev);
   481		if (!platform)
   482			return ret;
   483	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Vinod Koul Oct. 15, 2015, 4:05 a.m. UTC | #2
On Thu, Oct 15, 2015 at 09:36:38AM +0800, Shawn Lin wrote:
> +int snd_dmaengine_pcm_get_caps(struct device *dev, struct dma_slave_caps *caps)
> +{
> +	struct snd_soc_platform *platform;
> +	struct dmaengine_pcm *pcm;
> +	int ret = -ENODEV;
> +
> +	platform = snd_soc_lookup_platform(dev);
> +	if (!platform)
> +		return ret;
> +
> +	pcm = soc_platform_to_pcm(platform);
> +
> +	if (pcm->chan)
> +		ret = dma_get_slave_caps(pcm->chan[0], caps);
> +
> +	return ret;
> +}
> +EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_get_caps);

I don't see the need of this wrapper if you are not going to use this inside
common code.. Why not read this in driver, anyway you setting taht up in
next patch
Shawn Lin Oct. 15, 2015, 6:50 a.m. UTC | #3
On 2015/10/15 12:05, Vinod Koul wrote:
> On Thu, Oct 15, 2015 at 09:36:38AM +0800, Shawn Lin wrote:
>> +int snd_dmaengine_pcm_get_caps(struct device *dev, struct dma_slave_caps *caps)
>> +{
>> +	struct snd_soc_platform *platform;
>> +	struct dmaengine_pcm *pcm;
>> +	int ret = -ENODEV;
>> +
>> +	platform = snd_soc_lookup_platform(dev);
>> +	if (!platform)
>> +		return ret;
>> +
>> +	pcm = soc_platform_to_pcm(platform);
>> +
>> +	if (pcm->chan)
>> +		ret = dma_get_slave_caps(pcm->chan[0], caps);
>> +
>> +	return ret;
>> +}
>> +EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_get_caps);
>
> I don't see the need of this wrapper if you are not going to use this inside
> common code.. Why not read this in driver, anyway you setting taht up in
> next patch

okay, I will read it in driver directly.

Thanks.

>

Patch
diff mbox

diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c
index 6fd1906..225c933 100644
--- a/sound/soc/soc-generic-dmaengine-pcm.c
+++ b/sound/soc/soc-generic-dmaengine-pcm.c
@@ -466,4 +466,28 @@  void snd_dmaengine_pcm_unregister(struct device *dev)
 }
 EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_unregister);
 
+
+/**
+ * snd_dmaengine_pcm_get_caps - Get slave dma caps based PCM device
+ * @dev: Parent device the PCM was register with
+ */
+int snd_dmaengine_pcm_get_caps(struct device *dev, struct dma_slave_caps *caps)
+{
+	struct snd_soc_platform *platform;
+	struct dmaengine_pcm *pcm;
+	int ret = -ENODEV;
+
+	platform = snd_soc_lookup_platform(dev);
+	if (!platform)
+		return ret;
+
+	pcm = soc_platform_to_pcm(platform);
+
+	if (pcm->chan)
+		ret = dma_get_slave_caps(pcm->chan[0], caps);
+
+	return ret;
+}
+EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_get_caps);
+
 MODULE_LICENSE("GPL");