grouper: Suspend fails repeatedly
Bug #1192428 reported by
Seth Forshee
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
touch-preview-images |
Invalid
|
Low
|
Seth Forshee |
Bug Description
Suspend on the nexus 7 frequently fails with the following messages in the kernel:
[15623.213301] host1x host1x: host1x prevented suspend
[15623.213323] host1x host1x: suspend status: -16
[15623.213358] pm_op(): nvhost_
[15623.213634] PM: Device host1x failed to suspend: error -16
[15623.213777] PM: Some devices failed to suspend
This doesn't happen all of the time, but when it does happen it seems to be stuck in a loop -- try to suspend, abort suspend due to the above errors, resume devices, then try to suspend again. Thus the device never actually enters suspend and drains the battery excessively.
To post a comment you must log in.
The host1x device is associated with graphics. It's suspend operation is nvhost_suspend() in drivers/ video/tegra/ host/dev. c, which calls nvhost_ module_ suspend( ). This function will return -EBUSY (-16) if it times out waiting for the number of references to the device to go to 0. References are taken from quite a few different places in the code, so it isn't immediately clear where the remaining reference(s) come from. It appears that references can even be taken from userspace via an ioctl.