ACPI wakeup

Discussion in 'BIOS Mods' started by Kostr, Jun 24, 2013.

  1. Kostr

    Kostr MDL Novice

    Jun 20, 2013
    Hello! I am a BIOS developer and now i am trying to enable S3 wakeup from USB keyboard.
    After boot, if i execute in terminal command «cat /proc/acpi/wakeup» i get:

    Device S-state Status Sysfs node
    HDEF S4 disabled pci:0000:00:1b.0
    RP01 S5 disabled pci:0000:00:1c.0
    RP02 S5 disabled pci:0000:00:1c.1
    RP03 S5 disabled pci:0000:00:1c.2
    RP04 S5 disabled pci:0000:00:1c.3
    RP05 S5 disabled pci:0000:00:1c.4
    RP06 S5 disabled pci:0000:00:1c.5
    USB1 S3 disabled pci:0000:00:1d.0
    USB2 S3 disabled pci:0000:00:1d.1
    USB3 S3 disabled pci:0000:00:1d.2
    USB4 S3 disabled pci:0000:00:1d.3
    EHC1 S3 disabled pci:0000:00:1d.7
    MODM S4 disabled
    COMA S3 disabled pnp:00:08
    COMB S3 disabled pnp:00:09

    At my guess, current devices are devices from DSDT table with _PRW method. But for some reason wakeup for them disabled by default.
    I can enable wakeup for keyboard (in my case it is USB1) with:

    echo USB1 > /proc/acpi/wakeup

    Throught some experiments, i figured out that these commands says to OS, that it should enable appropriate bits in ACPI GPE0_EN register before going to S3 (what bits exactly is defined in USB1._PRW)

    But this is not the end. I think OS power off USB controller when it goes to S3. To fix this i found device USB number from dmesg:

    [ 2.724374] input: LITEON Technology USB Multimedia Keyboard as /devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/input/input6

    And executed command «echo enabled > /sys/bus/usb/devices/2-2/power/wakeup»

    And only now wakeup from USB works.

    My question is, how i should change DSDT, to avoid all of these commands?
  2. LatinMcG

    LatinMcG Bios Borker

    Feb 27, 2011
    ive seen _OSI not let wake work from usb due to newer win 7 not in list of dsdt for actions.. "Windows 2006" is vista.

    dump dsdt or at least post motherboard model and bios version.
  3. Kostr

    Kostr MDL Novice

    Jun 20, 2013
    I work with CPU Intel Atom N270, i945 northbridge, ICH7 i82801gx southbridge, super io SMSC 3116.
    I develop BIOS for custom board, so there isn't any proprietary BIOS.

    My current DSDT is : View attachment DSDT-0xbf6e2740-0.rar
  4. LatinMcG

    LatinMcG Bios Borker

    Feb 27, 2011
    #4 LatinMcG, Jun 25, 2013
    Last edited: Jun 25, 2013
    it has the windows 7 entry so i doubt its that.. If (_OSI ("Windows 2009"))

    what os youre using ?

    im not the best at this but i have some experience.. os x and usb wake was fun in my G31M-ES2L

    i believe someone found a way to enable the proper GPE in the dsdt section of _INI to set the bits.
    look for my dsdt in my signature at and its a trimmed version so its easier to follow the code.

    also look into coreboot and ich7