1. 15 4月, 2014 2 次提交
    • N
      ASoC: fsl_sai: Fix buggy configurations in trigger() · e6b39846
      Nicolin Chen 提交于
      The current trigger() has two crucial problems:
      1) The DMA request enabling operations (FSL_SAI_CSR_FRDE) for Tx and Rx are
         now totally exclusive: It would fail to run simultaneous Tx-Rx cases.
      2) The TERE disabling operation depends on an incorrect condition -- active
         reference count that only gets increased in snd_pcm_open() and decreased
         in snd_pcm_close(): The TERE would never get cleared.
      
      So this patch overwrites the trigger function by following these rules:
      A) We continue to support tx-async-while-rx-sync-to-tx case alone, which's
         originally limited by this fsl_sai driver, but we make the code easy to
         modify for the further support of the opposite case.
      B) We enable both TE and RE for PLAYBACK stream or CAPTURE stream but only
         enabling the DMA request bit (FSL_SAI_CSR_FRDE) of the current direction
         due to the requirement of SAI -- For tx-async-while-rx-sync-to-tx case,
         the receiver is enabled only when both the transmitter and receiver are
         enabled.
      
      Tested cases:
      a) aplay test.wav -d5
      b) arecord -r44100 -c2 -fS16_LE test.wav -d5
      c) arecord -r44100 -c2 -fS16_LE -d5 | aplay
      d) (aplay test2.wav &); sleep 1; arecord -r44100 -c2 -fS16_LE test.wav -d1
      e) (arecord -r44100 -c2 -fS16_LE test.wav -d5 &); sleep 1; aplay test.wav -d1
      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>
      e6b39846
    • N
      ASoC: fsl_sai: Improve fsl_sai_isr() · 413312aa
      Nicolin Chen 提交于
      This patch improves fsl_sai_isr() in these ways:
      1, Add comment for mask fetching code.
      2, Return IRQ_NONE if the IRQ is not for the device.
      3, Use regmap_write() instead of regmap_update_bits().
      Signed-off-by: NNicolin Chen <Guangyu.Chen@freescale.com>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      413312aa
  2. 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
  3. 27 3月, 2014 1 次提交
  4. 25 3月, 2014 3 次提交
  5. 07 3月, 2014 1 次提交
  6. 05 3月, 2014 1 次提交
    • M
      ASoC: fsl: Don't select FIQ from Eukrea · d433570d
      Mark Brown 提交于
      There is no point in using FIQ if DMA is available (it is selected) and
      selecting FIQ currently breaks the build on non-i.MX platforms.  If FIQ
      is actually required the build will need to be restricted or have a
      select for the relevant FIQ code adding.
      Signed-off-by: NMark Brown <broonie@linaro.org>
      d433570d
  7. 03 3月, 2014 2 次提交
  8. 27 2月, 2014 1 次提交
  9. 26 2月, 2014 1 次提交
  10. 24 2月, 2014 1 次提交
  11. 12 2月, 2014 2 次提交
  12. 11 2月, 2014 2 次提交
  13. 10 2月, 2014 3 次提交
    • X
      236014ac
    • X
      78957fc3
    • S
      ASoC: fsl: fix pm support of machine drivers · 47cf84e1
      Shawn Guo 提交于
      The commit 1abe729f (ASoC: fsl: Add missing pm to current machine
      drivers) enables pm support for a few IMX machine drivers.  But it does
      not update dev drvdata to be the pointer to 'card'.  This causes the
      kernel dump below in system suspend, because snd_soc_suspend() expects
      that the dev drvdata points to 'card', while it still points to the
      private data of machine driver.
      
      This patch fixes imx-sgtl5000 and imx-wm8962 by attaching 'card' to dev
      drvdata and private data to card drvdata.  For imx-mc13783, I simply
      revert the pm change because it must be broken for the same reason and
      I don't have hardware to test pm enabling code.
      
      $ echo mem > /sys/power/state
      PM: Syncing filesystems ... done.
      PM: Preparing system for mem sleep
      mmc1: card e624 removed
      Freezing user space processes ... (elapsed 0.002 seconds) done.
      Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
      PM: Entering mem sleep
      INFO: trying to register non-static key.
      the code is fine but needs lockdep annotation.
      turning off the locking correctness validator.
      CPU: 0 PID: 1861 Comm: bash Not tainted 3.14.0-rc1+ #1648
      Backtrace:
      [<80012144>] (dump_backtrace) from [<800122e4>] (show_stack+0x18/0x1c)
       r6:8079c77c r5:00000c5a r4:00000000 r3:00000000
      [<800122cc>] (show_stack) from [<80637ac0>] (dump_stack+0x78/0x94)
      [<80637a48>] (dump_stack) from [<80028918>] (warn_slowpath_common+0x6c/0x8c)
       r4:bdb21c38 r3:be62df00
      [<800288ac>] (warn_slowpath_common) from [<800289dc>] (warn_slowpath_fmt+0x38/0x40)
       r8:be62e3a8 r7:bf122960 r6:00000005 r5:00000000 r4:00000000
      [<800289a8>] (warn_slowpath_fmt) from [<8006518c>] (__lock_acquire+0x1ae0/0x1ce0)
       r3:8079d598 r2:80799e70
      [<800636ac>] (__lock_acquire) from [<80065894>] (lock_acquire+0x68/0x7c)
       r10:bdb20000 r9:be62df00 r8:00000000 r7:00000000 r6:60000013 r5:bdb20000
       r4:00000000
      [<8006582c>] (lock_acquire) from [<8063c938>] (mutex_lock_nested+0x5c/0x3b8)
       r7:00000000 r6:80dfc78c r5:804be444 r4:bf122928
      [<8063c8dc>] (mutex_lock_nested) from [<804be444>] (snd_soc_suspend+0x34/0x42c)
       r10:00000000 r9:00000000 r8:00000000 r7:bf1c4444 r6:bf1c4410 r5:be978150
       r4:be978010
      [<804be410>] (snd_soc_suspend) from [<8034392c>] (platform_pm_suspend+0x34/0x64)
       r10:00000000 r8:00000000 r7:bf1c4444 r6:bf1c4410 r5:803438f8 r4:bf1c4410
      [<803438f8>] (platform_pm_suspend) from [<80348e18>] (dpm_run_callback.isra.7+0x34/0x6c)
      [<80348de4>] (dpm_run_callback.isra.7) from [<80349354>] (__device_suspend+0x10c/0x220)
       r9:808dd974 r8:808c4a5c r6:00000002 r5:80e5001c r4:bf1c4410
      [<80349248>] (__device_suspend) from [<8034a338>] (dpm_suspend+0x60/0x220)
       r7:bf1c4410 r6:808dd90c r5:80e5001c r4:bf1c44c0
      [<8034a2d8>] (dpm_suspend) from [<8034a790>] (dpm_suspend_start+0x60/0x68)
       r10:8079a818 r9:00000000 r8:00000004 r7:80dfbe90 r6:80641eec r5:00000000
       r4:00000002
      [<8034a730>] (dpm_suspend_start) from [<8006a788>] (suspend_devices_and_enter+0x74/0x318)
       r4:00000003 r3:80dfbe98
      [<8006a714>] (suspend_devices_and_enter) from [<8006abd8>] (pm_suspend+0x1ac/0x244)
       r10:8079a818 r8:00000004 r7:00000003 r6:80641eec r5:00000000 r4:00000003
      [<8006aa2c>] (pm_suspend) from [<80069a4c>] (state_store+0x70/0xc0)
       r5:00000003 r4:bd85ea40
      [<800699dc>] (state_store) from [<80294034>] (kobj_attr_store+0x1c/0x28)
       r10:beb9fe08 r8:00000000 r7:bdb21f78 r6:bd85ea40 r5:00000004 r4:beb9fe00
      [<80294018>] (kobj_attr_store) from [<80140f90>] (sysfs_kf_write+0x54/0x58)
      [<80140f3c>] (sysfs_kf_write) from [<8014474c>] (kernfs_fop_write+0xc4/0x160)
       r6:bd85ea40 r5:beb9fe00 r4:00000004 r3:80140f3c
      [<80144688>] (kernfs_fop_write) from [<800dfa14>] (vfs_write+0xbc/0x184)
       r10:00000000 r9:00000000 r8:00000000 r7:bdb21f78 r6:00500c08 r5:00000004
       r4:be782600
      [<800df958>] (vfs_write) from [<800dfe00>] (SyS_write+0x48/0x70)
       r10:00000000 r8:00000000 r7:00000004 r6:00500c08 r5:00000000 r4:be782600
      [<800dfdb8>] (SyS_write) from [<8000e800>] (ret_fast_syscall+0x0/0x48)
       r9:bdb20000 r8:8000e9c4 r7:00000004 r6:00500c08 r5:00000004 r4:76eb65e0
      
      Fixes: 1abe729f (ASoC: fsl: Add missing pm to current machine drivers)
      Cc: stable@vger.kernel.org
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NMark Brown <broonie@linaro.org>
      47cf84e1
  14. 03 2月, 2014 1 次提交
  15. 22 1月, 2014 2 次提交
  16. 21 1月, 2014 1 次提交
  17. 15 1月, 2014 1 次提交
  18. 10 1月, 2014 3 次提交
  19. 09 1月, 2014 9 次提交
  20. 08 1月, 2014 1 次提交
  21. 07 1月, 2014 1 次提交