Message ID | 1444872998-2548-1-git-send-email-shawn.lin@rock-chips.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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. >
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");
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(+)