Add snd_dmaengine_pcm_get_quirks for I2S devices to query dma controller's quirks if they need it to make special workaround due to broken dma controller design Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> --- 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(+) diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c index 6fd1906..42136005 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_quirks - Get dmaengine quirks based PCM device + * @dev: Parent device the PCM was register with + */ +int snd_dmaengine_pcm_get_quirks(struct device *dev) +{ + 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 = dmaengine_get_quirks(pcm->chan[0]); + + return ret; +} +EXPORT_SYMBOL_GPL(snd_dmaengine_pcm_get_quirks); + MODULE_LICENSE("GPL"); -- 2.3.7 -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html