Merge branch 'acpi-cleanup'
* acpi-cleanup: (34 commits) ACPI / proc: Remove alarm proc file ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c ACPI / SBS: Remove SBS's proc directory ACPI / Battery: Remove battery's proc directory ACP / fan: trivial style cleanup ACPI / processor: remove superfluous pr == NULL checks ACPI / mm: use NUMA_NO_NODE toshiba_acpi: convert acpi_evaluate_object() to acpi_evaluate_integer() intel-smartconnect: convert acpi_evaluate_object() to acpi_evaluate_integer() intel-rst: convert acpi_evaluate_object() to acpi_evaluate_integer() fujitsu-laptop: convert acpi_evaluate_object() to acpi_evaluate_integer() i2c-hid: convert acpi_evaluate_object() to acpi_evaluate_integer() ACPI: dock: convert acpi_evaluate_object() to acpi_evaluate_integer() acpi_processor: convert acpi_evaluate_object() to acpi_evaluate_integer() pnpacpi: convert acpi_get_handle() to acpi_has_method() wmi: convert acpi_get_handle() to acpi_has_method() toshiba_acpi: convert acpi_get_handle() to acpi_has_method() sony-laptop: convert acpi_get_handle() to acpi_has_method() intel_menlow: convert acpi_get_handle() to acpi_has_method() fujitsu-laptop: convert acpi_get_handle() to acpi_has_method() ...
This commit is contained in:
@@ -190,16 +190,10 @@ struct eeepc_laptop {
|
||||
*/
|
||||
static int write_acpi_int(acpi_handle handle, const char *method, int val)
|
||||
{
|
||||
struct acpi_object_list params;
|
||||
union acpi_object in_obj;
|
||||
acpi_status status;
|
||||
|
||||
params.count = 1;
|
||||
params.pointer = &in_obj;
|
||||
in_obj.type = ACPI_TYPE_INTEGER;
|
||||
in_obj.integer.value = val;
|
||||
status = acpi_execute_simple_method(handle, (char *)method, val);
|
||||
|
||||
status = acpi_evaluate_object(handle, (char *)method, ¶ms, NULL);
|
||||
return (status == AE_OK ? 0 : -1);
|
||||
}
|
||||
|
||||
|
@@ -219,8 +219,7 @@ static int call_fext_func(int cmd, int arg0, int arg1, int arg2)
|
||||
{ .type = ACPI_TYPE_INTEGER }
|
||||
};
|
||||
struct acpi_object_list arg_list = { 4, ¶ms[0] };
|
||||
struct acpi_buffer output;
|
||||
union acpi_object out_obj;
|
||||
unsigned long long value;
|
||||
acpi_handle handle = NULL;
|
||||
|
||||
status = acpi_get_handle(fujitsu_hotkey->acpi_handle, "FUNC", &handle);
|
||||
@@ -235,10 +234,7 @@ static int call_fext_func(int cmd, int arg0, int arg1, int arg2)
|
||||
params[2].integer.value = arg1;
|
||||
params[3].integer.value = arg2;
|
||||
|
||||
output.length = sizeof(out_obj);
|
||||
output.pointer = &out_obj;
|
||||
|
||||
status = acpi_evaluate_object(handle, NULL, &arg_list, &output);
|
||||
status = acpi_evaluate_integer(handle, NULL, &arg_list, &value);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
vdbg_printk(FUJLAPTOP_DBG_WARN,
|
||||
"FUNC 0x%x (args 0x%x, 0x%x, 0x%x) call failed\n",
|
||||
@@ -246,18 +242,10 @@ static int call_fext_func(int cmd, int arg0, int arg1, int arg2)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (out_obj.type != ACPI_TYPE_INTEGER) {
|
||||
vdbg_printk(FUJLAPTOP_DBG_WARN,
|
||||
"FUNC 0x%x (args 0x%x, 0x%x, 0x%x) did not "
|
||||
"return an integer\n",
|
||||
cmd, arg0, arg1, arg2);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
vdbg_printk(FUJLAPTOP_DBG_TRACE,
|
||||
"FUNC 0x%x (args 0x%x, 0x%x, 0x%x) returned 0x%x\n",
|
||||
cmd, arg0, arg1, arg2, (int)out_obj.integer.value);
|
||||
return out_obj.integer.value;
|
||||
cmd, arg0, arg1, arg2, (int)value);
|
||||
return value;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_LEDS_CLASS) || defined(CONFIG_LEDS_CLASS_MODULE)
|
||||
@@ -317,8 +305,6 @@ static enum led_brightness kblamps_get(struct led_classdev *cdev)
|
||||
static int set_lcd_level(int level)
|
||||
{
|
||||
acpi_status status = AE_OK;
|
||||
union acpi_object arg0 = { ACPI_TYPE_INTEGER };
|
||||
struct acpi_object_list arg_list = { 1, &arg0 };
|
||||
acpi_handle handle = NULL;
|
||||
|
||||
vdbg_printk(FUJLAPTOP_DBG_TRACE, "set lcd level via SBLL [%d]\n",
|
||||
@@ -333,9 +319,8 @@ static int set_lcd_level(int level)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
arg0.integer.value = level;
|
||||
|
||||
status = acpi_evaluate_object(handle, NULL, &arg_list, NULL);
|
||||
status = acpi_execute_simple_method(handle, NULL, level);
|
||||
if (ACPI_FAILURE(status))
|
||||
return -ENODEV;
|
||||
|
||||
@@ -345,8 +330,6 @@ static int set_lcd_level(int level)
|
||||
static int set_lcd_level_alt(int level)
|
||||
{
|
||||
acpi_status status = AE_OK;
|
||||
union acpi_object arg0 = { ACPI_TYPE_INTEGER };
|
||||
struct acpi_object_list arg_list = { 1, &arg0 };
|
||||
acpi_handle handle = NULL;
|
||||
|
||||
vdbg_printk(FUJLAPTOP_DBG_TRACE, "set lcd level via SBL2 [%d]\n",
|
||||
@@ -361,9 +344,7 @@ static int set_lcd_level_alt(int level)
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
arg0.integer.value = level;
|
||||
|
||||
status = acpi_evaluate_object(handle, NULL, &arg_list, NULL);
|
||||
status = acpi_execute_simple_method(handle, NULL, level);
|
||||
if (ACPI_FAILURE(status))
|
||||
return -ENODEV;
|
||||
|
||||
@@ -586,11 +567,10 @@ static struct platform_driver fujitsupf_driver = {
|
||||
|
||||
static void dmi_check_cb_common(const struct dmi_system_id *id)
|
||||
{
|
||||
acpi_handle handle;
|
||||
pr_info("Identified laptop model '%s'\n", id->ident);
|
||||
if (use_alt_lcd_levels == -1) {
|
||||
if (ACPI_SUCCESS(acpi_get_handle(NULL,
|
||||
"\\_SB.PCI0.LPCB.FJEX.SBL2", &handle)))
|
||||
if (acpi_has_method(NULL,
|
||||
"\\_SB.PCI0.LPCB.FJEX.SBL2"))
|
||||
use_alt_lcd_levels = 1;
|
||||
else
|
||||
use_alt_lcd_levels = 0;
|
||||
@@ -653,7 +633,6 @@ static struct dmi_system_id fujitsu_dmi_table[] = {
|
||||
|
||||
static int acpi_fujitsu_add(struct acpi_device *device)
|
||||
{
|
||||
acpi_handle handle;
|
||||
int result = 0;
|
||||
int state = 0;
|
||||
struct input_dev *input;
|
||||
@@ -702,8 +681,7 @@ static int acpi_fujitsu_add(struct acpi_device *device)
|
||||
|
||||
fujitsu->dev = device;
|
||||
|
||||
if (ACPI_SUCCESS
|
||||
(acpi_get_handle(device->handle, METHOD_NAME__INI, &handle))) {
|
||||
if (acpi_has_method(device->handle, METHOD_NAME__INI)) {
|
||||
vdbg_printk(FUJLAPTOP_DBG_INFO, "Invoking _INI\n");
|
||||
if (ACPI_FAILURE
|
||||
(acpi_evaluate_object
|
||||
@@ -803,7 +781,6 @@ static void acpi_fujitsu_notify(struct acpi_device *device, u32 event)
|
||||
|
||||
static int acpi_fujitsu_hotkey_add(struct acpi_device *device)
|
||||
{
|
||||
acpi_handle handle;
|
||||
int result = 0;
|
||||
int state = 0;
|
||||
struct input_dev *input;
|
||||
@@ -866,8 +843,7 @@ static int acpi_fujitsu_hotkey_add(struct acpi_device *device)
|
||||
|
||||
fujitsu_hotkey->dev = device;
|
||||
|
||||
if (ACPI_SUCCESS
|
||||
(acpi_get_handle(device->handle, METHOD_NAME__INI, &handle))) {
|
||||
if (acpi_has_method(device->handle, METHOD_NAME__INI)) {
|
||||
vdbg_printk(FUJLAPTOP_DBG_INFO, "Invoking _INI\n");
|
||||
if (ACPI_FAILURE
|
||||
(acpi_evaluate_object
|
||||
|
@@ -29,24 +29,16 @@ static ssize_t irst_show_wakeup_events(struct device *dev,
|
||||
char *buf)
|
||||
{
|
||||
struct acpi_device *acpi;
|
||||
struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||
union acpi_object *result;
|
||||
unsigned long long value;
|
||||
acpi_status status;
|
||||
|
||||
acpi = to_acpi_device(dev);
|
||||
|
||||
status = acpi_evaluate_object(acpi->handle, "GFFS", NULL, &output);
|
||||
status = acpi_evaluate_integer(acpi->handle, "GFFS", NULL, &value);
|
||||
if (!ACPI_SUCCESS(status))
|
||||
return -EINVAL;
|
||||
|
||||
result = output.pointer;
|
||||
|
||||
if (result->type != ACPI_TYPE_INTEGER) {
|
||||
kfree(result);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return sprintf(buf, "%lld\n", result->integer.value);
|
||||
return sprintf(buf, "%lld\n", value);
|
||||
}
|
||||
|
||||
static ssize_t irst_store_wakeup_events(struct device *dev,
|
||||
@@ -54,8 +46,6 @@ static ssize_t irst_store_wakeup_events(struct device *dev,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct acpi_device *acpi;
|
||||
struct acpi_object_list input;
|
||||
union acpi_object param;
|
||||
acpi_status status;
|
||||
unsigned long value;
|
||||
int error;
|
||||
@@ -67,13 +57,7 @@ static ssize_t irst_store_wakeup_events(struct device *dev,
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
param.type = ACPI_TYPE_INTEGER;
|
||||
param.integer.value = value;
|
||||
|
||||
input.count = 1;
|
||||
input.pointer = ¶m;
|
||||
|
||||
status = acpi_evaluate_object(acpi->handle, "SFFS", &input, NULL);
|
||||
status = acpi_execute_simple_method(acpi->handle, "SFFS", value);
|
||||
|
||||
if (!ACPI_SUCCESS(status))
|
||||
return -EINVAL;
|
||||
@@ -91,24 +75,16 @@ static ssize_t irst_show_wakeup_time(struct device *dev,
|
||||
struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct acpi_device *acpi;
|
||||
struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||
union acpi_object *result;
|
||||
unsigned long long value;
|
||||
acpi_status status;
|
||||
|
||||
acpi = to_acpi_device(dev);
|
||||
|
||||
status = acpi_evaluate_object(acpi->handle, "GFTV", NULL, &output);
|
||||
status = acpi_evaluate_integer(acpi->handle, "GFTV", NULL, &value);
|
||||
if (!ACPI_SUCCESS(status))
|
||||
return -EINVAL;
|
||||
|
||||
result = output.pointer;
|
||||
|
||||
if (result->type != ACPI_TYPE_INTEGER) {
|
||||
kfree(result);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return sprintf(buf, "%lld\n", result->integer.value);
|
||||
return sprintf(buf, "%lld\n", value);
|
||||
}
|
||||
|
||||
static ssize_t irst_store_wakeup_time(struct device *dev,
|
||||
@@ -116,8 +92,6 @@ static ssize_t irst_store_wakeup_time(struct device *dev,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
struct acpi_device *acpi;
|
||||
struct acpi_object_list input;
|
||||
union acpi_object param;
|
||||
acpi_status status;
|
||||
unsigned long value;
|
||||
int error;
|
||||
@@ -129,13 +103,7 @@ static ssize_t irst_store_wakeup_time(struct device *dev,
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
param.type = ACPI_TYPE_INTEGER;
|
||||
param.integer.value = value;
|
||||
|
||||
input.count = 1;
|
||||
input.pointer = ¶m;
|
||||
|
||||
status = acpi_evaluate_object(acpi->handle, "SFTV", &input, NULL);
|
||||
status = acpi_execute_simple_method(acpi->handle, "SFTV", value);
|
||||
|
||||
if (!ACPI_SUCCESS(status))
|
||||
return -EINVAL;
|
||||
|
@@ -25,37 +25,18 @@ MODULE_LICENSE("GPL");
|
||||
|
||||
static int smartconnect_acpi_init(struct acpi_device *acpi)
|
||||
{
|
||||
struct acpi_object_list input;
|
||||
struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
|
||||
union acpi_object *result;
|
||||
union acpi_object param;
|
||||
unsigned long long value;
|
||||
acpi_status status;
|
||||
|
||||
status = acpi_evaluate_object(acpi->handle, "GAOS", NULL, &output);
|
||||
status = acpi_evaluate_integer(acpi->handle, "GAOS", NULL, &value);
|
||||
if (!ACPI_SUCCESS(status))
|
||||
return -EINVAL;
|
||||
|
||||
result = output.pointer;
|
||||
|
||||
if (result->type != ACPI_TYPE_INTEGER) {
|
||||
kfree(result);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (result->integer.value & 0x1) {
|
||||
param.type = ACPI_TYPE_INTEGER;
|
||||
param.integer.value = 0;
|
||||
|
||||
input.count = 1;
|
||||
input.pointer = ¶m;
|
||||
|
||||
if (value & 0x1) {
|
||||
dev_info(&acpi->dev, "Disabling Intel Smart Connect\n");
|
||||
status = acpi_evaluate_object(acpi->handle, "SAOS", &input,
|
||||
NULL);
|
||||
status = acpi_execute_simple_method(acpi->handle, "SAOS", 0);
|
||||
}
|
||||
|
||||
kfree(result);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@@ -156,19 +156,15 @@ static struct thermal_cooling_device_ops memory_cooling_ops = {
|
||||
static int intel_menlow_memory_add(struct acpi_device *device)
|
||||
{
|
||||
int result = -ENODEV;
|
||||
acpi_status status = AE_OK;
|
||||
acpi_handle dummy;
|
||||
struct thermal_cooling_device *cdev;
|
||||
|
||||
if (!device)
|
||||
return -EINVAL;
|
||||
|
||||
status = acpi_get_handle(device->handle, MEMORY_GET_BANDWIDTH, &dummy);
|
||||
if (ACPI_FAILURE(status))
|
||||
if (!acpi_has_method(device->handle, MEMORY_GET_BANDWIDTH))
|
||||
goto end;
|
||||
|
||||
status = acpi_get_handle(device->handle, MEMORY_SET_BANDWIDTH, &dummy);
|
||||
if (ACPI_FAILURE(status))
|
||||
if (!acpi_has_method(device->handle, MEMORY_SET_BANDWIDTH))
|
||||
goto end;
|
||||
|
||||
cdev = thermal_cooling_device_register("Memory controller", device,
|
||||
|
@@ -1508,7 +1508,6 @@ static void sony_nc_function_resume(void)
|
||||
static int sony_nc_resume(struct device *dev)
|
||||
{
|
||||
struct sony_nc_value *item;
|
||||
acpi_handle handle;
|
||||
|
||||
for (item = sony_nc_values; item->name; item++) {
|
||||
int ret;
|
||||
@@ -1523,15 +1522,13 @@ static int sony_nc_resume(struct device *dev)
|
||||
}
|
||||
}
|
||||
|
||||
if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "ECON",
|
||||
&handle))) {
|
||||
if (acpi_has_method(sony_nc_acpi_handle, "ECON")) {
|
||||
int arg = 1;
|
||||
if (sony_nc_int_call(sony_nc_acpi_handle, "ECON", &arg, NULL))
|
||||
dprintk("ECON Method failed\n");
|
||||
}
|
||||
|
||||
if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "SN00",
|
||||
&handle)))
|
||||
if (acpi_has_method(sony_nc_acpi_handle, "SN00"))
|
||||
sony_nc_function_resume();
|
||||
|
||||
return 0;
|
||||
@@ -2682,7 +2679,6 @@ static void sony_nc_backlight_ng_read_limits(int handle,
|
||||
|
||||
static void sony_nc_backlight_setup(void)
|
||||
{
|
||||
acpi_handle unused;
|
||||
int max_brightness = 0;
|
||||
const struct backlight_ops *ops = NULL;
|
||||
struct backlight_properties props;
|
||||
@@ -2717,8 +2713,7 @@ static void sony_nc_backlight_setup(void)
|
||||
sony_nc_backlight_ng_read_limits(0x14c, &sony_bl_props);
|
||||
max_brightness = sony_bl_props.maxlvl - sony_bl_props.offset;
|
||||
|
||||
} else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT",
|
||||
&unused))) {
|
||||
} else if (acpi_has_method(sony_nc_acpi_handle, "GBRT")) {
|
||||
ops = &sony_backlight_ops;
|
||||
max_brightness = SONY_MAX_BRIGHTNESS - 1;
|
||||
|
||||
@@ -2750,7 +2745,6 @@ static int sony_nc_add(struct acpi_device *device)
|
||||
{
|
||||
acpi_status status;
|
||||
int result = 0;
|
||||
acpi_handle handle;
|
||||
struct sony_nc_value *item;
|
||||
|
||||
pr_info("%s v%s\n", SONY_NC_DRIVER_NAME, SONY_LAPTOP_DRIVER_VERSION);
|
||||
@@ -2790,15 +2784,13 @@ static int sony_nc_add(struct acpi_device *device)
|
||||
goto outplatform;
|
||||
}
|
||||
|
||||
if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "ECON",
|
||||
&handle))) {
|
||||
if (acpi_has_method(sony_nc_acpi_handle, "ECON")) {
|
||||
int arg = 1;
|
||||
if (sony_nc_int_call(sony_nc_acpi_handle, "ECON", &arg, NULL))
|
||||
dprintk("ECON Method failed\n");
|
||||
}
|
||||
|
||||
if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "SN00",
|
||||
&handle))) {
|
||||
if (acpi_has_method(sony_nc_acpi_handle, "SN00")) {
|
||||
dprintk("Doing SNC setup\n");
|
||||
/* retrieve the available handles */
|
||||
result = sony_nc_handles_setup(sony_pf_device);
|
||||
@@ -2821,9 +2813,8 @@ static int sony_nc_add(struct acpi_device *device)
|
||||
|
||||
/* find the available acpiget as described in the DSDT */
|
||||
for (; item->acpiget && *item->acpiget; ++item->acpiget) {
|
||||
if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle,
|
||||
*item->acpiget,
|
||||
&handle))) {
|
||||
if (acpi_has_method(sony_nc_acpi_handle,
|
||||
*item->acpiget)) {
|
||||
dprintk("Found %s getter: %s\n",
|
||||
item->name, *item->acpiget);
|
||||
item->devattr.attr.mode |= S_IRUGO;
|
||||
@@ -2833,9 +2824,8 @@ static int sony_nc_add(struct acpi_device *device)
|
||||
|
||||
/* find the available acpiset as described in the DSDT */
|
||||
for (; item->acpiset && *item->acpiset; ++item->acpiset) {
|
||||
if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle,
|
||||
*item->acpiset,
|
||||
&handle))) {
|
||||
if (acpi_has_method(sony_nc_acpi_handle,
|
||||
*item->acpiset)) {
|
||||
dprintk("Found %s setter: %s\n",
|
||||
item->name, *item->acpiset);
|
||||
item->devattr.attr.mode |= S_IWUSR;
|
||||
|
@@ -80,13 +80,9 @@ static void acpi_topstar_notify(struct acpi_device *device, u32 event)
|
||||
static int acpi_topstar_fncx_switch(struct acpi_device *device, bool state)
|
||||
{
|
||||
acpi_status status;
|
||||
union acpi_object fncx_params[1] = {
|
||||
{ .type = ACPI_TYPE_INTEGER }
|
||||
};
|
||||
struct acpi_object_list fncx_arg_list = { 1, &fncx_params[0] };
|
||||
|
||||
fncx_params[0].integer.value = state ? 0x86 : 0x87;
|
||||
status = acpi_evaluate_object(device->handle, "FNCX", &fncx_arg_list, NULL);
|
||||
status = acpi_execute_simple_method(device->handle, "FNCX",
|
||||
state ? 0x86 : 0x87);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
pr_err("Unable to switch FNCX notifications\n");
|
||||
return -ENODEV;
|
||||
|
@@ -191,16 +191,9 @@ static __inline__ void _set_bit(u32 * word, u32 mask, int value)
|
||||
|
||||
static int write_acpi_int(const char *methodName, int val)
|
||||
{
|
||||
struct acpi_object_list params;
|
||||
union acpi_object in_objs[1];
|
||||
acpi_status status;
|
||||
|
||||
params.count = ARRAY_SIZE(in_objs);
|
||||
params.pointer = in_objs;
|
||||
in_objs[0].type = ACPI_TYPE_INTEGER;
|
||||
in_objs[0].integer.value = val;
|
||||
|
||||
status = acpi_evaluate_object(NULL, (char *)methodName, ¶ms, NULL);
|
||||
status = acpi_execute_simple_method(NULL, (char *)methodName, val);
|
||||
return (status == AE_OK) ? 0 : -EIO;
|
||||
}
|
||||
|
||||
@@ -947,21 +940,17 @@ static void toshiba_acpi_hotkey_work(struct work_struct *work)
|
||||
*/
|
||||
static int toshiba_acpi_query_hotkey(struct toshiba_acpi_dev *dev)
|
||||
{
|
||||
struct acpi_buffer buf;
|
||||
union acpi_object out_obj;
|
||||
unsigned long long value;
|
||||
acpi_status status;
|
||||
|
||||
buf.pointer = &out_obj;
|
||||
buf.length = sizeof(out_obj);
|
||||
|
||||
status = acpi_evaluate_object(dev->acpi_dev->handle, "INFO",
|
||||
NULL, &buf);
|
||||
if (ACPI_FAILURE(status) || out_obj.type != ACPI_TYPE_INTEGER) {
|
||||
status = acpi_evaluate_integer(dev->acpi_dev->handle, "INFO",
|
||||
NULL, &value);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
pr_err("ACPI INFO method execution failed\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
return out_obj.integer.value;
|
||||
return value;
|
||||
}
|
||||
|
||||
static void toshiba_acpi_report_hotkey(struct toshiba_acpi_dev *dev,
|
||||
@@ -981,7 +970,7 @@ static void toshiba_acpi_report_hotkey(struct toshiba_acpi_dev *dev,
|
||||
static int toshiba_acpi_setup_keyboard(struct toshiba_acpi_dev *dev)
|
||||
{
|
||||
acpi_status status;
|
||||
acpi_handle ec_handle, handle;
|
||||
acpi_handle ec_handle;
|
||||
int error;
|
||||
u32 hci_result;
|
||||
|
||||
@@ -1008,10 +997,7 @@ static int toshiba_acpi_setup_keyboard(struct toshiba_acpi_dev *dev)
|
||||
*/
|
||||
status = AE_ERROR;
|
||||
ec_handle = ec_get_handle();
|
||||
if (ec_handle)
|
||||
status = acpi_get_handle(ec_handle, "NTFY", &handle);
|
||||
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
if (ec_handle && acpi_has_method(ec_handle, "NTFY")) {
|
||||
INIT_WORK(&dev->hotkey_work, toshiba_acpi_hotkey_work);
|
||||
|
||||
error = i8042_install_filter(toshiba_acpi_i8042_filter);
|
||||
@@ -1027,10 +1013,9 @@ static int toshiba_acpi_setup_keyboard(struct toshiba_acpi_dev *dev)
|
||||
* Determine hotkey query interface. Prefer using the INFO
|
||||
* method when it is available.
|
||||
*/
|
||||
status = acpi_get_handle(dev->acpi_dev->handle, "INFO", &handle);
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
if (acpi_has_method(dev->acpi_dev->handle, "INFO"))
|
||||
dev->info_supported = 1;
|
||||
} else {
|
||||
else {
|
||||
hci_write1(dev, HCI_SYSTEM_EVENT, 1, &hci_result);
|
||||
if (hci_result == HCI_SUCCESS)
|
||||
dev->system_event_supported = 1;
|
||||
@@ -1155,15 +1140,10 @@ static int toshiba_acpi_remove(struct acpi_device *acpi_dev)
|
||||
|
||||
static const char *find_hci_method(acpi_handle handle)
|
||||
{
|
||||
acpi_status status;
|
||||
acpi_handle hci_handle;
|
||||
|
||||
status = acpi_get_handle(handle, "GHCI", &hci_handle);
|
||||
if (ACPI_SUCCESS(status))
|
||||
if (acpi_has_method(handle, "GHCI"))
|
||||
return "GHCI";
|
||||
|
||||
status = acpi_get_handle(handle, "SPFC", &hci_handle);
|
||||
if (ACPI_SUCCESS(status))
|
||||
if (acpi_has_method(handle, "SPFC"))
|
||||
return "SPFC";
|
||||
|
||||
return NULL;
|
||||
|
@@ -252,8 +252,6 @@ static acpi_status wmi_method_enable(struct wmi_block *wblock, int enable)
|
||||
{
|
||||
struct guid_block *block = NULL;
|
||||
char method[5];
|
||||
struct acpi_object_list input;
|
||||
union acpi_object params[1];
|
||||
acpi_status status;
|
||||
acpi_handle handle;
|
||||
|
||||
@@ -263,13 +261,9 @@ static acpi_status wmi_method_enable(struct wmi_block *wblock, int enable)
|
||||
if (!block)
|
||||
return AE_NOT_EXIST;
|
||||
|
||||
input.count = 1;
|
||||
input.pointer = params;
|
||||
params[0].type = ACPI_TYPE_INTEGER;
|
||||
params[0].integer.value = enable;
|
||||
|
||||
snprintf(method, 5, "WE%02X", block->notify_id);
|
||||
status = acpi_evaluate_object(handle, method, &input, NULL);
|
||||
status = acpi_execute_simple_method(handle, method, enable);
|
||||
|
||||
if (status != AE_OK && status != AE_NOT_FOUND)
|
||||
return status;
|
||||
@@ -353,10 +347,10 @@ struct acpi_buffer *out)
|
||||
{
|
||||
struct guid_block *block = NULL;
|
||||
struct wmi_block *wblock = NULL;
|
||||
acpi_handle handle, wc_handle;
|
||||
acpi_handle handle;
|
||||
acpi_status status, wc_status = AE_ERROR;
|
||||
struct acpi_object_list input, wc_input;
|
||||
union acpi_object wc_params[1], wq_params[1];
|
||||
struct acpi_object_list input;
|
||||
union acpi_object wq_params[1];
|
||||
char method[5];
|
||||
char wc_method[5] = "WC";
|
||||
|
||||
@@ -386,11 +380,6 @@ struct acpi_buffer *out)
|
||||
* enable collection.
|
||||
*/
|
||||
if (block->flags & ACPI_WMI_EXPENSIVE) {
|
||||
wc_input.count = 1;
|
||||
wc_input.pointer = wc_params;
|
||||
wc_params[0].type = ACPI_TYPE_INTEGER;
|
||||
wc_params[0].integer.value = 1;
|
||||
|
||||
strncat(wc_method, block->object_id, 2);
|
||||
|
||||
/*
|
||||
@@ -398,10 +387,9 @@ struct acpi_buffer *out)
|
||||
* expensive, but have no corresponding WCxx method. So we
|
||||
* should not fail if this happens.
|
||||
*/
|
||||
wc_status = acpi_get_handle(handle, wc_method, &wc_handle);
|
||||
if (ACPI_SUCCESS(wc_status))
|
||||
wc_status = acpi_evaluate_object(handle, wc_method,
|
||||
&wc_input, NULL);
|
||||
if (acpi_has_method(handle, wc_method))
|
||||
wc_status = acpi_execute_simple_method(handle,
|
||||
wc_method, 1);
|
||||
}
|
||||
|
||||
strcpy(method, "WQ");
|
||||
@@ -414,9 +402,7 @@ struct acpi_buffer *out)
|
||||
* the WQxx method failed - we should disable collection anyway.
|
||||
*/
|
||||
if ((block->flags & ACPI_WMI_EXPENSIVE) && ACPI_SUCCESS(wc_status)) {
|
||||
wc_params[0].integer.value = 0;
|
||||
status = acpi_evaluate_object(handle,
|
||||
wc_method, &wc_input, NULL);
|
||||
status = acpi_execute_simple_method(handle, wc_method, 0);
|
||||
}
|
||||
|
||||
return status;
|
||||
|
Reference in New Issue
Block a user