Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
asus-wmi.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/input.h>
#include <linux/input/sparse-keymap.h>
#include <linux/fb.h>
#include <linux/backlight.h>
#include <linux/leds.h>
#include <linux/rfkill.h>
#include <linux/pci.h>
#include <linux/pci_hotplug.h>
#include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h>
#include <linux/debugfs.h>
#include <linux/seq_file.h>
#include <linux/platform_device.h>
#include <linux/thermal.h>
#include <acpi/acpi_bus.h>
#include <acpi/acpi_drivers.h>
#include <acpi/video.h>
#include "asus-wmi.h"

Go to the source code of this file.

Data Structures

struct  bios_args
 
struct  asus_wmi_debug
 
struct  asus_rfkill
 
struct  asus_wmi
 
struct  asus_wmi_debugfs_node
 

Macros

#define pr_fmt(fmt)   KBUILD_MODNAME ": " fmt
 
#define to_platform_driver(drv)   (container_of((drv), struct platform_driver, driver))
 
#define to_asus_wmi_driver(pdrv)   (container_of((pdrv), struct asus_wmi_driver, platform_driver))
 
#define ASUS_WMI_MGMT_GUID   "97845ED0-4E6D-11DE-8A39-0800200C9A66"
 
#define NOTIFY_BRNUP_MIN   0x11
 
#define NOTIFY_BRNUP_MAX   0x1f
 
#define NOTIFY_BRNDOWN_MIN   0x20
 
#define NOTIFY_BRNDOWN_MAX   0x2e
 
#define NOTIFY_KBD_BRTUP   0xc4
 
#define NOTIFY_KBD_BRTDWN   0xc5
 
#define ASUS_WMI_METHODID_SPEC   0x43455053 /* BIOS SPECification */
 
#define ASUS_WMI_METHODID_SFBD   0x44424653 /* Set First Boot Device */
 
#define ASUS_WMI_METHODID_GLCD   0x44434C47 /* Get LCD status */
 
#define ASUS_WMI_METHODID_GPID   0x44495047 /* Get Panel ID?? (Resol) */
 
#define ASUS_WMI_METHODID_QMOD   0x444F4D51 /* Quiet MODe */
 
#define ASUS_WMI_METHODID_SPLV   0x4C425053 /* Set Panel Light Value */
 
#define ASUS_WMI_METHODID_SFUN   0x4E554653 /* FUNCtionalities */
 
#define ASUS_WMI_METHODID_SDSP   0x50534453 /* Set DiSPlay output */
 
#define ASUS_WMI_METHODID_GDSP   0x50534447 /* Get DiSPlay output */
 
#define ASUS_WMI_METHODID_DEVP   0x50564544 /* DEVice Policy */
 
#define ASUS_WMI_METHODID_OSVR   0x5256534F /* OS VeRsion */
 
#define ASUS_WMI_METHODID_DSTS   0x53544344 /* Device STatuS */
 
#define ASUS_WMI_METHODID_DSTS2   0x53545344 /* Device STatuS #2*/
 
#define ASUS_WMI_METHODID_BSTS   0x53545342 /* Bios STatuS ? */
 
#define ASUS_WMI_METHODID_DEVS   0x53564544 /* DEVice Set */
 
#define ASUS_WMI_METHODID_CFVS   0x53564643 /* CPU Frequency Volt Set */
 
#define ASUS_WMI_METHODID_KBFT   0x5446424B /* KeyBoard FilTer */
 
#define ASUS_WMI_METHODID_INIT   0x54494E49 /* INITialize */
 
#define ASUS_WMI_METHODID_HKEY   0x59454B48 /* Hot KEY ?? */
 
#define ASUS_WMI_UNSUPPORTED_METHOD   0xFFFFFFFE
 
#define ASUS_WMI_DEVID_HW_SWITCH   0x00010001
 
#define ASUS_WMI_DEVID_WIRELESS_LED   0x00010002
 
#define ASUS_WMI_DEVID_CWAP   0x00010003
 
#define ASUS_WMI_DEVID_WLAN   0x00010011
 
#define ASUS_WMI_DEVID_WLAN_LED   0x00010012
 
#define ASUS_WMI_DEVID_BLUETOOTH   0x00010013
 
#define ASUS_WMI_DEVID_GPS   0x00010015
 
