static int __devinit asus_acpi_init(struct asus_laptop *asus) { int result = 0; result = acpi_bus_get_status(asus->device); if (result) return result; if (!asus->device->status.present) { pr_err("Hotkey device not present, aborting\n"); return -ENODEV; } result = asus_laptop_get_info(asus); if (result) return result; if (!strcmp(bled_type, "led")) asus->bled_type = TYPE_LED; else if (!strcmp(bled_type, "rfkill")) asus->bled_type = TYPE_RFKILL; if (!strcmp(wled_type, "led")) asus->wled_type = TYPE_LED; else if (!strcmp(wled_type, "rfkill")) asus->wled_type = TYPE_RFKILL; if (bluetooth_status >= 0) asus_bluetooth_set(asus, !!bluetooth_status); if (wlan_status >= 0) asus_wlan_set(asus, !!wlan_status); if (wimax_status >= 0) asus_wimax_set(asus, !!wimax_status); if (wwan_status >= 0) asus_wwan_set(asus, !!wwan_status); if (!acpi_check_handle(asus->handle, METHOD_KBD_LIGHT_SET, NULL)) asus_kled_set(asus, 1); asus->ledd_status = 0xFFF; asus->light_switch = !!als_status; asus->light_level = 5; if (asus->is_pega_lucid) { asus_als_switch(asus, asus->light_switch); } else if (!acpi_check_handle(asus->handle, METHOD_ALS_CONTROL, NULL) && !acpi_check_handle(asus->handle, METHOD_ALS_LEVEL, NULL)) { asus_als_switch(asus, asus->light_switch); asus_als_level(asus, asus->light_level); } return result; }
static int __devinit asus_acpi_init(struct asus_laptop *asus) { int result = 0; result = acpi_bus_get_status(asus->device); if (result) return result; if (!asus->device->status.present) { pr_err("Hotkey device not present, aborting\n"); return -ENODEV; } result = asus_laptop_get_info(asus); if (result) return result; /* WLED and BLED are on by default */ if (bluetooth_status >= 0) asus_bluetooth_set(asus, !!bluetooth_status); if (wlan_status >= 0) asus_wlan_set(asus, !!wlan_status); if (wimax_status >= 0) asus_wimax_set(asus, !!wimax_status); if (wwan_status >= 0) asus_wwan_set(asus, !!wwan_status); /* Keyboard Backlight is on by default */ if (!acpi_check_handle(asus->handle, METHOD_KBD_LIGHT_SET, NULL)) asus_kled_set(asus, 1); /* LED display is off by default */ asus->ledd_status = 0xFFF; /* Set initial values of light sensor and level */ asus->light_switch = !!als_status; asus->light_level = 5; /* level 5 for sensor sensitivity */ if (asus->is_pega_lucid) { asus_als_switch(asus, asus->light_switch); } else if (!acpi_check_handle(asus->handle, METHOD_ALS_CONTROL, NULL) && !acpi_check_handle(asus->handle, METHOD_ALS_LEVEL, NULL)) { asus_als_switch(asus, asus->light_switch); asus_als_level(asus, asus->light_level); } return result; }
static int asus_rfkill_set(void *data, bool blocked) { struct asus_rfkill *rfk = data; struct asus_laptop *asus = rfk->asus; if (rfk->control_id == WL_RSTS) return asus_wlan_set(asus, !blocked); else if (rfk->control_id == BT_RSTS) return asus_bluetooth_set(asus, !blocked); else if (rfk->control_id == WM_RSTS) return asus_wimax_set(asus, !blocked); else if (rfk->control_id == WW_RSTS) return asus_wwan_set(asus, !blocked); return -EINVAL; }