1. 08 11月, 2013 1 次提交
  2. 07 11月, 2013 1 次提交
  3. 06 11月, 2013 1 次提交
    • O
      ASoC: fsl: imx-pcm-fiq: remove bogus period delta calculation · 68f9672b
      Oskar Schirmer 提交于
      Originally snd_hrtimer_callback() used iprtd->period_time for
      some jiffies based estimation to determine the right moment
      to call snd_pcm_period_elapsed(). As timer drifts may well be a
      problem, this was changed in commit b4e82b5b to be based
      on buffer transmission progress, using iprtd->offset and
      runtime->buffer_size to calculate the amount of data since last
      period had elapsed.
      
      Unfortunately, iprtd->offset counts in bytes, while
      runtime->buffer_size counts frames, so adding these to find some
      delta is like comparing apples and oranges, and eventually results
      in negative delta values every now and then. This is no big harm,
      because it simply causes snd_pcm_period_elapsed() being called
      more often than necessary, as negative delta is taken for a
      large unsigned value by implicit conversion rule.
      Nonetheless, the calculation is broken, so one would replace
      the runtime->buffer_size by its equivalent in bytes.
      
      But then, there are chances snd_pcm_period_elapsed() is called
      late, because calculating the moment for the elapsed period
      into delta is based against the iprtd->last_offset, which is not
      necessarily the first byte of the period in question, but some
      random byte which the FIQ handler left us with in r8/r9 by
      accident. Again, negative impact is low, as there are plenty of
      periods already prefilled with data, and snd_pcm_period_elapsed()
      will probably be called latest when the following period is
      reached. However, the calculation is conceptually broken, and we
      are best off removing the clever stuff altogether.
      
      snd_pcm_period_elapsed() is now simply called once everytime
      snd_hrtimer_callback() is run, which may not be most accurate,
      but at least this way we are quite sure we dont miss an end of
      period. There is not much extra effort wasted by superfluous
      calls to snd_pcm_period_elapsed(), as the timer frequency
      closely matches the period size anyway.
      Signed-off-by: NOskar Schirmer <oskar@scara.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      68f9672b
  4. 05 11月, 2013 2 次提交
    • N
      ASoC: Add pinctrl PM to components of active DAIs · 988e8cc4
      Nicolin Chen 提交于
      It's quite popular that more drivers are using pinctrl PM, for example:
      (Documentation/devicetree/bindings/arm/primecell.txt). Just like what
      runtime PM does, it would deactivate and activate pin group depending
      on whether it's being used or not.
      
      And this pinctrl PM might be also beneficial to cpu dai drivers because
      they might have actual pinctrl so as to sleep their pins and wake them
      up as needed.
      
      To achieve this goal, this patch sets pins to the default state during
      resume or startup; While during suspend and shutdown, it would set pins
      to the sleep state.
      
      As pinctrl PM would return zero if there is no such pinctrl sleep state
      settings, this patch would not break current ASoC subsystem directly.
      
      [ However, there is still an exception that the patch can not handle,
      that is, when cpu dai driver does not have pinctrl property but another
      device has it. (The AUDMUX <-> SSI on Freescale i.MX6 series for example.
      SSI as a cpu dai doesn't contain pinctrl property while AUDMUX, an Audio
      Multiplexer, has it). In this case, this kind of cpu dai driver needs to
      find a way to obtain the pinctrl property as its own, by moving property
      from AUDMUX to SSI, or creating a pins link/dependency between these two
      devices, or using a more decent way after we figure it out. ]
      Signed-off-by: NNicolin Chen <b42378@freescale.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      988e8cc4
    • N
      ASoC: wm_adsp: Interpret ADSP memory region lengths as 32 bit words · c01422a4
      Nariman Poushin 提交于
      Pad the ADSP word (3 bytes) to 4 bytes in the kernel and calculate
      lengths based on padded ADSP words instead of treating them as bytes
      Signed-off-by: NNariman Poushin <nariman@opensource.wolfsonmicro.com>
      Signed-off-by: NDimitris Papastamos <dp@opensource.wolfsonmicro.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      Cc: stable@vger.kernel.org
      c01422a4
  5. 02 11月, 2013 5 次提交
  6. 01 11月, 2013 5 次提交
  7. 31 10月, 2013 3 次提交
  8. 30 10月, 2013 1 次提交
  9. 29 10月, 2013 2 次提交
  10. 27 10月, 2013 1 次提交
  11. 26 10月, 2013 3 次提交
  12. 24 10月, 2013 3 次提交
    • M
      ASoC: dmaengine: Use filter_data rather than dma_data for compat requests · 90130d2e
      Mark Brown 提交于
      When using the legacy filter function channel requests we currently pass
      the audio specific struct snd_dmaengine_dai_dma_data which isn't likely to
      be helpful for actual filtering. Since there's already a field in the
      structure called filter_data clearly intended for use here convert the
      driver to use that.
      
      All existing users of plain filter functions have been converted to use
      an explicit compat function to override this behaviour except i.MX which
      is working around this issue in its filter function and is updated to
      just use filter_data directly here.
      Signed-off-by: NMark Brown <broonie@linaro.org>
      Acked-by: NLars-Peter Clausen <lars@metafoo.de>
      90130d2e
    • M
      ASoC: dmaengine: Support custom channel names · ea73b7dd
      Mark Brown 提交于
      Some devices have more than just simple TX and RX DMA channels, for example
      modern Samsung I2S IPs support a secondary transmit DMA stream which is
      mixed into the primary stream during playback. Allow such devices to
      specify the names of the channels to be requested in their dma_data.
      Signed-off-by: NMark Brown <broonie@linaro.org>
      Acked-by: NLars-Peter Clausen <lars@metafoo.de>
      ea73b7dd
    • T
      ALSA: hda - Fix unbalanced runtime PM refcount after S3/S4 · e6bbe666
      Takashi Iwai 提交于
      When a machine goes to S3/S4 after power-save is enabled, the runtime
      PM refcount might be incorrectly decreased because the power-down
      triggered soon after resume assumes that the controller was already
      powered up, and issues the pm_notify down.
      
      This patch fixes the incorrect pm_notify call simply by checking the
      current value properly.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      e6bbe666
  13. 23 10月, 2013 2 次提交
  14. 21 10月, 2013 1 次提交
  15. 20 10月, 2013 2 次提交
    • L
      ASoC: dmaengine-pcm: Provide default config · fa654e08
      Lars-Peter Clausen 提交于
      This patch adds some default settings for the generic dmaengine PCM driver for
      the case that no config has been supplied. The following defaults are used:
      	* Use snd_dmaengine_pcm_prepare_slave_config for preparing the DMA slave
      	  config.
      	* 512kB for the prealloc buffer size. This value has been chosen based on
      	  'feels about right' and is not backed up by any scientific facts. We
      	  may need to come up with something smarter in the future but it should
      	  work fine for now.
      
      With this infrastructure in place we can finally write DAI drivers which are
      independent of the DMA controller they are connected to. This is e.g. useful if
      the DAI IP core is reused across different SoCs, but the SoCs uses different DMA
      controllers.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      fa654e08
    • L
      ASoC: dmaengine-pcm: Add support for querying DMA capabilities · c0de42bf
      Lars-Peter Clausen 提交于
      Currently each platform making use the the generic dmaengine PCM driver still
      needs to provide a custom snd_pcm_hardware struct which specifies the
      capabilities of the DMA controller, e.g. the maximum period size that can be
      supported. This patch adds code which uses the newly introduced
      dma_get_slave_caps() API to query this information from the dmaengine driver.
      The new code path will only be taken if the 'pcm_hardware' field of the
      snd_dmaengine_pcm_config struct is NULL.
      
      The patch also introduces a new 'fifo_size' field to the
      snd_dmaengine_dai_dma_data struct which is used to initialize the
      snd_pcm_hardware 'fifo_size' field and needs to be set by the DAI driver.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      c0de42bf
  16. 18 10月, 2013 1 次提交
  17. 17 10月, 2013 1 次提交
  18. 16 10月, 2013 1 次提交
  19. 15 10月, 2013 1 次提交
    • T
      ALSA: us122l: Fix pcm_usb_stream mmapping regression · ac536a84
      Takashi Iwai 提交于
      The pcm_usb_stream plugin requires the mremap explicitly for the read
      buffer, as it expands itself once after reading the required size.
      But the commit [314e51b9: mm: kill vma flag VM_RESERVED and
      mm->reserved_vm counter] converted blindly to a combination of
      VM_DONTEXPAND | VM_DONTDUMP like other normal drivers, and this
      resulted in the failure of mremap().
      
      For fixing this regression, we need to remove VM_DONTEXPAND for the
      read-buffer mmap.
      Reported-and-tested-by: NJames Miller <jamesstewartmiller@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ac536a84
  20. 14 10月, 2013 3 次提交