#define ASUS_WMI_DEVID_WIMAX   0x00010017
 
#define ASUS_WMI_DEVID_WWAN3G   0x00010019
 
#define ASUS_WMI_DEVID_UWB   0x00010021
 
#define ASUS_WMI_DEVID_LED1   0x00020011
 
#define ASUS_WMI_DEVID_LED2   0x00020012
 
#define ASUS_WMI_DEVID_LED3   0x00020013
 
#define ASUS_WMI_DEVID_LED4   0x00020014
 
#define ASUS_WMI_DEVID_LED5   0x00020015
 
#define ASUS_WMI_DEVID_LED6   0x00020016
 
#define ASUS_WMI_DEVID_BACKLIGHT   0x00050011
 
#define ASUS_WMI_DEVID_BRIGHTNESS   0x00050012
 
#define ASUS_WMI_DEVID_KBD_BACKLIGHT   0x00050021
 
#define ASUS_WMI_DEVID_LIGHT_SENSOR   0x00050022 /* ?? */
 
#define ASUS_WMI_DEVID_CAMERA   0x00060013
 
#define ASUS_WMI_DEVID_CARDREADER   0x00080013
 
#define ASUS_WMI_DEVID_TOUCHPAD   0x00100011
 
#define ASUS_WMI_DEVID_TOUCHPAD_LED   0x00100012
 
#define ASUS_WMI_DEVID_THERMAL_CTRL   0x00110011
 
#define ASUS_WMI_DEVID_FAN_CTRL   0x00110012
 
#define ASUS_WMI_DEVID_PROCESSOR_STATE   0x00120012
 
#define ASUS_WMI_DEVID_LID_RESUME   0x00120031
 
#define ASUS_WMI_DSTS_STATUS_BIT   0x00000001
 
#define ASUS_WMI_DSTS_UNKNOWN_BIT   0x00000002
 
#define ASUS_WMI_DSTS_PRESENCE_BIT   0x00010000
 
#define ASUS_WMI_DSTS_USER_BIT   0x00020000
 
#define ASUS_WMI_DSTS_BIOS_BIT   0x00040000
 
#define ASUS_WMI_DSTS_BRIGHTNESS_MASK   0x000000FF
 
#define ASUS_WMI_DSTS_MAX_BRIGTH_MASK   0x0000FF00
 
#define ASUS_WMI_CREATE_DEVICE_ATTR(_name, _mode, _cm)
 

Functions

 MODULE_AUTHOR ("Corentin Chary <[email protected]>, ""Yong Wang <[email protected]>")
 
 MODULE_DESCRIPTION ("Asus Generic WMI Driver")
 
 MODULE_LICENSE ("GPL")
 
 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)
 
int __init_or_module asus_wmi_register_driver (struct asus_wmi_driver *driver)
 
 EXPORT_SYMBOL_GPL (asus_wmi_register_driver)
 
void asus_wmi_unregister_driver (struct asus_wmi_driver *driver)
 
 EXPORT_SYMBOL_GPL (asus_wmi_unregister_driver)
 
 module_init (asus_wmi_init)
 
 module_exit (asus_wmi_exit)
 

Variables

struct bios_args __packed
 

Macro Definition Documentation

#define ASUS_WMI_CREATE_DEVICE_ATTR (   _name,
  _mode,
  _cm 
)
Value:
static ssize_t show_##_name(struct device *dev, \
char *buf) \
{ \
\
return show_sys_wmi(asus, _cm, buf); \
} \
static ssize_t store_##_name(struct device *dev, \
const char *buf, size_t count) \
{ \
\
return store_sys_wmi(asus, _cm, buf, count); \
} \
static struct device_attribute dev_attr_##_name = { \
.attr = { \
.name = __stringify(_name), \
.mode = _mode }, \
.show = show_##_name, \
.store = store_##_name, \
}

Definition at line 1358 of file asus-wmi.c.

#define ASUS_WMI_DEVID_BACKLIGHT   0x00050011

Definition at line 119 of file asus-wmi.c.

#define ASUS_WMI_DEVID_BLUETOOTH   0x00010013

Definition at line 103 of file asus-wmi.c.

#define ASUS_WMI_DEVID_BRIGHTNESS   0x00050012

Definition at line 120 of file asus-wmi.c.

#define ASUS_WMI_DEVID_CAMERA   0x00060013

