Merge branch 'for-2.6.32' into for-2.6.33
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 6 Oct 2009 15:01:27 +0000 (16:01 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 6 Oct 2009 15:01:27 +0000 (16:01 +0100)
1  2 
sound/soc/davinci/davinci-pcm.c
sound/soc/pxa/pxa-ssp.c

@@@ -66,53 -66,38 +66,53 @@@ static void davinci_pcm_enqueue_dma(str
        dma_addr_t dma_pos;
        dma_addr_t src, dst;
        unsigned short src_bidx, dst_bidx;
 +      unsigned short src_cidx, dst_cidx;
        unsigned int data_type;
        unsigned short acnt;
        unsigned int count;
 +      unsigned int fifo_level;
  
        period_size = snd_pcm_lib_period_bytes(substream);
        dma_offset = prtd->period * period_size;
        dma_pos = runtime->dma_addr + dma_offset;
 +      fifo_level = prtd->params->fifo_level;
  
        pr_debug("davinci_pcm: audio_set_dma_params_play channel = %d "
                "dma_ptr = %x period_size=%x\n", lch, dma_pos, period_size);
  
        data_type = prtd->params->data_type;
        count = period_size / data_type;
 +      if (fifo_level)
 +              count /= fifo_level;
  
        if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
                src = dma_pos;
                dst = prtd->params->dma_addr;
                src_bidx = data_type;
                dst_bidx = 0;
 +              src_cidx = data_type * fifo_level;
 +              dst_cidx = 0;
        } else {
                src = prtd->params->dma_addr;
                dst = dma_pos;
                src_bidx = 0;
                dst_bidx = data_type;
 +              src_cidx = 0;
 +              dst_cidx = data_type * fifo_level;
        }
  
        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, acnt, count, 1, 0, ASYNC);
 +
 +      edma_set_src_index(lch, src_bidx, src_cidx);
 +      edma_set_dest_index(lch, dst_bidx, dst_cidx);
 +
 +      if (!fifo_level)
 +              edma_set_transfer_params(lch, acnt, count, 1, 0, ASYNC);
 +      else
 +              edma_set_transfer_params(lch, acnt, fifo_level, count,
 +                                                      fifo_level, ABSYNC);
  
        prtd->period++;
        if (unlikely(prtd->period >= runtime->periods))
@@@ -153,7 -138,7 +153,7 @@@ static int davinci_pcm_dma_request(stru
        prtd->master_lch = ret;
  
        /* Request parameter RAM reload slot */
-       ret = edma_alloc_slot(EDMA_SLOT_ANY);
+       ret = edma_alloc_slot(EDMA_CTLR(prtd->master_lch), EDMA_SLOT_ANY);
        if (ret < 0) {
                edma_free_channel(prtd->master_lch);
                return ret;
         * so davinci_pcm_enqueue_dma() takes less time in IRQ.
         */
        edma_read_slot(prtd->slave_lch, &p_ram);
-       p_ram.opt |= TCINTEN | EDMA_TCC(prtd->master_lch);
-       p_ram.link_bcntrld = prtd->slave_lch << 5;
+       p_ram.opt |= TCINTEN | EDMA_TCC(EDMA_CHAN_SLOT(prtd->master_lch));
+       p_ram.link_bcntrld = EDMA_CHAN_SLOT(prtd->slave_lch) << 5;
        edma_write_slot(prtd->slave_lch, &p_ram);
  
        return 0;
diff --combined sound/soc/pxa/pxa-ssp.c
@@@ -305,8 -305,8 +305,8 @@@ static int pxa_ssp_set_dai_clkdiv(struc
  /*
   * Configure the PLL frequency pxa27x and (afaik - pxa320 only)
   */
 -static int pxa_ssp_set_dai_pll(struct snd_soc_dai *cpu_dai,
 -      int pll_id, unsigned int freq_in, unsigned int freq_out)
 +static int pxa_ssp_set_dai_pll(struct snd_soc_dai *cpu_dai, int pll_id,
 +      int source, unsigned int freq_in, unsigned int freq_out)
  {
        struct ssp_priv *priv = cpu_dai->private_data;
        struct ssp_device *ssp = priv->dev.ssp;
                        do_div(tmp, freq_out);
                        val = tmp;
  
-                       val = (val << 16) | 64;;
+                       val = (val << 16) | 64;
                        ssp_write_reg(ssp, SSACDD, val);
  
                        ssacd |= (0x6 << 4);
@@@ -760,13 -760,13 +760,13 @@@ struct snd_soc_dai pxa_ssp_dai[] = 
                .resume = pxa_ssp_resume,
                .playback = {
                        .channels_min = 1,
 -                      .channels_max = 2,
 +                      .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                },
                .capture = {
                         .channels_min = 1,
 -                       .channels_max = 2,
 +                       .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                 },
                .resume = pxa_ssp_resume,
                .playback = {
                        .channels_min = 1,
 -                      .channels_max = 2,
 +                      .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                },
                .capture = {
                        .channels_min = 1,
 -                      .channels_max = 2,
 +                      .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                 },
                .resume = pxa_ssp_resume,
                .playback = {
                        .channels_min = 1,
 -                      .channels_max = 2,
 +                      .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                },
                .capture = {
                        .channels_min = 1,
 -                      .channels_max = 2,
 +                      .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                 },
                .resume = pxa_ssp_resume,
                .playback = {
                        .channels_min = 1,
 -                      .channels_max = 2,
 +                      .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                },
                .capture = {
                        .channels_min = 1,
 -                      .channels_max = 2,
 +                      .channels_max = 8,
                        .rates = PXA_SSP_RATES,
                        .formats = PXA_SSP_FORMATS,
                 },