Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 3 Oct 2009 18:25:30 +0000 (11:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 3 Oct 2009 18:25:30 +0000 (11:25 -0700)
* 'for-linus' of ssh://master.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (21 commits)
  ALSA: usb - Use strlcat() correctly
  ALSA: Fix invalid __exit in sound/mips/*.c
  ALSA: hda - Fix / improve ALC66x parser
  ALSA: ctxfi: Swapped SURROUND-SIDE mute
  sound: Make keywest_driver static
  ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-B1VP
  ALSA: hda - Fix digita/analog mic auto-switching with IDT codecs
  ASoC: fix kconfig order of Blackfin drivers
  ALSA: hda - Added quirk to enable sound on Toshiba NB200
  ASoC: Fix dependency of CONFIG_SND_PXA2XX_SOC_IMOTE2
  ALSA: Don't assume i2c device probing always succeeds
  ALSA: intel8x0 - Mute External Amplifier by default for Sony VAIO VGN-T350P
  ALSA: echoaudio - Re-enable the line-out control for the Mia card
  ALSA: hda - Resurrect input-source mixer of ALC268 model=acer
  ALSA: hda - Analog Devices AD1984A add HP Touchsmart model
  ALSA: hda - Add HP Pavilion dv4t-1300 to MSI whitelist
  ALSA: hda - CD-audio sound for hda-intel conexant benq laptop
  ASoC: DaVinci: Correct McASP FIFO initialization
  ASoC: Davinci: Fix race with cpu_dai->dma_data
  ASoC: DaVinci: Fix divide by zero error during 1st execution
  ...

1  2 
Documentation/sound/alsa/HD-Audio-Models.txt
sound/soc/davinci/davinci-pcm.c

@@@ -209,6 -209,7 +209,7 @@@ AD1884A / AD1883 / AD1984A / AD1984
    laptop      laptop with HP jack sensing
    mobile      mobile devices with HP jack sensing
    thinkpad    Lenovo Thinkpad X300
+   touchsmart  HP Touchsmart
  
  AD1884
  ======
@@@ -387,7 -388,7 +388,7 @@@ STAC92HD73
  STAC92HD83*
  ===========
    ref         Reference board
 -  mic-ref     Reference board with power managment for ports
 +  mic-ref     Reference board with power management for ports
    dell-s14    Dell laptop
    auto                BIOS setup (default)
  
@@@ -126,16 -126,9 +126,9 @@@ static void davinci_pcm_dma_irq(unsigne
  static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
  {
        struct davinci_runtime_data *prtd = substream->runtime->private_data;
        struct edmacc_param p_ram;
        int ret;
  
-       if (!dma_data)
-               return -ENODEV;
-       prtd->params = dma_data;
        /* Request master DMA channel */
        ret = edma_alloc_channel(prtd->params->channel,
                                  davinci_pcm_dma_irq, substream,
        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;
@@@ -244,6 -237,11 +237,11 @@@ static int davinci_pcm_open(struct snd_
        struct snd_pcm_runtime *runtime = substream->runtime;
        struct davinci_runtime_data *prtd;
        int ret = 0;
+       struct snd_soc_pcm_runtime *rtd = substream->private_data;
+       struct davinci_pcm_dma_params *pa = rtd->dai->cpu_dai->private_data;
+       struct davinci_pcm_dma_params *params = &pa[substream->stream];
+       if (!params)
+               return -ENODEV;
  
        snd_soc_set_runtime_hwparams(substream, &davinci_pcm_hardware);
        /* ensure that buffer size is a multiple of period size */
                return -ENOMEM;
  
        spin_lock_init(&prtd->lock);
+       prtd->params = params;
  
        runtime->private_data = prtd;