Re: omap_hsmmc noisy/broken for suspend resume

2011-11-18 Thread Kevin Hilman
Hello Girish,

On 11/03/2011 09:21 PM, Girish K S wrote:
 On 3 November 2011 17:24, Kevin Hilman khil...@ti.com wrote:
 Hello,

 Using Linus' master branch, I was testing PM functionality on OMAP3/4
 and noticed that the MMC driver is now rather noisy during suspend on
 OMAP3[1], but seems to work.


[...]

 / # echo mem  /sys/power/state
 [  811.145507] PM: Syncing filesystems ... done.
 [  811.150268] PM: Preparing system for mem sleep
 [  811.155059] Freezing user space processes ... (elapsed 0.01 seconds) done.
 [  811.179992] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) 
 done.
 [  811.203460] PM: Entering mem sleep
 [  811.207489] Suspending console(s) (use no_console_suspend to debug)
 a[  811.225860] [ cut here ]
 [  811.225891] WARNING: at /work/kernel/omap/pm/drivers/mmc/core/core.c:453 
 mmc_wait_for_cmd+0x78/0x84()
 [  811.225921] Modules linked in:
 [  811.225952] [c001a810] (unwind_backtrace+0x0/0xf0) from [c00525d0] 
 (warn_slowpath_common+0x4c/0x64)
 [  811.225982] [c00525d0] (warn_slowpath_common+0x4c/0x64) from 
 [c0052604] (warn_slowpath_null+0x1c/0x24)
 [  811.226013] [c0052604] (warn_slowpath_null+0x1c/0x24) from [c033a494] 
 (mmc_wait_for_cmd+0x78/0x84)
 [  811.226043] [c033a494] (mmc_wait_for_cmd+0x78/0x84) from [c033e7b8] 
 (mmc_switch+0x74/0x118)
 [  811.226074] [c033e7b8] (mmc_switch+0x74/0x118) from [c033b034] 
 (mmc_power_off+0xd8/0x108)

 The problem is caused by the card-poweroff_notify_state =
 MMC_POWERED_ON; statement in the mmc_card_init function
 it is set for the non eMMC4.5 devices. I will rectify this and soon
 send a patch for the same.

Is this the patch that fixes this issue:

http://article.gmane.org/gmane.linux.kernel.mmc/10961

