1. 07 7月, 2015 1 次提交
  2. 13 5月, 2015 2 次提交
  3. 28 4月, 2015 1 次提交
    • L
      ASoC: dmaengine_pcm: Make FLAG_NO_RESIDUE internal · acde50a7
      Lars-Peter Clausen 提交于
      Whether residue can be reported or not is not a property of the audio
      controller but of the DMA controller. The FLAG_NO_RESIDUE was initially
      added when the DMAengine framework had no support for describing the residue
      reporting capabilities of the controller. Support for this was added quite a
      while ago and recently the DMAengine framework started to complain if a
      driver does not describe its capabilities and a lot of patches have been
      merged that add support for this where it was missing. So it should be safe
      to assume that driver on actively used platforms properly implement the DMA
      capabilities API.
      
      This patch makes the FLAG_NO_RESIDUE internal and no longer allows audio
      controller drivers to manually set the flag. If a DMA driver against
      expectations does not support reporting its capabilities for now the generic
      DMAengine PCM driver will now emit a warning and simply assume that residue
      reporting is not supported. In the future this might be changed to aborting
      with an error.
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      acde50a7
  4. 09 1月, 2015 1 次提交
  5. 20 10月, 2014 1 次提交
  6. 01 9月, 2014 1 次提交
    • X
      ASoC: fsl-sai: using 'lsb-first' property instead of 'big-endian-data'. · eadb0019
      Xiubo Li 提交于
      The 'big-endian-data' property is originally used to indicate whether the
      LSB firstly or MSB firstly will be transmitted to the CODEC or received
      from the CODEC, and there has nothing relation to the memory data.
      
      Generally, if the audio data in big endian format, which will be using the
      bytes reversion, Here this can only be used to bits reversion.
      
      So using the 'lsb-first' instead of 'big-endian-data' can make the code
      to be readable easier and more easy to understand what this property is
      used to do.
      
      This property used for configuring whether the LSB or the MSB is transmitted
      first for the fifo data.
      Signed-off-by: NXiubo Li <Li.Xiubo@freescale.com>
      Acked-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      eadb0019
  7. 28 8月, 2014 1 次提交
  8. 17 8月, 2014 5 次提交
    • N
      ASoC: fsl_sai: Set SYNC bit of TCR2 to Asynchronous Mode · 855675f6
      Nicolin Chen 提交于
      There is one design rule according to SAI's reference manual:
      If the transmitter bit clock and frame sync are to be used by both transmitter
      and receiver, the transmitter must be configured for asynchronous operation
      and the receiver for synchronous operation.
      
      And SYNC of TCR2 is a 2-width control bit:
      00 Asynchronous mode.
      01 Synchronous with receiver.
      10 Synchronous with another SAI transmitter.
      11 Synchronous with another SAI receiver.
      
      So the driver should have set SYNC bit of TCR2 to 0x0, and meanwhile set SYNC
      bit of RCR2 to 0x1 (Synchronous with transmitter).
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      855675f6
    • N
      ASoC: fsl_sai: Make Synchronous and Asynchronous modes exclusive · ce7344a4
      Nicolin Chen 提交于
      The previous patch (ASoC: fsl_sai: Add asynchronous mode support) added
      new Device Tree bindings for Asynchronous and Synchronous modes support.
      However, these two shall not be present at the same time.
      
      So this patch just simply makes them exclusive so as to avoid incorrect
      Device Tree binding usage.
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      ce7344a4
    • N
      ASoC: fsl_sai: Add asynchronous mode support · 08fdf65e
      Nicolin Chen 提交于
      SAI supports these operation modes:
      1) asynchronous mode
         Both Tx and Rx are set to be asynchronous.
      2) synchronous mode (Rx sync with Tx)
         Tx is set to be asynchronous, Rx is set to be synchronous.
      3) synchronous mode (Tx sync with Rx)
         Rx is set to be asynchronous, Tx is set to be synchronous.
      4) synchronous mode (Tx/Rx sync with another SAI's Tx)
      5) synchronous mode (Tx/Rx sync with another SAI's Rx)
      
      * 4) and 5) are beyond this patch because they are related with another SAI.
      
      As the initial version of this SAI driver, it supported 2) as default while
      the others were totally missing.
      
      So this patch just adds supports for 1) and 3).
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      08fdf65e
    • N
      ASoC: fsl_sai: Set SYNC bit of TCR2 to Asynchronous Mode · af96ff5b
      Nicolin Chen 提交于
      There is one design rule according to SAI's reference manual:
      If the transmitter bit clock and frame sync are to be used by both transmitter
      and receiver, the transmitter must be configured for asynchronous operation
      and the receiver for synchronous operation.
      
      And SYNC of TCR2 is a 2-width control bit:
      00 Asynchronous mode.
      01 Synchronous with receiver.
      10 Synchronous with another SAI transmitter.
      11 Synchronous with another SAI receiver.
      
      So the driver should have set SYNC bit of TCR2 to 0x0, and meanwhile set SYNC
      bit of RCR2 to 0x1 (Synchronous with transmitter).
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      af96ff5b
    • N
      ASoC: fsl_sai: Initialize with software reset · 376d1a92
      Nicolin Chen 提交于
      This patch adds software reset code in dai_probe() so as to make a true init
      by clearing SAI's internal logic, including the bit clock generation, status
      flags, and FIFO pointers.
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      376d1a92
  9. 01 8月, 2014 1 次提交
  10. 26 7月, 2014 3 次提交
    • N
      ASoC: fsl_sai: Improve enable flow in fsl_sai_trigger() · a3fdc674
      Nicolin Chen 提交于
      The previous enable flow:
      1, Enable TE&RE (SAI starts to consume tx FIFO and feed rx FIFO)
      2, Mask IRQ of Tx/Rx to enable its interrupt.
      3, Enable DMA request of Tx/Rx.
      
      As this flow would enable DMA request later than TERE, the Tx FIFO
      would be easily emptied into underrun while Rx FIFO would be easily
      stuffed into overrun due to the delayed DMA transfering.
      
      This issue happened merely occational before the patch 'ASoC: fsl_sai:
      Reset FIFOs after disabling TE/RE' because there were useless data
      remaining in the FIFO for the gap. However, it manifested after FIFO
      reset's implemented.
      
      After this patch, the new flow:
      1, Enable DMA request of Tx/Rx.
      2, Enable TE&RE (SAI starts to consume tx FIFO and feed rx FIFO)
      3, Mask IRQ of Tx/Rx to enable its interrupt.
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      a3fdc674
    • N
      ASoC: fsl_sai: Don't reset FIFO until TE/RE bit is unset · c44b56af
      Nicolin Chen 提交于
      TE/RE bit of T/RCSR will remain set untill the current frame is physically
      finished. The FIFO reset operation should wait this bit's totally cleared
      rather than ignoring its status which might cause TE/RE disabling failed.
      
      This patch adds delay and timeout to wait for its completion before FIFO
      reset.
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      c44b56af
    • N
      ASoC: fsl_sai: Reduce race condition during TE/RE enabling · f4075a8f
      Nicolin Chen 提交于
      For trigger start, we don't need to check if it's the first time to
      enable TE/RE or second time. It doesn't hurt to enable them any way,
      which in the meantime can reduce race condition for TE/RE enabling.
      
      For trigger stop, we will definitely clear FRDE of current direction.
      Thus the driver only needs to read the opposite one's.
      Signed-off-by: NNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      f4075a8f
  11. 18 7月, 2014 2 次提交
  12. 15 4月, 2014 7 次提交
  13. 08 4月, 2014 1 次提交
    • N
      ASoC: fsl_sai: Fix Bit Clock Polarity configurations · ef33bc32
      Nicolin Chen 提交于
      The BCP bit in TCR4/RCR4 register rules as followings:
        0 Bit clock is active high with drive outputs on rising edge
          and sample inputs on falling edge.
        1 Bit clock is active low with drive outputs on falling edge
          and sample inputs on rising edge.
      
      For all formats currently supported in the fsl_sai driver, they're exactly
      sending data on the falling edge and sampling on the rising edge.
      
      However, the driver clears this BCP bit for all of them which results click
      noise when working with SGTL5000 and big noise with WM8962.
      
      Thus this patch corrects the BCP settings for all the formats here to fix
      the nosie issue.
      Signed-off-by: NNicolin Chen <Guangyu.Chen@freescale.com>
      Acked-by: NXiubo Li <Li.Xiubo@freescale.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      ef33bc32
  14. 27 3月, 2014 1 次提交
  15. 27 2月, 2014 1 次提交
  16. 26 2月, 2014 1 次提交
  17. 10 2月, 2014 1 次提交
  18. 08 1月, 2014 1 次提交
  19. 31 12月, 2013 2 次提交
  20. 30 12月, 2013 2 次提交
  21. 21 12月, 2013 4 次提交