1. 24 12月, 2012 2 次提交
  2. 15 12月, 2012 1 次提交
    • M
      ASoC: Prevent pop_wait overwrite · 9bffb1fb
      Misael Lopez Cruz 提交于
      pop_wait is used to determine if a deferred playback close
      needs to be cancelled when the a PCM is open or if after
      the power-down delay expires it needs to run. pop_wait is
      associated with the CODEC DAI, so the CODEC DAI must be
      unique. This holds true for most CODECs, except for the
      dummy CODEC and its DAI.
      
      In DAI links with non-unique dummy CODECs (e.g. front-ends),
      pop_wait can be overwritten by another DAI link using also a
      dummy CODEC. Failure to cancel a deferred close can cause
      mute due to the DAPM STOP event sent in the deferred work.
      
      One scenario where pop_wait is overwritten and causing mute
      is below (where hw:0,0 and hw:0,1 are two front-ends with
      default pmdown_time = 5 secs):
      
      aplay /dev/urandom -D hw:0,0 -c 2 -r 48000 -f S16_LE -d 1
      sleep 1
      aplay /dev/urandom -D hw:0,1 -c 2 -r 48000 -f S16_LE -d 3 &
      aplay /dev/urandom -D hw:0,0 -c 2 -r 48000 -f S16_LE
      
      Since CODECs may not be unique, pop_wait is moved to the PCM
      runtime structure. Creating separate dummy CODECs for each
      DAI link can also solve the problem, but at this point it's
      only pop_wait variable in the CODEC DAI that has negative
      effects by not being unique.
      Signed-off-by: NMisael Lopez Cruz <misael.lopez@ti.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      9bffb1fb
  3. 10 12月, 2012 5 次提交
  4. 09 12月, 2012 29 次提交
  5. 07 12月, 2012 3 次提交
    • P
      ASoC: Samsung: Do not register samsung audio dma device as pdev · a08485d8
      Padmavathi Venna 提交于
      Previously, the ASoC 'platform' (PCM/DMA) object was instantiated via a
      platform_device. This didn't represent the hardware well, since there
      was no separate hardware associated with this platform_device; it was a
      virtual device with sole purpose to call snd_soc_register_platform().
      
      This change removes the platform_device completely. Each Samsung DAI now
      registers the ASoC 'platform' itself. Machine drivers are adjusted for
      the new 'platform' name.
      Signed-off-by: NPadmavathi Venna <padma.v@samsung.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      a08485d8
    • D
      ASoC: McASP: implement a way to force BCLK/LRCLK ratios · 1b3bc060
      Daniel Mack 提交于
      Depending on the Codec, the the BCLK/LRCLK ratio might not be freely
      chosen by the CPU DAI.
      
      For example, some Codec might want to be supplied with 32-bit samples
      for both its channels regardless of the actual audio word size the CPU
      sends. In such cases, the rest of the bits on the data lines must be
      padded with zeros:
      
                _______________________________
      LRCLK    /                               \
            --'                                 `---------- .....
      
      BCLK  ||||||||||||||||||||||||||||||||||||||||||||||| .....
      
      DATA  ____||||||||||||||||_________________|||||||||| .....
      
                |<--  data  -->|<--   pads  --> |
      
      This patch adds a new clock divider to configure the BCLK/LRCLK ratio.
      If the machine code uses that divider, the driver uses the specified
      value, instead of deriving that information from the audio word size.
      
      Otherwise, the original behaviour is retained.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      1b3bc060
    • D
      ASoC: McASP: calculate values for channel size · ba764b3d
      Daniel Mack 提交于
      Change davinci_config_channel_size() to derive the values for XSSZ and
      XROT in DAVINCI_MCASP_[RT]XFMT_REG from the configured word length
      rather than hard-coding them in a switch/case block.
      
      Also, by directly passing the word length to
      davinci_config_channel_size(), we can get rid of the
      DAVINCI_AUDIO_WORD_* enum.
      Signed-off-by: NDaniel Mack <zonque@gmail.com>
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      ba764b3d