Definition at line 125 of file asus-wmi.c.

#define ASUS_WMI_DEVID_CARDREADER   0x00080013

Definition at line 128 of file asus-wmi.c.

#define ASUS_WMI_DEVID_CWAP   0x00010003

Definition at line 100 of file asus-wmi.c.

#define ASUS_WMI_DEVID_FAN_CTRL   0x00110012

Definition at line 136 of file asus-wmi.c.

#define ASUS_WMI_DEVID_GPS   0x00010015

Definition at line 104 of file asus-wmi.c.

#define ASUS_WMI_DEVID_HW_SWITCH   0x00010001

Definition at line 98 of file asus-wmi.c.

#define ASUS_WMI_DEVID_KBD_BACKLIGHT   0x00050021

Definition at line 121 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LED1   0x00020011

Definition at line 111 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LED2   0x00020012

Definition at line 112 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LED3   0x00020013

Definition at line 113 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LED4   0x00020014

Definition at line 114 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LED5   0x00020015

Definition at line 115 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LED6   0x00020016

Definition at line 116 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LID_RESUME   0x00120031

Definition at line 142 of file asus-wmi.c.

#define ASUS_WMI_DEVID_LIGHT_SENSOR   0x00050022 /* ?? */

Definition at line 122 of file asus-wmi.c.

#define ASUS_WMI_DEVID_PROCESSOR_STATE   0x00120012

Definition at line 139 of file asus-wmi.c.

#define ASUS_WMI_DEVID_THERMAL_CTRL   0x00110011

Definition at line 135 of file asus-wmi.c.

#define ASUS_WMI_DEVID_TOUCHPAD   0x00100011

Definition at line 131 of file asus-wmi.c.

#define ASUS_WMI_DEVID_TOUCHPAD_LED   0x00100012

Definition at line 132 of file asus-wmi.c.

#define ASUS_WMI_DEVID_UWB   0x00010021

Definition at line 107 of file asus-wmi.c.

#define ASUS_WMI_DEVID_WIMAX   0x00010017

Definition at line 105 of file asus-wmi.c.

#define ASUS_WMI_DEVID_WIRELESS_LED   0x00010002

Definition at line 99 of file asus-wmi.c.

#define ASUS_WMI_DEVID_WLAN   0x00010011

Definition at line 101 of file asus-wmi.c.

#define ASUS_WMI_DEVID_WLAN_LED   0x00010012

Definition at line 102 of file asus-wmi.c.

#define ASUS_WMI_DEVID_WWAN3G   0x00010019

Definition at line 106 of file asus-wmi.c.

#define ASUS_WMI_DSTS_BIOS_BIT   0x00040000

Definition at line 149 of file asus-wmi.c.

#define ASUS_WMI_DSTS_BRIGHTNESS_MASK   0x000000FF

Definition at line 150 of file asus-wmi.c.

#define ASUS_WMI_DSTS_MAX_BRIGTH_MASK   0x0000FF00

Definition at line 151 of file asus-wmi.c.

#define ASUS_WMI_DSTS_PRESENCE_BIT   0x00010000

Definition at line 147 of file asus-wmi.c.

#define ASUS_WMI_DSTS_STATUS_BIT   0x00000001

Definition at line 145 of file asus-wmi.c.

#define ASUS_WMI_DSTS_UNKNOWN_BIT   0x00000002

Definition at line 146 of file asus-wmi.c.

#define ASUS_WMI_DSTS_USER_BIT   0x00020000

Definition at line 148 of file asus-wmi.c.

#define ASUS_WMI_METHODID_BSTS   0x53545342 /* Bios STatuS ? */

Definition at line 88 of file asus-wmi.c.

#define ASUS_WMI_METHODID_CFVS   0x53564643 /* CPU Frequency Volt Set */

Definition at line 90 of file asus-wmi.c.

#define ASUS_WMI_METHODID_DEVP   0x50564544 /* DEVice Policy */

Definition at line 84 of file asus-wmi.c.

#define ASUS_WMI_METHODID_DEVS   0x53564544 /* DEVice Set */

Definition at line 89 of file asus-wmi.c.

#define ASUS_WMI_METHODID_DSTS   0x53544344 /* Device STatuS */

Definition at line 86 of file asus-wmi.c.

#define ASUS_WMI_METHODID_DSTS2   0x53545344 /* Device STatuS #2*/

