Re: [PATCH] asus-wmi: enable resume on lid open

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear Corentin,

2012/5/18 Corentin Chary <corentincj@xxxxxxxxxx>:
> 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
ok, and the kernel version should be marked as 3.5, right?

>>  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 ?) ?
The setting persists after hot reboot, but will be reset after cold boot.
And yes, the default value is off.
This setting is not exposed in the BIOS on the 2 models I have,
but for older  Asus EeePC(X101), we found there is an option for that.
Maybe it just because of the different BIOS team.

Considering that there might be an option in BIOS, so I remove the
code to enable
the wake on lid open while inserting the the module.
Userspace apps should handle this by themselves.

Best regards,
AceLan Kao.

-- 
Chia-Lin Kao(AceLan)
http://blog.acelan.idv.tw/
E-Mail: acelan.kaoATcanonical.com (s/AT/@/)
--
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


[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux