Hi everybody:
I met a trouble and it confuse me a fews days,that is when my
android wake up,sometimes occours some error aboutT flash card ,here
is the log:
sd 0:0:0:0: [sda] Starting disk
mmc0: new SD card at address 5a61
mmc mmc0:5a61: parent mmc0 is sleeping, will not add
−−−−−−−−−−−−[ cut here ]−−−−−−−−−−−−
WARNING: at drivers/base/power/main.c:78 device_pm_add+0x6c/0xf0()
here is the trace:
Call Trace:
[warn_on_slowpath+95/144] warn_on_slowpath+0x5f/0x90
[device_pm_add+24/240] ? device_pm_add+0x18/0xf0
[device_pm_add+108/240] device_pm_add+0x6c/0xf0
[device_add+1092/1376] device_add+0x444/0x560
[_end+510110570/2109230024] :mmc_core:mmc_add_card+0xa2/0x140
[_end+510117927/2109230024] :mmc_core:mmc_attach_sd+0x17f/0x860
[_end+510109176/2109230024] ? :mmc_core:mmc_rescan+0x0/0x1c0
[_end+510109545/2109230024] :mmc_core:mmc_rescan+0x171/0x1c0
[run_workqueue+246/560] run_workqueue+0xf6/0x230
[worker_thread+167/288] worker_thread+0xa7/0x120
[autoremove_wake_function+0/64] ? autoremove_wake_function+0x0/0x40
[worker_thread+0/288] ? worker_thread+0x0/0x120
[kthread+73/144] kthread+0x49/0x90
[child_rip+10/18] child_rip+0xa/0x12
[restore_args+0/48] ? restore_args+0x0/0x30
[kthread+0/144] ? kthread+0x0/0x90
[child_rip+0/18] ? child_rip+0x0/0x12
I found some conclusion about this:
It's a result of the way the MMC core is written. There's an
upper-level controller device, and below that is a host device, and
below that is the card itself. The code that adds and removes children
of the host device runs as part of the controller driver.
Hence the problem: The driver adds children below the _host_ as soon
as
the _controller_ is resumed, even though the host is still suspended.
It's not as big an error as it sounds -- the host was originally a
class_device and then got converted over to a regular device. It
doesn't have a driver of its own.
This is one of the things that needs to be fixed up as part of the
reworking of the system-sleep API. I simply haven't had any time to
work on it (and I'm not likely to in the near future).
but I still don't know how to do,is there anyone show me a easy way to
fix it ?givng source code and patch is better :),thanks all
PS:my linux kernel version:2.6.28
--~--~---------~--~----~------------~-------~--~----~
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---