I found this by digging (since I'm not subscribed to linux-mmc), but it
would've been much more efficient if you Cc the original lists where the
issue was reported, and especially the person reporting the bug so it
can be tested by those reporting the problem.

I tested the above patch and verified it gets rid of all the noise in
the OMAP HS-MMC driver.

Chris, I see this is already in mmc-next.  Feel free to add:

Tested-by: Kevin Hilman khil...@ti.com

If you like.

Thanks,

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: omap_hsmmc noisy/broken for suspend resume

2011-11-04 Thread T Krishnamoorthy, Balaji
On Fri, Nov 4, 2011 at 2:54 AM, Kevin Hilman khil...@ti.com wrote:

 Hello,

 Using Linus' master branch, I was testing PM functionality on OMAP3/4
 and noticed that the MMC driver is now rather noisy during suspend on
 OMAP3[1], but seems to work.

 On OMAP4, MMC seems to prevent suspend/resume all together.  I haven't
 found the root cause, but know that by not buidling the MMC driver, I
 have working suspend/resume again on OMAP4.

 Venkat, can you investigate this?

 For OMAP4, please use my for_3.2/omap4-pm branch which has the OMAP4
 MPUSS retention support from Santosh.

With 4430SDP I observed abort on accessing I2C registers
probably i2c clock is not turned ON?

echo mem  /sys/power/state
[   41.971649] PM: Preparing system for mem sleep
[   41.976440] Freezing user space processes ... (elapsed 0.02 seconds) done.
[   42.002838] Freezing remaining freezable tasks ... (elapsed 0.02
seconds) done.
[   42.033172] PM: Entering mem sleep
[   42.043212] omap_hsmmc omap_hsmmc.4: context was not lost
[   42.043212] omap_hsmmc omap_hsmmc.4: enabled
[   42.043212] mmc2: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
[   42.060852] omap_hsmmc omap_hsmmc.4: Set clock to 0Hz
[   42.066192] omap_device: omap_hsmmc.0: new worst case activate
latency 0: 5310058
[   42.074035] omap_hsmmc omap_hsmmc.0: context was not lost
[   42.074035] omap_hsmmc omap_hsmmc.0: enabled
[   42.074035] mmc1: starting CMD7 arg  flags 
[   42.090026] omap_hsmmc omap_hsmmc.0: mmc1: CMD7, argument 0x
[   42.096679] omap_hsmmc omap_hsmmc.0: IRQ Status is 1
[   42.096710] mmc1: req done (CMD7): 0:    
[   42.109008] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
[   42.116668] omap_hsmmc omap_hsmmc.0: Set clock to 0Hz
[   42.122009] omap_hsmmc omap_hsmmc.1: context was not lost
[   42.127655] omap_hsmmc omap_hsmmc.1: enabled
[   42.132171] mmc0: starting CMD7 arg  flags 
[   42.138000] omap_hsmmc omap_hsmmc.1: mmc0: CMD7, argument 0x
[   42.144653] omap_hsmmc omap_hsmmc.1: IRQ Status is 1
[   42.144653] mmc0: req done (CMD7): 0:    
[   42.159301] mmc0: starting CMD5 arg 00018000 flags 001d
[   42.165130] omap_hsmmc omap_hsmmc.1: mmc0: CMD5, argument 0x00018000
[   42.171783] omap_hsmmc omap_hsmmc.1: IRQ Status is 1
[   42.176971] omap_hsmmc omap_hsmmc.1: IRQ Status is 2
[   42.176971] mmc0: req done (CMD5): 0: 0600   
[   42.189270] mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
[   42.196929] TWL6030 IRQ 0x0 0x8 0x0
[   42.203765] omap_hsmmc omap_hsmmc.1: Set clock to 0Hz
[   42.203765] PM: suspend of devices complete after 166.717 msecs
[   42.216003] omap_hsmmc omap_hsmmc.4: disabled
[   42.221801] omap_hsmmc omap_hsmmc.0: disabled
[   42.226379] omap_hsmmc omap_hsmmc.1: disabled
[   42.230926] PM: late suspend of devices complete after 14.923 msecs
[   42.237609] Disabling non-boot CPUs ...
[   42.241790] Unhandled fault: imprecise external abort (0x1406) at 0x4005a000
[   42.241851] Internal error: : 1406 [#1] SMP
[   42.253509] Modules linked in:
[   42.256713] CPU: 0Not tainted  (3.1.0-00165-g97d4c96-dirty #12)
[   42.256713] PC is at omap_i2c_wait_for_bb+0x88/0xa8
[   42.268341] LR is at omap_i2c_wait_for_bb+0x10/0xa8
[   42.273437] pc : [c0351d84]lr : [c0351d0c]psr: 4013
[   42.273437] sp : ef9dfee8  ip : 7e58  fp : ef8f2c00
[   42.273437] r10: 7e58  r9 : c035249c  r8 : 0001
[   42.285430] r7 : c0c0c43c  r6 : c063e080  r5 : c063e080  r4 : ef8f2c00
[   42.285430] r3 :   r2 : 0028  r1 : 0028  r0 : 0080
[   42.304504] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
Segment kernel
[   42.304504] Control: 10c53c7d  Table: af10404a  DAC: 0017
[   42.304504] Process twl6030-irq (pid: 251, stack limit = 0xef9de2f8)
[   42.304504] Stack: (0xef9dfee8 to 0xef9e)
[   42.329284] fee0:   ef8f2ca8  c063e080
c03524c8 ef9dfef8 0001
[   42.337829] ff00: ef997460 ef8f2c70 c02b7ce4 ef8f2c60 
c063e080 c0c0c43c 0001
[   42.337829] ff20: c035249c 7e58 0004 c0350188 ef9dff84
 c0c0c454 0068
[   42.354888] ff40: c0c0c3cc c0c0c3c4 c0c0c434 c02b7d2c 
0008  c0c0c640
[   42.363433] ff60: ef9dff84 c0c0c640 c047cba4 0027 0030
  c02b8fc8
[   42.363433] ff80: 6013 00d0 ef833d18 0002 0027
c02b8e88  
[   42.380493] ffa0:  c0073628 0001  0027
  dead4ead
[   42.380493] ffc0:   c06d4a74  
c05628f4 ef9dffd8 ef9dffd8
[   42.380493] ffe0: ef833d18 ef833d18 c00735a0 c0015358 0013
c0015358 64946642 61340b38
[   42.380493] [c0351d84] (omap_i2c_wait_for_bb+0x88/0xa8) from
[c03524c8] (omap_i2c_xfer+0x2c/0x388)
[   42.415832] [c03524c8] (omap_i2c_xfer+0x2c/0x388) from
[c0350188] (i2c_transfer+0xa8/0x118)
[   

omap_hsmmc noisy/broken for suspend resume

2011-11-03 Thread Kevin Hilman
Hello,

Using Linus' master branch, I was testing PM functionality on OMAP3/4
and noticed that the MMC driver is now rather noisy during suspend on
OMAP3[1], but seems to work.

On OMAP4, MMC seems to prevent suspend/resume all together.  I haven't
found the root cause, but know that by not buidling the MMC driver, I
have working suspend/resume again on OMAP4.

Venkat, can you investigate this?

For OMAP4, please use my for_3.2/omap4-pm branch which has the OMAP4
MPUSS retention support from Santosh.

Kevin


[1]
/ # echo mem  /sys/power/state 
[  811.145507] PM: Syncing filesystems ... done.
[  811.150268] PM: Preparing system for mem sleep
[  811.155059] Freezing user space processes ... (elapsed 0.01 seconds) done.
[  811.179992] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) 
done.
[  811.203460] PM: Entering mem sleep
[  811.207489] Suspending console(s) (use no_console_suspend to debug)
a[  811.225860] [ cut here ]
[  811.225891] WARNING: at /work/kernel/omap/pm/drivers/mmc/core/core.c:453 
mmc_wait_for_cmd+0x78/0x84()
[  811.225921] Modules linked in:
[  811.225952] [c001a810] (unwind_backtrace+0x0/0xf0) from [c00525d0] 
(warn_slowpath_common+0x4c/0x64)
[  811.225982] [c00525d0] (warn_slowpath_common+0x4c/0x64) from [c0052604] 
(warn_slowpath_null+0x1c/0x24)
[  811.226013] [c0052604] (warn_slowpath_null+0x1c/0x24) from [c033a494] 
(mmc_wait_for_cmd+0x78/0x84)
[  811.226043] [c033a494] (mmc_wait_for_cmd+0x78/0x84) from [c033e7b8] 
(mmc_switch+0x74/0x118)
[  811.226074] [c033e7b8] (mmc_switch+0x74/0x118) from [c033b034] 
(mmc_power_off+0xd8/0x108)
[  811.226104] [c033b034] (mmc_power_off+0xd8/0x108) from [c033b3a4] 
(mmc_suspend_host+0xe4/0x1b8)
[  811.226135] [c033b3a4] (mmc_suspend_host+0xe4/0x1b8) from [c034a77c] 
(omap_hsmmc_suspend+0x74/0xfc)
[  811.226165] [c034a77c] (omap_hsmmc_suspend+0x74/0xfc) from [c028df74] 
(platform_pm_suspend+0x2c/0x5c)
[  811.226196] [c028df74] (platform_pm_suspend+0x2c/0x5c) from [c0291a60] 
(pm_op.clone.4+0x70/0xb8)
[  811.226226] [c0291a60] (pm_op.clone.4+0x70/0xb8) from [c0291b70] 
(__device_suspend+0xc8/0x1f0)
[  811.226257] [c0291b70] (__device_suspend+0xc8/0x1f0) from [c02929d0] 
(dpm_suspend+0x5c/0x218)
[  811.226287] [c02929d0] (dpm_suspend+0x5c/0x218) from [c00970c8] 
(suspend_devices_and_enter+0x8c/0x18c)
[  811.226318] [c00970c8] (suspend_devices_and_enter+0x8c/0x18c) from 
[c0097308] (enter_state+0x140/0x180)
[  811.226318] [c0097308] (enter_state+0x140/0x180) from [c00961d4] 
(state_store+0xb8/0x104)
[  811.226348] [c00961d4] (state_store+0xb8/0x104) from [c022f7b8] 
(kobj_attr_store+0x14/0x20)
[  811.226379] [c022f7b8] (kobj_attr_store+0x14/0x20) from [c01542a8] 
(sysfs_write_file+0x100/0x184)
[  811.226409] [c01542a8] (sysfs_write_file+0x100/0x184) from [c00f8d88] 
(vfs_write+0xb4/0x148)
[  811.226440] [c00f8d88] (vfs_write+0xb4/0x148) from [c00f9010] 
(sys_write+0x40/0x70)
[  811.226470] [c00f9010] (sys_write+0x40/0x70) from [c00132a0] 
(ret_fast_syscall+0x0/0x3c)
[  811.226501] ---[ end trace 870223ea4a1b1518 ]---
[  811.226501] [ cut here ]
[  811.226531] WARNING: at /work/kernel/omap/pm/drivers/mmc/core/core.c:210 
mmc_start_request+0xd4/0xdc()
[  811.226531] Modules linked in:
[  811.226562] [c001a810] (unwind_backtrace+0x0/0xf0) from [c00525d0] 
(warn_slowpath_common+0x4c/0x64)
[  811.226593] [c00525d0] (warn_slowpath_common+0x4c/0x64) from [c0052604] 
(warn_slowpath_null+0x1c/0x24)
[  811.226623] [c0052604] (warn_slowpath_null+0x1c/0x24) from [c0339da8] 
(mmc_start_request+0xd4/0xdc)
[  811.226654] [c0339da8] (mmc_start_request+0xd4/0xdc) from [c033a404] 
(mmc_wait_for_req+0x34/0x4c)
[  811.226684] [c033a404] (mmc_wait_for_req+0x34/0x4c) from [c033a47c] 
(mmc_wait_for_cmd+0x60/0x84)
[  811.226715] [c033a47c] (mmc_wait_for_cmd+0x60/0x84) from [c033e7b8] 
(mmc_switch+0x74/0x118)
[  811.226715] [c033e7b8] (mmc_switch+0x74/0x118) from [c033b034] 
(mmc_power_off+0xd8/0x108)
[  811.226745] [c033b034] (mmc_power_off+0xd8/0x108) from [c033b3a4] 
(mmc_suspend_host+0xe4/0x1b8)
[  811.226776] [c033b3a4] (mmc_suspend_host+0xe4/0x1b8) from [c034a77c] 
(omap_hsmmc_suspend+0x74/0xfc)
[  811.226806] [c034a77c] (omap_hsmmc_suspend+0x74/0xfc) from [c028df74] 
(platform_pm_suspend+0x2c/0x5c)
[  811.226837] [c028df74] (platform_pm_suspend+0x2c/0x5c) from [c0291a60] 
(pm_op.clone.4+0x70/0xb8)
[  811.226867] [c0291a60] (pm_op.clone.4+0x70/0xb8) from [c0291b70] 
(__device_suspend+0xc8/0x1f0)
[  811.226867] [c0291b70] (__device_suspend+0xc8/0x1f0) from [c02929d0] 
(dpm_suspend+0x5c/0x218)
[  811.226898] [c02929d0] (dpm_suspend+0x5c/0x218) from [c00970c8] 
(suspend_devices_and_enter+0x8c/0x18c)
[  811.226928] [c00970c8] (suspend_devices_and_enter+0x8c/0x18c) from 
[c0097308] (enter_state+0x140/0x180)
[  811.226959] [c0097308] (enter_state+0x140/0x180) from [c00961d4] 
(state_store+0xb8/0x104)
[  811.226989] [c00961d4] (state_store+0xb8/0x104) from [c022f7b8] 
(kobj_attr_store+0x14/0x20)
[  811.227020] 

Re: omap_hsmmc noisy/broken for suspend resume

2011-11-03 Thread Girish K S
On 3 November 2011 17:24, Kevin Hilman khil...@ti.com wrote:
 Hello,

 Using Linus' master branch, I was testing PM functionality on OMAP3/4
 and noticed that the MMC driver is now rather noisy during suspend on
 OMAP3[1], but seems to work.

 On OMAP4, MMC seems to prevent suspend/resume all together.  I haven't
 found the root cause, but know that by not buidling the MMC driver, I
 have working suspend/resume again on OMAP4.

 Venkat, can you investigate this?

 For OMAP4, please use my for_3.2/omap4-pm branch which has the OMAP4
 MPUSS retention support from Santosh.

 Kevin


 [1]
 / # echo mem  /sys/power/state
 [  811.145507] PM: Syncing filesystems ... done.
 [  811.150268] PM: Preparing system for mem sleep
 [  811.155059] Freezing user space processes ... (elapsed 0.01 seconds) done.
 [  811.179992] Freezing remaining freezable tasks ... (elapsed 0.01 seconds) 
 done.
 [  811.203460] PM: Entering mem sleep
 [  811.207489] Suspending console(s) (use no_console_suspend to debug)
 a[  811.225860] [ cut here ]
 [  811.225891] WARNING: at /work/kernel/omap/pm/drivers/mmc/core/core.c:453 
 mmc_wait_for_cmd+0x78/0x84()
 [  811.225921] Modules linked in:
 [  811.225952] [c001a810] (unwind_backtrace+0x0/0xf0) from [c00525d0] 
 (warn_slowpath_common+0x4c/0x64)
 [  811.225982] [c00525d0] (warn_slowpath_common+0x4c/0x64) from 
 [c0052604] (warn_slowpath_null+0x1c/0x24)
 [  811.226013] [c0052604] (warn_slowpath_null+0x1c/0x24) from [c033a494] 
 (mmc_wait_for_cmd+0x78/0x84)
 [  811.226043] [c033a494] (mmc_wait_for_cmd+0x78/0x84) from [c033e7b8] 
 (mmc_switch+0x74/0x118)
 [  811.226074] [c033e7b8] (mmc_switch+0x74/0x118) from [c033b034] 
 (mmc_power_off+0xd8/0x108)
The problem is caused by the card-poweroff_notify_state =
MMC_POWERED_ON; statement in the mmc_card_init function
it is set for the non eMMC4.5 devices. I will rectify this and soon
send a patch for the same.
 [  811.226104] [c033b034] (mmc_power_off+0xd8/0x108) from [c033b3a4] 
 (mmc_suspend_host+0xe4/0x1b8)
 [  811.226135] [c033b3a4] (mmc_suspend_host+0xe4/0x1b8) from [c034a77c] 
 (omap_hsmmc_suspend+0x74/0xfc)
 [  811.226165] [c034a77c] (omap_hsmmc_suspend+0x74/0xfc) from [c028df74] 
 (platform_pm_suspend+0x2c/0x5c)
 [  811.226196] [c028df74] (platform_pm_suspend+0x2c/0x5c) from [c0291a60] 
 (pm_op.clone.4+0x70/0xb8)
 [  811.226226] [c0291a60] (pm_op.clone.4+0x70/0xb8) from [c0291b70] 
 (__device_suspend+0xc8/0x1f0)
 [  811.226257] [c0291b70] (__device_suspend+0xc8/0x1f0) from [c02929d0] 
 (dpm_suspend+0x5c/0x218)
 [  811.226287] [c02929d0] (dpm_suspend+0x5c/0x218) from [c00970c8] 
 (suspend_devices_and_enter+0x8c/0x18c)
 [  811.226318] [c00970c8] (suspend_devices_and_enter+0x8c/0x18c) from 
 [c0097308] (enter_state+0x140/0x180)
 [  811.226318] [c0097308] (enter_state+0x140/0x180) from [c00961d4] 
 (state_store+0xb8/0x104)
 [  811.226348] [c00961d4] (state_store+0xb8/0x104) from [c022f7b8] 
 (kobj_attr_store+0x14/0x20)
 [  811.226379] [c022f7b8] (kobj_attr_store+0x14/0x20) from [c01542a8] 
 (sysfs_write_file+0x100/0x184)
 [  811.226409] [c01542a8] (sysfs_write_file+0x100/0x184) from [c00f8d88] 
 (vfs_write+0xb4/0x148)
 [  811.226440] [c00f8d88] (vfs_write+0xb4/0x148) from [c00f9010] 
 (sys_write+0x40/0x70)
 [  811.226470] [c00f9010] (sys_write+0x40/0x70) from [c00132a0] 
 (ret_fast_syscall+0x0/0x3c)
 [  811.226501] ---[ end trace 870223ea4a1b1518 ]---
 [  811.226501] [ cut here ]
 [  811.226531] WARNING: at /work/kernel/omap/pm/drivers/mmc/core/core.c:210 
 mmc_start_request+0xd4/0xdc()
 [  811.226531] Modules linked in:
 [  811.226562] [c001a810] (unwind_backtrace+0x0/0xf0) from [c00525d0] 
 (warn_slowpath_common+0x4c/0x64)
 [  811.226593] [c00525d0] (warn_slowpath_common+0x4c/0x64) from 
 [c0052604] (warn_slowpath_null+0x1c/0x24)
 [  811.226623] [c0052604] (warn_slowpath_null+0x1c/0x24) from [c0339da8] 
 (mmc_start_request+0xd4/0xdc)
 [  811.226654] [c0339da8] (mmc_start_request+0xd4/0xdc) from [c033a404] 
 (mmc_wait_for_req+0x34/0x4c)
 [  811.226684] [c033a404] (mmc_wait_for_req+0x34/0x4c) from [c033a47c] 
 (mmc_wait_for_cmd+0x60/0x84)
 [  811.226715] [c033a47c] (mmc_wait_for_cmd+0x60/0x84) from [c033e7b8] 
 (mmc_switch+0x74/0x118)
 [  811.226715] [c033e7b8] (mmc_switch+0x74/0x118) from [c033b034] 
 (mmc_power_off+0xd8/0x108)
 [  811.226745] [c033b034] (mmc_power_off+0xd8/0x108) from [c033b3a4] 
 (mmc_suspend_host+0xe4/0x1b8)
 [  811.226776] [c033b3a4] (mmc_suspend_host+0xe4/0x1b8) from [c034a77c] 
 (omap_hsmmc_suspend+0x74/0xfc)
 [  811.226806] [c034a77c] (omap_hsmmc_suspend+0x74/0xfc) from [c028df74] 
 (platform_pm_suspend+0x2c/0x5c)
 [  811.226837] [c028df74] (platform_pm_suspend+0x2c/0x5c) from [c0291a60] 
 (pm_op.clone.4+0x70/0xb8)
 [  811.226867] [c0291a60] (pm_op.clone.4+0x70/0xb8) from [c0291b70] 
 (__device_suspend+0xc8/0x1f0)
 [  811.226867] [c0291b70] (__device_suspend+0xc8/0x1f0) from [c02929d0] 
 (dpm_suspend+0x5c/0x218)
 [  811.226898] [c02929d0] (dpm_suspend+0x5c/0x218) from