1. 10 2月, 2014 1 次提交
    • 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
  2. 10 12月, 2013 1 次提交
  3. 08 11月, 2013 1 次提交
  4. 24 10月, 2013 1 次提交
  5. 04 10月, 2013 1 次提交
  6. 19 9月, 2013 1 次提交
  7. 23 8月, 2013 1 次提交
    • W
      i2c: move OF helpers into the core · 687b81d0
      Wolfram Sang 提交于
      I2C of helpers used to live in of_i2c.c but experience (from SPI) shows
      that it is much cleaner to have this in the core. This also removes a
      circular dependency between the helpers and the core, and so we can
      finally register child nodes in the core instead of doing this manually
      in each driver. So, fix the drivers and documentation, too.
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      687b81d0
  8. 19 7月, 2013 1 次提交
  9. 12 6月, 2013 1 次提交