Linux 2.6.23

The problem is that Linux 2.6.23 consumes about 3W more power compared to 2.6.22. Certainly something must be wrong, but I haven’t had the time to do a bisect. Today, I did a (painful) git bisect and arrived at the patch that caused the problem. But another problem crops up: the patch is entirely correct.

The symptoms are:
1. power usage goes up
2. /proc/acpi/processor/CPU{0,1}/power shows bus master activity
3. processors seldom go to C3 (because of (2) above)

Taken from the git diff here,

--- a/drivers/usb/core/quirks.c+++ b/drivers/usb/core/quirks.c@@ -152,4 +152,10 @@ void usb_detect_quirks(struct usb_device *udev)        /* do any special quirk handling here if needed */        if (udev->quirks & USB_QUIRK_NO_AUTOSUSPEND)                usb_autosuspend_quirk(udev);++       /* By default, disable autosuspend for all non-hubs */+#ifdef CONFIG_USB_SUSPEND+       if (udev->descriptor.bDeviceClass != USB_CLASS_HUB)+               udev->autosuspend_delay = -1;+#endif }

What the above patch means is that usb devices other than hubs don’t get autosuspended. This makes my X60 consume much more power, since the fingerprint reader is also a usb device but not a hub. When the fingerprint reader is not suspended, it draws power. The weird thing is, on 2.6.22 it doesn’t generate bus master activity. Maybe 2.6.22 automatically suspended everything? IIRC, the autosuspend patch was only merged after 2.6.22 — but CMIIW.

Anyway, the workaround is:
1. Disable the fingerprint reader in the BIOS, or
2. Enable autosuspend manually after bootup.

I’m a little surprised no one has brought this up before.

2 Responses to “Linux 2.6.23”

  1. En Tay Says:

    I still use 2.6.22 on my UBUNTU. :)
    … may be i’ll consider it again before i upgrade to 2.6.23

  2. James Says:

    Saya tampak mulai tertarik menggunakan linuxx… Hmm..

Leave a Reply