Definition at line 87 of file asus-wmi.c.

#define ASUS_WMI_METHODID_GDSP   0x50534447 /* Get DiSPlay output */

Definition at line 83 of file asus-wmi.c.

#define ASUS_WMI_METHODID_GLCD   0x44434C47 /* Get LCD status */

Definition at line 77 of file asus-wmi.c.

#define ASUS_WMI_METHODID_GPID   0x44495047 /* Get Panel ID?? (Resol) */

Definition at line 78 of file asus-wmi.c.

#define ASUS_WMI_METHODID_HKEY   0x59454B48 /* Hot KEY ?? */

Definition at line 93 of file asus-wmi.c.

#define ASUS_WMI_METHODID_INIT   0x54494E49 /* INITialize */

Definition at line 92 of file asus-wmi.c.

#define ASUS_WMI_METHODID_KBFT   0x5446424B /* KeyBoard FilTer */

Definition at line 91 of file asus-wmi.c.

#define ASUS_WMI_METHODID_OSVR   0x5256534F /* OS VeRsion */

Definition at line 85 of file asus-wmi.c.

#define ASUS_WMI_METHODID_QMOD   0x444F4D51 /* Quiet MODe */

Definition at line 79 of file asus-wmi.c.

#define ASUS_WMI_METHODID_SDSP   0x50534453 /* Set DiSPlay output */

Definition at line 82 of file asus-wmi.c.

#define ASUS_WMI_METHODID_SFBD   0x44424653 /* Set First Boot Device */

Definition at line 76 of file asus-wmi.c.

#define ASUS_WMI_METHODID_SFUN   0x4E554653 /* FUNCtionalities */

Definition at line 81 of file asus-wmi.c.

#define ASUS_WMI_METHODID_SPEC   0x43455053 /* BIOS SPECification */

Definition at line 75 of file asus-wmi.c.

#define ASUS_WMI_METHODID_SPLV   0x4C425053 /* Set Panel Light Value */

Definition at line 80 of file asus-wmi.c.

#define ASUS_WMI_MGMT_GUID   "97845ED0-4E6D-11DE-8A39-0800200C9A66"

Definition at line 65 of file asus-wmi.c.

#define ASUS_WMI_UNSUPPORTED_METHOD   0xFFFFFFFE

Definition at line 95 of file asus-wmi.c.

#define NOTIFY_BRNDOWN_MAX   0x2e

Definition at line 70 of file asus-wmi.c.

#define NOTIFY_BRNDOWN_MIN   0x20

Definition at line 69 of file asus-wmi.c.

#define NOTIFY_BRNUP_MAX   0x1f

Definition at line 68 of file asus-wmi.c.

#define NOTIFY_BRNUP_MIN   0x11

Definition at line 67 of file asus-wmi.c.

#define NOTIFY_KBD_BRTDWN   0xc5

Definition at line 72 of file asus-wmi.c.

#define NOTIFY_KBD_BRTUP   0xc4

Definition at line 71 of file asus-wmi.c.

#define pr_fmt (   fmt)    KBUILD_MODNAME ": " fmt

Definition at line 27 of file asus-wmi.c.

#define to_asus_wmi_driver (   pdrv)    (container_of((pdrv), struct asus_wmi_driver, platform_driver))

Definition at line 62 of file asus-wmi.c.

#define to_platform_driver (   drv)    (container_of((drv), struct platform_driver, driver))

Definition at line 59 of file asus-wmi.c.

Function Documentation

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   
)
int __init_or_module asus_wmi_register_driver ( struct asus_wmi_driver driver)

Definition at line 1856 of file asus-wmi.c.

void asus_wmi_unregister_driver ( struct asus_wmi_driver driver)

Definition at line 1881 of file asus-wmi.c.

EXPORT_SYMBOL_GPL ( asus_wmi_register_driver  )
EXPORT_SYMBOL_GPL ( asus_wmi_unregister_driver  )
MODULE_AUTHOR ( "Corentin Chary <[email protected] ,
""Yong Wang< yong.y.wang @intel.com >"   
)
MODULE_DESCRIPTION ( "Asus Generic WMI Driver"  )
module_exit ( asus_wmi_exit  )
module_init ( asus_wmi_init  )
MODULE_LICENSE ( "GPL"  )

Variable Documentation