[alsa-devel] [PATCH V3 3/4] ASoC: SAMSUNG: Modify I2S driver to support idma

Jassi Brar jassisinghbrar at gmail.com
Sun Jun 26 10:57:14 CEST 2011


On Mon, Jun 20, 2011 at 1:06 PM, Sangbeom Kim <sbkim73 at samsung.com> wrote:
> +
> +       if (is_secondary(i2s)) {
> +               ahb |= (AHB_DMARLD | AHB_INTMASK);

> +               mod |= MOD_TXS_IDMA;
This unconditional setting stealthily switches to using iDMA. Sorry I
didn't notice it in last revision.

> +               writel(ahb, i2s->addr + I2SAHB);
> +       }
> +
I meant, this is _dma_ related setting of post-24xx
So it had better be done in hw_params of idma.c

> @@ -1068,6 +1079,8 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
>                        ret = -ENOMEM;
>                        goto err2;
>                }
> +               idma_reg_addr_init((void *)ioremap(regs_base, 0x100),
> +                                       i2s_cfg->idma_addr);

Oh dear! Not a great idea to do multiple mapping, even worse is doing
it transiently during a function call.
Perhaps provide base and iBuff address via platform data of samsung-idma
and pass only _once_ ioremap'ed address from here.


More information about the Alsa-devel mailing list