Loading drivers/misc/asus-laptop.c +34 −34 Original line number Diff line number Diff line Loading @@ -245,32 +245,19 @@ static int write_acpi_int(acpi_handle handle, const char *method, int val, return (status == AE_OK); } static int read_acpi_int(acpi_handle handle, const char *method, int *val, struct acpi_object_list *params) { struct acpi_buffer output; union acpi_object out_obj; acpi_status status; output.length = sizeof(out_obj); output.pointer = &out_obj; status = acpi_evaluate_object(handle, (char *)method, params, &output); *val = out_obj.integer.value; return (status == AE_OK) && (out_obj.type == ACPI_TYPE_INTEGER); } static int read_wireless_status(int mask) { int status; ulong status; acpi_status rv = AE_OK; if (!wireless_status_handle) return (hotk->status & mask) ? 1 : 0; if (read_acpi_int(wireless_status_handle, NULL, &status, NULL)) { return (status & mask) ? 1 : 0; } else rv = acpi_evaluate_integer(wireless_status_handle, NULL, NULL, &status); if (ACPI_FAILURE(rv)) printk(ASUS_WARNING "Error reading Wireless status\n"); else return (status & mask) ? 1 : 0; return (hotk->status & mask) ? 1 : 0; } Loading Loading @@ -354,9 +341,11 @@ static void lcd_blank(int blank) static int read_brightness(struct backlight_device *bd) { int value; ulong value; acpi_status rv = AE_OK; if (!read_acpi_int(brightness_get_handle, NULL, &value, NULL)) rv = acpi_evaluate_integer(brightness_get_handle, NULL, NULL, &value); if (ACPI_FAILURE(rv)) printk(ASUS_WARNING "Error reading brightness\n"); return value; Loading Loading @@ -403,8 +392,10 @@ static ssize_t show_infos(struct device *dev, struct device_attribute *attr, char *page) { int len = 0; int temp; ulong temp; char buf[16]; //enough for all info acpi_status rv = AE_OK; /* * We use the easy way, we don't care of off and count, so we don't set eof * to 1 Loading @@ -418,9 +409,10 @@ static ssize_t show_infos(struct device *dev, * bit signifies that the laptop is equipped with a Wi-Fi MiniPCI card. * The significance of others is yet to be found. */ if (read_acpi_int(hotk->handle, "SFUN", &temp, NULL)) len += sprintf(page + len, "SFUN value : 0x%04x\n", temp); rv = acpi_evaluate_integer(hotk->handle, "SFUN", NULL, &temp); if (!ACPI_FAILURE(rv)) len += sprintf(page + len, "SFUN value : 0x%04x\n", (uint) temp); /* * Another value for userspace: the ASYM method returns 0x02 for * battery low and 0x04 for battery critical, its readings tend to be Loading @@ -428,9 +420,10 @@ static ssize_t show_infos(struct device *dev, * Note: since not all the laptops provide this method, errors are * silently ignored. */ if (read_acpi_int(hotk->handle, "ASYM", &temp, NULL)) len += sprintf(page + len, "ASYM value : 0x%04x\n", temp); rv = acpi_evaluate_integer(hotk->handle, "ASYM", NULL, &temp); if (!ACPI_FAILURE(rv)) len += sprintf(page + len, "ASYM value : 0x%04x\n", (uint) temp); if (asus_info) { snprintf(buf, 16, "%d", asus_info->length); len += sprintf(page + len, "DSDT length : %s\n", buf); Loading Loading @@ -547,12 +540,15 @@ static void set_display(int value) static int read_display(void) { int value = 0; ulong value = 0; acpi_status rv = AE_OK; /* In most of the case, we know how to set the display, but sometime we can't read it */ if (display_get_handle) { if (!read_acpi_int(display_get_handle, NULL, &value, NULL)) rv = acpi_evaluate_integer(display_get_handle, NULL, NULL, &value); if (ACPI_FAILURE(rv)) printk(ASUS_WARNING "Error reading display status\n"); } Loading Loading @@ -771,7 +767,7 @@ static int asus_hotk_get_info(void) { struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; union acpi_object *model = NULL; int bsts_result, hwrs_result; ulong bsts_result, hwrs_result; char *string = NULL; acpi_status status; Loading @@ -794,11 +790,13 @@ static int asus_hotk_get_info(void) } /* This needs to be called for some laptops to init properly */ if (!read_acpi_int(hotk->handle, "BSTS", &bsts_result, NULL)) status = acpi_evaluate_integer(hotk->handle, "BSTS", NULL, &bsts_result); if (ACPI_FAILURE(status)) printk(ASUS_WARNING "Error calling BSTS\n"); else if (bsts_result) printk(ASUS_NOTICE "BSTS called, 0x%02x returned\n", bsts_result); (uint) bsts_result); /* * Try to match the object returned by INIT to the specific model. Loading Loading @@ -840,7 +838,9 @@ static int asus_hotk_get_info(void) * The significance of others is yet to be found. * If we don't find the method, we assume the device are present. */ if (!read_acpi_int(hotk->handle, "HRWS", &hwrs_result, NULL)) status = acpi_evaluate_integer(hotk->handle, "HRWS", NULL, &hwrs_result); if (ACPI_FAILURE(status)) hwrs_result = WL_HWRS | BT_HWRS; if (hwrs_result & WL_HWRS) Loading Loading
drivers/misc/asus-laptop.c +34 −34 Original line number Diff line number Diff line Loading @@ -245,32 +245,19 @@ static int write_acpi_int(acpi_handle handle, const char *method, int val, return (status == AE_OK); } static int read_acpi_int(acpi_handle handle, const char *method, int *val, struct acpi_object_list *params) { struct acpi_buffer output; union acpi_object out_obj; acpi_status status; output.length = sizeof(out_obj); output.pointer = &out_obj; status = acpi_evaluate_object(handle, (char *)method, params, &output); *val = out_obj.integer.value; return (status == AE_OK) && (out_obj.type == ACPI_TYPE_INTEGER); } static int read_wireless_status(int mask) { int status; ulong status; acpi_status rv = AE_OK; if (!wireless_status_handle) return (hotk->status & mask) ? 1 : 0; if (read_acpi_int(wireless_status_handle, NULL, &status, NULL)) { return (status & mask) ? 1 : 0; } else rv = acpi_evaluate_integer(wireless_status_handle, NULL, NULL, &status); if (ACPI_FAILURE(rv)) printk(ASUS_WARNING "Error reading Wireless status\n"); else return (status & mask) ? 1 : 0; return (hotk->status & mask) ? 1 : 0; } Loading Loading @@ -354,9 +341,11 @@ static void lcd_blank(int blank) static int read_brightness(struct backlight_device *bd) { int value; ulong value; acpi_status rv = AE_OK; if (!read_acpi_int(brightness_get_handle, NULL, &value, NULL)) rv = acpi_evaluate_integer(brightness_get_handle, NULL, NULL, &value); if (ACPI_FAILURE(rv)) printk(ASUS_WARNING "Error reading brightness\n"); return value; Loading Loading @@ -403,8 +392,10 @@ static ssize_t show_infos(struct device *dev, struct device_attribute *attr, char *page) { int len = 0; int temp; ulong temp; char buf[16]; //enough for all info acpi_status rv = AE_OK; /* * We use the easy way, we don't care of off and count, so we don't set eof * to 1 Loading @@ -418,9 +409,10 @@ static ssize_t show_infos(struct device *dev, * bit signifies that the laptop is equipped with a Wi-Fi MiniPCI card. * The significance of others is yet to be found. */ if (read_acpi_int(hotk->handle, "SFUN", &temp, NULL)) len += sprintf(page + len, "SFUN value : 0x%04x\n", temp); rv = acpi_evaluate_integer(hotk->handle, "SFUN", NULL, &temp); if (!ACPI_FAILURE(rv)) len += sprintf(page + len, "SFUN value : 0x%04x\n", (uint) temp); /* * Another value for userspace: the ASYM method returns 0x02 for * battery low and 0x04 for battery critical, its readings tend to be Loading @@ -428,9 +420,10 @@ static ssize_t show_infos(struct device *dev, * Note: since not all the laptops provide this method, errors are * silently ignored. */ if (read_acpi_int(hotk->handle, "ASYM", &temp, NULL)) len += sprintf(page + len, "ASYM value : 0x%04x\n", temp); rv = acpi_evaluate_integer(hotk->handle, "ASYM", NULL, &temp); if (!ACPI_FAILURE(rv)) len += sprintf(page + len, "ASYM value : 0x%04x\n", (uint) temp); if (asus_info) { snprintf(buf, 16, "%d", asus_info->length); len += sprintf(page + len, "DSDT length : %s\n", buf); Loading Loading @@ -547,12 +540,15 @@ static void set_display(int value) static int read_display(void) { int value = 0; ulong value = 0; acpi_status rv = AE_OK; /* In most of the case, we know how to set the display, but sometime we can't read it */ if (display_get_handle) { if (!read_acpi_int(display_get_handle, NULL, &value, NULL)) rv = acpi_evaluate_integer(display_get_handle, NULL, NULL, &value); if (ACPI_FAILURE(rv)) printk(ASUS_WARNING "Error reading display status\n"); } Loading Loading @@ -771,7 +767,7 @@ static int asus_hotk_get_info(void) { struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; union acpi_object *model = NULL; int bsts_result, hwrs_result; ulong bsts_result, hwrs_result; char *string = NULL; acpi_status status; Loading @@ -794,11 +790,13 @@ static int asus_hotk_get_info(void) } /* This needs to be called for some laptops to init properly */ if (!read_acpi_int(hotk->handle, "BSTS", &bsts_result, NULL)) status = acpi_evaluate_integer(hotk->handle, "BSTS", NULL, &bsts_result); if (ACPI_FAILURE(status)) printk(ASUS_WARNING "Error calling BSTS\n"); else if (bsts_result) printk(ASUS_NOTICE "BSTS called, 0x%02x returned\n", bsts_result); (uint) bsts_result); /* * Try to match the object returned by INIT to the specific model. Loading Loading @@ -840,7 +838,9 @@ static int asus_hotk_get_info(void) * The significance of others is yet to be found. * If we don't find the method, we assume the device are present. */ if (!read_acpi_int(hotk->handle, "HRWS", &hwrs_result, NULL)) status = acpi_evaluate_integer(hotk->handle, "HRWS", NULL, &hwrs_result); if (ACPI_FAILURE(status)) hwrs_result = WL_HWRS | BT_HWRS; if (hwrs_result & WL_HWRS) Loading