At Wed, 18 Dec 2013 10:16:36 +0100, Lars-Peter Clausen wrote:
On 12/18/2013 06:55 AM, Qiao Zhou wrote:
On 12/17/2013 10:42 PM, Lars-Peter Clausen wrote:
On 12/17/2013 01:49 PM, Mark Brown wrote:
On Tue, Dec 17, 2013 at 04:22:24PM +0800, Qiao Zhou wrote:
use snd_dmaengine_pcm_prepare_slave_config to set slave config, and remove the max_burst_size = 4 hard code.
select SND_SOC_GENERIC_DMAENGINE_PCM for mmp-pcm.
Applied, thanks. Can you also convert to use snd_dmaengine_pcm_register() and remove this file completely?
The problem here is that the driver uses sram for its audio memory and the platform has a custom function for looking up the sram pool. What we really need is a generic version of that which we can use in memalloc.c in the core.
- Lars
I'll check the general memalloc implementation. Thanks.
It's a bit dirty but if nobody has any strong objections we could add the following temporary hack until there is a generic method for looking up genpools. This would allow us to cut down mmp-pcm.c quite a bit by switching it over to the generic dmaengine PCM driver.
SNDRV_DMA_TYPE_DEV_IRAM is specific to such machines, so I have no big objection (as long as we can remember for the later revisit :)
thanks,
Takashi
--- a/sound/core/memalloc.c +++ b/sound/core/memalloc.c @@ -178,6 +178,15 @@ static void snd_malloc_dev_iram(struct snd_dma_buffer *dmab, size_t size) if (dev->of_node) pool = of_get_named_gen_pool(dev->of_node, "iram", 0);
+#ifdef CONFIG_CPU_MMP2
- /*
* Temporary hack until we have a generic gen_pool lookup
* infrastructure.
*/
- if (!pool)
pool = sram_get_gpool("asram");
+#endif
- if (!pool) return;