[alsa-devel] [PATCH 1/2] ASoC: DaVinci: McASP driver enhacements

Troy Kisky troy.kisky at boundarydevices.com
Fri Aug 7 21:59:05 CEST 2009


Chaithrika U S wrote:
> ---
>  sound/soc/davinci/davinci-mcasp.c |  113 ++++++++++++++++++++++++++++++++++--
>  sound/soc/davinci/davinci-mcasp.h |    5 ++
>  sound/soc/davinci/davinci-pcm.c   |    4 +-
>  sound/soc/davinci/davinci-pcm.h   |    1 +
>  4 files changed, 115 insertions(+), 8 deletions(-)

.....
> diff --git a/sound/soc/davinci/davinci-pcm.c b/sound/soc/davinci/davinci-pcm.c
> index 8fd0c3c..1e2dfd0 100644
> --- a/sound/soc/davinci/davinci-pcm.c
> +++ b/sound/soc/davinci/davinci-pcm.c
> @@ -67,6 +67,7 @@ static void davinci_pcm_enqueue_dma(struct snd_pcm_substream *substream)
>  	dma_addr_t src, dst;
>  	unsigned short src_bidx, dst_bidx;
>  	unsigned int data_type;
> +	unsigned short acnt;
>  	unsigned int count;
>  
>  	period_size = snd_pcm_lib_period_bytes(substream);
> @@ -91,11 +92,12 @@ static void davinci_pcm_enqueue_dma(struct snd_pcm_substream *substream)
>  		dst_bidx = data_type;
>  	}
>  
> +	acnt = prtd->params->acnt;
>  	edma_set_src(lch, src, INCR, W8BIT);
>  	edma_set_dest(lch, dst, INCR, W8BIT);
>  	edma_set_src_index(lch, src_bidx, 0);
>  	edma_set_dest_index(lch, dst_bidx, 0);
> -	edma_set_transfer_params(lch, data_type, count, 1, 0, ASYNC);
> +	edma_set_transfer_params(lch, acnt, count, 1, 0, ASYNC);

Since I see no change to davinci-i2s, I think this will break any platform which
uses davinci-i2s.

>  
>  	prtd->period++;
>  	if (unlikely(prtd->period >= runtime->periods))
> diff --git a/sound/soc/davinci/davinci-pcm.h b/sound/soc/davinci/davinci-pcm.h
> index eb4287f..63d9625 100644
> --- a/sound/soc/davinci/davinci-pcm.h
> +++ b/sound/soc/davinci/davinci-pcm.h
> @@ -19,6 +19,7 @@
>  struct davinci_pcm_dma_params {
>  	char *name;			/* stream identifier */
>  	int channel;			/* sync dma channel ID */
> +	unsigned short acnt;
>  	dma_addr_t dma_addr;		/* device physical address for DMA */
>  	enum dma_event_q eventq_no;	/* event queue number */
>  	unsigned char data_type;	/* xfer data type */



More information about the Alsa-devel mailing list