On Fri, May 18, 2012 at 10:56 AM, AceLan Kao <acelan.kao@xxxxxxxxxxxxx> wrote: > According to the ASUS WMI spec., to enable resume on lid open should > use the device ID(0x00120032), but it doesn't work indeed. > > After discussing with ASUS' BIOS engineer, they say wake on lid open > doesn't have a uniq device ID(0x00120032) in the BIOS. It shares the same > device ID with deep S3(0x00120031), and the deep S3(resume on lid open) > is disable by default. > > It's reasonable to resume the system while opening the lid, so add it > in the asus-wmi driver and tested the code on ASUS X100CH and ASUS 1015CX. > > Signed-off-by: AceLan Kao <acelan.kao@xxxxxxxxxxxxx> > --- > drivers/platform/x86/asus-wmi.c | 10 ++++++++++ Please also update Documentation/ABI/testing/sysfs-platform-asus-wmi > 1 file changed, 10 insertions(+) > > diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c > index b1b8b0b..7f31f44 100644 > --- a/drivers/platform/x86/asus-wmi.c > +++ b/drivers/platform/x86/asus-wmi.c > @@ -137,6 +137,9 @@ MODULE_LICENSE("GPL"); > /* Power */ > #define ASUS_WMI_DEVID_PROCESSOR_STATE 0x00120012 > > +/* Deep S3 / Resume on LID open */ > +#define ASUS_WMI_DEVID_LID_RESUME 0x00120031 > + > /* DSTS masks */ > #define ASUS_WMI_DSTS_STATUS_BIT 0x00000001 > #define ASUS_WMI_DSTS_UNKNOWN_BIT 0x00000002 > @@ -1372,6 +1375,7 @@ static ssize_t show_sys_wmi(struct asus_wmi *asus, int devid, char *buf) > ASUS_WMI_CREATE_DEVICE_ATTR(touchpad, 0644, ASUS_WMI_DEVID_TOUCHPAD); > ASUS_WMI_CREATE_DEVICE_ATTR(camera, 0644, ASUS_WMI_DEVID_CAMERA); > ASUS_WMI_CREATE_DEVICE_ATTR(cardr, 0644, ASUS_WMI_DEVID_CARDREADER); > +ASUS_WMI_CREATE_DEVICE_ATTR(lid_resume, 0644, ASUS_WMI_DEVID_LID_RESUME); > > static ssize_t store_cpufv(struct device *dev, struct device_attribute *attr, > const char *buf, size_t count) > @@ -1397,6 +1401,7 @@ static struct attribute *platform_attributes[] = { > &dev_attr_camera.attr, > &dev_attr_cardr.attr, > &dev_attr_touchpad.attr, > + &dev_attr_lid_resume.attr, > NULL > }; > > @@ -1415,6 +1420,8 @@ static umode_t asus_sysfs_is_visible(struct kobject *kobj, > devid = ASUS_WMI_DEVID_CARDREADER; > else if (attr == &dev_attr_touchpad.attr) > devid = ASUS_WMI_DEVID_TOUCHPAD; > + else if (attr == &dev_attr_lid_resume.attr) > + devid = ASUS_WMI_DEVID_LID_RESUME; > > if (devid != -1) > ok = !(asus_wmi_get_devstate_simple(asus, devid) < 0); > @@ -1488,6 +1495,9 @@ static int asus_wmi_platform_init(struct asus_wmi *asus) > asus_wmi_set_devstate(ASUS_WMI_DEVID_CWAP, > asus->driver->quirks->wapf, NULL); > > + /* Enable resume on lid open */ > + asus_wmi_set_devstate(ASUS_WMI_DEVID_LID_RESUME, 1, &rv); Is this setting persistant on accross re-boot ? Is the setting exposed in the bios ? What is the default value (off I guess ?) ? -- Corentin Chary http://xf.iksaif.net -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html