ACPI: thinkpad-acpi: add sysfs support to the cmos command subdriver
Add sysfs attributes to send ThinkPad CMOS commands. Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
committed by
Len Brown
parent
eaa7571b2d
commit
b616004c70
@@ -1743,8 +1743,30 @@ static struct ibm_struct bay_driver_data = {
|
||||
* CMOS subdriver
|
||||
*/
|
||||
|
||||
/* sysfs cmos_command -------------------------------------------------- */
|
||||
static ssize_t cmos_command_store(struct device *dev,
|
||||
struct device_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
unsigned long cmos_cmd;
|
||||
int res;
|
||||
|
||||
if (parse_strtoul(buf, 21, &cmos_cmd))
|
||||
return -EINVAL;
|
||||
|
||||
res = issue_thinkpad_cmos_command(cmos_cmd);
|
||||
return (res)? res : count;
|
||||
}
|
||||
|
||||
static struct device_attribute dev_attr_cmos_command =
|
||||
__ATTR(cmos_command, S_IWUSR, NULL, cmos_command_store);
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
|
||||
static int __init cmos_init(struct ibm_init_struct *iibm)
|
||||
{
|
||||
int res;
|
||||
|
||||
vdbg_printk(TPACPI_DBG_INIT,
|
||||
"initializing cmos commands subdriver\n");
|
||||
|
||||
@@ -1752,9 +1774,19 @@ static int __init cmos_init(struct ibm_init_struct *iibm)
|
||||
|
||||
vdbg_printk(TPACPI_DBG_INIT, "cmos commands are %s\n",
|
||||
str_supported(cmos_handle != NULL));
|
||||
|
||||
res = device_create_file(&tpacpi_pdev->dev, &dev_attr_cmos_command);
|
||||
if (res)
|
||||
return res;
|
||||
|
||||
return (cmos_handle)? 0 : 1;
|
||||
}
|
||||
|
||||
static void cmos_exit(void)
|
||||
{
|
||||
device_remove_file(&tpacpi_pdev->dev, &dev_attr_cmos_command);
|
||||
}
|
||||
|
||||
static int cmos_read(char *p)
|
||||
{
|
||||
int len = 0;
|
||||
@@ -1795,6 +1827,7 @@ static struct ibm_struct cmos_driver_data = {
|
||||
.name = "cmos",
|
||||
.read = cmos_read,
|
||||
.write = cmos_write,
|
||||
.exit = cmos_exit,
|
||||
};
|
||||
|
||||
/*************************************************************************
|
||||
|
Reference in New Issue
Block a user