On 01/20/2012 07:15 AM, Alan Stern wrote:
On Thu, 19 Jan 2012, Konstantin Svist wrote:
Machine: Foxconn nt-330i
IR receiver: 073a:2230
OS: Fedora 16 x64
Kernel: 3.1.9
IR dongle: 073a:2230
When trying to suspend, if IR dongle is plugged in, system freezes on VT
with blinking cursor.
The IR dongle registers itself as HID device (keyboard+mouse, I believe)
I've turned off "quiet" and "rhgb" in grub and added no_console_suspend
and got the following data on console:
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.01 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.01 seconds) done.
sd 0:0:0:0: [sda] Synchronizing SCSI cache
sd 0:0:0:0: [sda] Stopping disk
ohci_hcd 0000:00:06.0: PCI INT A disabled
pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
pm_op(): pci_pm_suspend+0x0/0x130 returns -16
PM: Device 0000:00:04.0: failed to suspend async: error -16
ehci_hcd 0000:00:06.1: PCI INT B disabled
pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
pm_op(): pci_pm_suspend+0x0/0x130 returns -16
PM: Device 0000:00:04.1 failed to suspend async: error -16
These -16 errors indicate that the USB controllers failed to suspend
because they received wakeup requests. You should take a look at the
wakeup settings for the various USB devices ("grep .
/sys/bus/usb/devices/*/power/wakeup") and check whether they are
appropriate. In particular, you might want to disable wakeup for the
IR dongle.
snd_hda_intel 0000:00:08.0: PCI INT A disabled
snd_hda_intel 0000:00:08.0: power state changed by ACPI to D3
I was able to both suspend and resume from my laptop (same OS/kernel,
but x86)
Is there anything that can be done to fix this?
Failure to suspend when there is a wakeup pending is normal. But it
should not cause your system to freeze. Something else must be going
wrong.
You might try building a kernel with CONFIG_DEBUG_DRIVER and
CONFIG_USB_DEBUG enabled, to see what they show.
Alan Stern
Thanks Alan!
After a few more hours of testing, I think I found the main source of
the problem -- not surprisingly, it's the IR dongle itself. Apparently,
it reacts to ambient light or some light source in the particular room.
Long story short, the machine suspends fine when I cover the IR port
with my hand but wakes up as soon as I remove my hand. This was probably
the source of wakeups while it was trying to suspend. No idea why that
made the machine freeze, though - maybe too many interrupts...?
There is still some weird behavior I want to ask about:
While testing the dongle on the 'problematic' machine, I have to run
both "echo USB# >/proc/acpi/wakeup" and "echo enabled >
/sys/bus/usb/devices/3-1/power/wakeup" to get the dongle to wake from
remote button press. But when I try it on my laptop, "echo
USB1>/proc/acpi/wakeup" is enough and
/sys/bus/usb/devices/3-1/power/wakeup doesn't do anything -- and the
laptop wakes no matter which button was pressed on the remote.
Does this make any sense? Is this difference in behavior caused by the
difference in the BIOS?
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html