• Home
  • Raw
  • Download

Lines Matching refs:asus

234 	struct asus_laptop *asus;  member
245 struct asus_laptop *asus; member
429 static bool asus_check_pega_lucid(struct asus_laptop *asus) in asus_check_pega_lucid() argument
431 return !strcmp(asus->name, DEVICE_NAME_PEGA) && in asus_check_pega_lucid()
432 !acpi_check_handle(asus->handle, METHOD_PEGA_ENABLE, NULL) && in asus_check_pega_lucid()
433 !acpi_check_handle(asus->handle, METHOD_PEGA_DISABLE, NULL) && in asus_check_pega_lucid()
434 !acpi_check_handle(asus->handle, METHOD_PEGA_READ, NULL); in asus_check_pega_lucid()
437 static int asus_pega_lucid_set(struct asus_laptop *asus, int unit, bool enable) in asus_pega_lucid_set() argument
440 return write_acpi_int(asus->handle, method, unit); in asus_pega_lucid_set()
443 static int pega_acc_axis(struct asus_laptop *asus, int curr, char *method) in pega_acc_axis() argument
448 acpi_evaluate_integer(asus->handle, method, NULL, &val); in pega_acc_axis()
466 struct asus_laptop *asus = dev_get_drvdata(parent); in pega_accel_poll() local
472 if (!asus->pega_acc_live) { in pega_accel_poll()
473 asus->pega_acc_live = true; in pega_accel_poll()
481 asus->pega_acc_x = pega_acc_axis(asus, asus->pega_acc_x, METHOD_XLRX); in pega_accel_poll()
482 asus->pega_acc_y = pega_acc_axis(asus, asus->pega_acc_y, METHOD_XLRY); in pega_accel_poll()
483 asus->pega_acc_z = pega_acc_axis(asus, asus->pega_acc_z, METHOD_XLRZ); in pega_accel_poll()
488 input_report_abs(ipd->input, ABS_X, -asus->pega_acc_x); in pega_accel_poll()
489 input_report_abs(ipd->input, ABS_Y, -asus->pega_acc_y); in pega_accel_poll()
490 input_report_abs(ipd->input, ABS_Z, asus->pega_acc_z); in pega_accel_poll()
494 static void pega_accel_exit(struct asus_laptop *asus) in pega_accel_exit() argument
496 if (asus->pega_accel_poll) { in pega_accel_exit()
497 input_unregister_polled_device(asus->pega_accel_poll); in pega_accel_exit()
498 input_free_polled_device(asus->pega_accel_poll); in pega_accel_exit()
500 asus->pega_accel_poll = NULL; in pega_accel_exit()
503 static int pega_accel_init(struct asus_laptop *asus) in pega_accel_init() argument
508 if (!asus->is_pega_lucid) in pega_accel_init()
511 if (acpi_check_handle(asus->handle, METHOD_XLRX, NULL) || in pega_accel_init()
512 acpi_check_handle(asus->handle, METHOD_XLRY, NULL) || in pega_accel_init()
513 acpi_check_handle(asus->handle, METHOD_XLRZ, NULL)) in pega_accel_init()
527 ipd->input->dev.parent = &asus->platform_device->dev; in pega_accel_init()
542 asus->pega_accel_poll = ipd; in pega_accel_init()
551 static int asus_led_set(struct asus_laptop *asus, const char *method, in asus_led_set() argument
561 return write_acpi_int(asus->handle, method, value); in asus_led_set()
572 struct asus_laptop *asus = led->asus; in asus_led_cdev_set() local
575 queue_work(asus->led_workqueue, &led->work); in asus_led_cdev_set()
581 struct asus_laptop *asus = led->asus; in asus_led_cdev_update() local
583 asus_led_set(asus, led->method, led->wk); in asus_led_cdev_update()
594 static int asus_kled_lvl(struct asus_laptop *asus) in asus_kled_lvl() argument
606 rv = acpi_evaluate_integer(asus->handle, METHOD_KBD_LIGHT_GET, in asus_kled_lvl()
615 static int asus_kled_set(struct asus_laptop *asus, int kblv) in asus_kled_set() argument
622 if (write_acpi_int(asus->handle, METHOD_KBD_LIGHT_SET, kblv)) { in asus_kled_set()
633 struct asus_laptop *asus = led->asus; in asus_kled_cdev_set() local
636 queue_work(asus->led_workqueue, &led->work); in asus_kled_cdev_set()
642 struct asus_laptop *asus = led->asus; in asus_kled_cdev_update() local
644 asus_kled_set(asus, led->wk); in asus_kled_cdev_update()
650 struct asus_laptop *asus = led->asus; in asus_kled_cdev_get() local
652 return asus_kled_lvl(asus); in asus_kled_cdev_get()
655 static void asus_led_exit(struct asus_laptop *asus) in asus_led_exit() argument
657 if (!IS_ERR_OR_NULL(asus->wled.led.dev)) in asus_led_exit()
658 led_classdev_unregister(&asus->wled.led); in asus_led_exit()
659 if (!IS_ERR_OR_NULL(asus->bled.led.dev)) in asus_led_exit()
660 led_classdev_unregister(&asus->bled.led); in asus_led_exit()
661 if (!IS_ERR_OR_NULL(asus->mled.led.dev)) in asus_led_exit()
662 led_classdev_unregister(&asus->mled.led); in asus_led_exit()
663 if (!IS_ERR_OR_NULL(asus->tled.led.dev)) in asus_led_exit()
664 led_classdev_unregister(&asus->tled.led); in asus_led_exit()
665 if (!IS_ERR_OR_NULL(asus->pled.led.dev)) in asus_led_exit()
666 led_classdev_unregister(&asus->pled.led); in asus_led_exit()
667 if (!IS_ERR_OR_NULL(asus->rled.led.dev)) in asus_led_exit()
668 led_classdev_unregister(&asus->rled.led); in asus_led_exit()
669 if (!IS_ERR_OR_NULL(asus->gled.led.dev)) in asus_led_exit()
670 led_classdev_unregister(&asus->gled.led); in asus_led_exit()
671 if (!IS_ERR_OR_NULL(asus->kled.led.dev)) in asus_led_exit()
672 led_classdev_unregister(&asus->kled.led); in asus_led_exit()
673 if (asus->led_workqueue) { in asus_led_exit()
674 destroy_workqueue(asus->led_workqueue); in asus_led_exit()
675 asus->led_workqueue = NULL; in asus_led_exit()
680 static int asus_led_register(struct asus_laptop *asus, in asus_led_register() argument
686 if (!method || acpi_check_handle(asus->handle, method, NULL)) in asus_led_register()
689 led->asus = asus; in asus_led_register()
697 return led_classdev_register(&asus->platform_device->dev, led_cdev); in asus_led_register()
700 static int asus_led_init(struct asus_laptop *asus) in asus_led_init() argument
708 if (asus->is_pega_lucid) in asus_led_init()
717 asus->led_workqueue = create_singlethread_workqueue("led_workqueue"); in asus_led_init()
718 if (!asus->led_workqueue) in asus_led_init()
721 if (asus->wled_type == TYPE_LED) in asus_led_init()
722 r = asus_led_register(asus, &asus->wled, "asus::wlan", in asus_led_init()
726 if (asus->bled_type == TYPE_LED) in asus_led_init()
727 r = asus_led_register(asus, &asus->bled, "asus::bluetooth", in asus_led_init()
731 r = asus_led_register(asus, &asus->mled, "asus::mail", METHOD_MLED); in asus_led_init()
734 r = asus_led_register(asus, &asus->tled, "asus::touchpad", METHOD_TLED); in asus_led_init()
737 r = asus_led_register(asus, &asus->rled, "asus::record", METHOD_RLED); in asus_led_init()
740 r = asus_led_register(asus, &asus->pled, "asus::phone", METHOD_PLED); in asus_led_init()
743 r = asus_led_register(asus, &asus->gled, "asus::gaming", METHOD_GLED); in asus_led_init()
746 if (!acpi_check_handle(asus->handle, METHOD_KBD_LIGHT_SET, NULL) && in asus_led_init()
747 !acpi_check_handle(asus->handle, METHOD_KBD_LIGHT_GET, NULL)) { in asus_led_init()
748 struct asus_led *led = &asus->kled; in asus_led_init()
751 led->asus = asus; in asus_led_init()
758 r = led_classdev_register(&asus->platform_device->dev, cdev); in asus_led_init()
762 asus_led_exit(asus); in asus_led_init()
771 struct asus_laptop *asus = bl_get_data(bd); in asus_read_brightness() local
775 rv = acpi_evaluate_integer(asus->handle, METHOD_BRIGHTNESS_GET, in asus_read_brightness()
785 struct asus_laptop *asus = bl_get_data(bd); in asus_set_brightness() local
787 if (write_acpi_int(asus->handle, METHOD_BRIGHTNESS_SET, value)) { in asus_set_brightness()
806 static int asus_backlight_notify(struct asus_laptop *asus) in asus_backlight_notify() argument
808 struct backlight_device *bd = asus->backlight_device; in asus_backlight_notify()
816 static int asus_backlight_init(struct asus_laptop *asus) in asus_backlight_init() argument
821 if (acpi_check_handle(asus->handle, METHOD_BRIGHTNESS_GET, NULL) || in asus_backlight_init()
822 acpi_check_handle(asus->handle, METHOD_BRIGHTNESS_SET, NULL)) in asus_backlight_init()
830 &asus->platform_device->dev, asus, in asus_backlight_init()
834 asus->backlight_device = NULL; in asus_backlight_init()
838 asus->backlight_device = bd; in asus_backlight_init()
845 static void asus_backlight_exit(struct asus_laptop *asus) in asus_backlight_exit() argument
847 if (asus->backlight_device) in asus_backlight_exit()
848 backlight_device_unregister(asus->backlight_device); in asus_backlight_exit()
849 asus->backlight_device = NULL; in asus_backlight_exit()
864 struct asus_laptop *asus = dev_get_drvdata(dev); in show_infos() local
876 len += sprintf(page + len, "Model reference : %s\n", asus->name); in show_infos()
883 rv = acpi_evaluate_integer(asus->handle, "SFUN", NULL, &temp); in show_infos()
895 rv = acpi_evaluate_integer(asus->handle, "HWRS", NULL, &temp); in show_infos()
906 rv = acpi_evaluate_integer(asus->handle, "ASYM", NULL, &temp); in show_infos()
910 if (asus->dsdt_info) { in show_infos()
911 snprintf(buf, 16, "%d", asus->dsdt_info->length); in show_infos()
913 snprintf(buf, 16, "%d", asus->dsdt_info->checksum); in show_infos()
915 snprintf(buf, 16, "%d", asus->dsdt_info->revision); in show_infos()
917 snprintf(buf, 7, "%s", asus->dsdt_info->oem_id); in show_infos()
919 snprintf(buf, 9, "%s", asus->dsdt_info->oem_table_id); in show_infos()
921 snprintf(buf, 16, "%x", asus->dsdt_info->oem_revision); in show_infos()
923 snprintf(buf, 5, "%s", asus->dsdt_info->asl_compiler_id); in show_infos()
925 snprintf(buf, 16, "%x", asus->dsdt_info->asl_compiler_revision); in show_infos()
943 static ssize_t sysfs_acpi_set(struct asus_laptop *asus, in sysfs_acpi_set() argument
954 if (write_acpi_int(asus->handle, method, value)) in sysfs_acpi_set()
965 struct asus_laptop *asus = dev_get_drvdata(dev); in show_ledd() local
967 return sprintf(buf, "0x%08x\n", asus->ledd_status); in show_ledd()
973 struct asus_laptop *asus = dev_get_drvdata(dev); in store_ledd() local
978 if (write_acpi_int(asus->handle, METHOD_LEDD, value)) { in store_ledd()
982 asus->ledd_status = (u32) value; in store_ledd()
990 static int asus_wireless_status(struct asus_laptop *asus, int mask) in asus_wireless_status() argument
995 if (!asus->have_rsts) in asus_wireless_status()
996 return (asus->wireless_status & mask) ? 1 : 0; in asus_wireless_status()
998 rv = acpi_evaluate_integer(asus->handle, METHOD_WL_STATUS, in asus_wireless_status()
1010 static int asus_wlan_set(struct asus_laptop *asus, int status) in asus_wlan_set() argument
1012 if (write_acpi_int(asus->handle, METHOD_WLAN, !!status)) { in asus_wlan_set()
1022 struct asus_laptop *asus = dev_get_drvdata(dev); in show_wlan() local
1024 return sprintf(buf, "%d\n", asus_wireless_status(asus, WL_RSTS)); in show_wlan()
1030 struct asus_laptop *asus = dev_get_drvdata(dev); in store_wlan() local
1032 return sysfs_acpi_set(asus, buf, count, METHOD_WLAN); in store_wlan()
1038 static int asus_bluetooth_set(struct asus_laptop *asus, int status) in asus_bluetooth_set() argument
1040 if (write_acpi_int(asus->handle, METHOD_BLUETOOTH, !!status)) { in asus_bluetooth_set()
1050 struct asus_laptop *asus = dev_get_drvdata(dev); in show_bluetooth() local
1052 return sprintf(buf, "%d\n", asus_wireless_status(asus, BT_RSTS)); in show_bluetooth()
1059 struct asus_laptop *asus = dev_get_drvdata(dev); in store_bluetooth() local
1061 return sysfs_acpi_set(asus, buf, count, METHOD_BLUETOOTH); in store_bluetooth()
1067 static int asus_wimax_set(struct asus_laptop *asus, int status) in asus_wimax_set() argument
1069 if (write_acpi_int(asus->handle, METHOD_WIMAX, !!status)) { in asus_wimax_set()
1079 struct asus_laptop *asus = dev_get_drvdata(dev); in show_wimax() local
1081 return sprintf(buf, "%d\n", asus_wireless_status(asus, WM_RSTS)); in show_wimax()
1088 struct asus_laptop *asus = dev_get_drvdata(dev); in store_wimax() local
1090 return sysfs_acpi_set(asus, buf, count, METHOD_WIMAX); in store_wimax()
1096 static int asus_wwan_set(struct asus_laptop *asus, int status) in asus_wwan_set() argument
1098 if (write_acpi_int(asus->handle, METHOD_WWAN, !!status)) { in asus_wwan_set()
1108 struct asus_laptop *asus = dev_get_drvdata(dev); in show_wwan() local
1110 return sprintf(buf, "%d\n", asus_wireless_status(asus, WW_RSTS)); in show_wwan()
1117 struct asus_laptop *asus = dev_get_drvdata(dev); in store_wwan() local
1119 return sysfs_acpi_set(asus, buf, count, METHOD_WWAN); in store_wwan()
1125 static void asus_set_display(struct asus_laptop *asus, int value) in asus_set_display() argument
1128 if (write_acpi_int(asus->handle, METHOD_SWITCH_DISPLAY, value)) in asus_set_display()
1143 struct asus_laptop *asus = dev_get_drvdata(dev); in store_disp() local
1148 asus_set_display(asus, value); in store_disp()
1155 static void asus_als_switch(struct asus_laptop *asus, int value) in asus_als_switch() argument
1159 if (asus->is_pega_lucid) { in asus_als_switch()
1160 ret = asus_pega_lucid_set(asus, PEGA_ALS, value); in asus_als_switch()
1162 ret = asus_pega_lucid_set(asus, PEGA_ALS_POWER, value); in asus_als_switch()
1164 ret = write_acpi_int(asus->handle, METHOD_ALS_CONTROL, value); in asus_als_switch()
1169 asus->light_switch = value; in asus_als_switch()
1175 struct asus_laptop *asus = dev_get_drvdata(dev); in show_lssw() local
1177 return sprintf(buf, "%d\n", asus->light_switch); in show_lssw()
1183 struct asus_laptop *asus = dev_get_drvdata(dev); in store_lssw() local
1188 asus_als_switch(asus, value ? 1 : 0); in store_lssw()
1193 static void asus_als_level(struct asus_laptop *asus, int value) in asus_als_level() argument
1195 if (write_acpi_int(asus->handle, METHOD_ALS_LEVEL, value)) in asus_als_level()
1197 asus->light_level = value; in asus_als_level()
1203 struct asus_laptop *asus = dev_get_drvdata(dev); in show_lslvl() local
1205 return sprintf(buf, "%d\n", asus->light_level); in show_lslvl()
1211 struct asus_laptop *asus = dev_get_drvdata(dev); in store_lslvl() local
1218 asus_als_level(asus, value); in store_lslvl()
1224 static int pega_int_read(struct asus_laptop *asus, int arg, int *result) in pega_int_read() argument
1227 int err = write_acpi_int_ret(asus->handle, METHOD_PEGA_READ, arg, in pega_int_read()
1242 struct asus_laptop *asus = dev_get_drvdata(dev); in show_lsvalue() local
1245 err = pega_int_read(asus, PEGA_READ_ALS_H, &hi); in show_lsvalue()
1247 err = pega_int_read(asus, PEGA_READ_ALS_L, &lo); in show_lsvalue()
1256 static int asus_gps_status(struct asus_laptop *asus) in asus_gps_status() argument
1261 rv = acpi_evaluate_integer(asus->handle, METHOD_GPS_STATUS, in asus_gps_status()
1270 static int asus_gps_switch(struct asus_laptop *asus, int status) in asus_gps_switch() argument
1274 if (write_acpi_int(asus->handle, meth, 0x02)) in asus_gps_switch()
1282 struct asus_laptop *asus = dev_get_drvdata(dev); in show_gps() local
1284 return sprintf(buf, "%d\n", asus_gps_status(asus)); in show_gps()
1290 struct asus_laptop *asus = dev_get_drvdata(dev); in store_gps() local
1297 ret = asus_gps_switch(asus, !!value); in store_gps()
1300 rfkill_set_sw_state(asus->gps.rfkill, !value); in store_gps()
1309 struct asus_laptop *asus = data; in asus_gps_rfkill_set() local
1311 return asus_gps_switch(asus, !blocked); in asus_gps_rfkill_set()
1321 struct asus_laptop *asus = rfk->asus; in asus_rfkill_set() local
1324 return asus_wlan_set(asus, !blocked); in asus_rfkill_set()
1326 return asus_bluetooth_set(asus, !blocked); in asus_rfkill_set()
1328 return asus_wimax_set(asus, !blocked); in asus_rfkill_set()
1330 return asus_wwan_set(asus, !blocked); in asus_rfkill_set()
1349 static void asus_rfkill_exit(struct asus_laptop *asus) in asus_rfkill_exit() argument
1351 asus_rfkill_terminate(&asus->wwan); in asus_rfkill_exit()
1352 asus_rfkill_terminate(&asus->bluetooth); in asus_rfkill_exit()
1353 asus_rfkill_terminate(&asus->wlan); in asus_rfkill_exit()
1354 asus_rfkill_terminate(&asus->gps); in asus_rfkill_exit()
1357 static int asus_rfkill_setup(struct asus_laptop *asus, struct asus_rfkill *rfk, in asus_rfkill_setup() argument
1364 rfk->asus = asus; in asus_rfkill_setup()
1365 rfk->rfkill = rfkill_alloc(name, &asus->platform_device->dev, in asus_rfkill_setup()
1379 static int asus_rfkill_init(struct asus_laptop *asus) in asus_rfkill_init() argument
1383 if (asus->is_pega_lucid) in asus_rfkill_init()
1386 if (!acpi_check_handle(asus->handle, METHOD_GPS_ON, NULL) && in asus_rfkill_init()
1387 !acpi_check_handle(asus->handle, METHOD_GPS_OFF, NULL) && in asus_rfkill_init()
1388 !acpi_check_handle(asus->handle, METHOD_GPS_STATUS, NULL)) in asus_rfkill_init()
1389 result = asus_rfkill_setup(asus, &asus->gps, "asus-gps", in asus_rfkill_init()
1396 if (!acpi_check_handle(asus->handle, METHOD_WLAN, NULL) && in asus_rfkill_init()
1397 asus->wled_type == TYPE_RFKILL) in asus_rfkill_init()
1398 result = asus_rfkill_setup(asus, &asus->wlan, "asus-wlan", in asus_rfkill_init()
1404 if (!acpi_check_handle(asus->handle, METHOD_BLUETOOTH, NULL) && in asus_rfkill_init()
1405 asus->bled_type == TYPE_RFKILL) in asus_rfkill_init()
1406 result = asus_rfkill_setup(asus, &asus->bluetooth, in asus_rfkill_init()
1413 if (!acpi_check_handle(asus->handle, METHOD_WWAN, NULL)) in asus_rfkill_init()
1414 result = asus_rfkill_setup(asus, &asus->wwan, "asus-wwan", in asus_rfkill_init()
1420 if (!acpi_check_handle(asus->handle, METHOD_WIMAX, NULL)) in asus_rfkill_init()
1421 result = asus_rfkill_setup(asus, &asus->wimax, "asus-wimax", in asus_rfkill_init()
1429 asus_rfkill_exit(asus); in asus_rfkill_init()
1438 int ret = asus_pega_lucid_set(rfk->asus, rfk->control_id, !blocked); in pega_rfkill_set()
1446 static int pega_rfkill_setup(struct asus_laptop *asus, struct asus_rfkill *rfk, in pega_rfkill_setup() argument
1449 return asus_rfkill_setup(asus, rfk, name, controlid, rfkill_type, in pega_rfkill_setup()
1453 static int pega_rfkill_init(struct asus_laptop *asus) in pega_rfkill_init() argument
1457 if(!asus->is_pega_lucid) in pega_rfkill_init()
1460 ret = pega_rfkill_setup(asus, &asus->wlan, "pega-wlan", in pega_rfkill_init()
1465 ret = pega_rfkill_setup(asus, &asus->bluetooth, "pega-bt", in pega_rfkill_init()
1470 ret = pega_rfkill_setup(asus, &asus->wwan, "pega-wwan", in pega_rfkill_init()
1475 asus_rfkill_exit(asus); in pega_rfkill_init()
1483 static void asus_input_notify(struct asus_laptop *asus, int event) in asus_input_notify() argument
1485 if (!asus->inputdev) in asus_input_notify()
1487 if (!sparse_keymap_report_event(asus->inputdev, event, 1, true)) in asus_input_notify()
1491 static int asus_input_init(struct asus_laptop *asus) in asus_input_init() argument
1504 input->dev.parent = &asus->platform_device->dev; in asus_input_init()
1517 asus->inputdev = input; in asus_input_init()
1527 static void asus_input_exit(struct asus_laptop *asus) in asus_input_exit() argument
1529 if (asus->inputdev) { in asus_input_exit()
1530 sparse_keymap_free(asus->inputdev); in asus_input_exit()
1531 input_unregister_device(asus->inputdev); in asus_input_exit()
1533 asus->inputdev = NULL; in asus_input_exit()
1541 struct asus_laptop *asus = acpi_driver_data(device); in asus_acpi_notify() local
1545 count = asus->event_count[event % 128]++; in asus_acpi_notify()
1546 acpi_bus_generate_proc_event(asus->device, event, count); in asus_acpi_notify()
1547 acpi_bus_generate_netlink_event(asus->device->pnp.device_class, in asus_acpi_notify()
1548 dev_name(&asus->device->dev), event, in asus_acpi_notify()
1559 if (asus->backlight_device != NULL) { in asus_acpi_notify()
1561 asus_backlight_notify(asus); in asus_acpi_notify()
1567 if (asus->pega_accel_poll && event == 0xEA) { in asus_acpi_notify()
1568 kobject_uevent(&asus->pega_accel_poll->input->dev.kobj, in asus_acpi_notify()
1573 asus_input_notify(asus, event); in asus_acpi_notify()
1610 struct asus_laptop *asus = platform_get_drvdata(pdev); in asus_sysfs_is_visible() local
1611 acpi_handle handle = asus->handle; in asus_sysfs_is_visible()
1614 if (asus->is_pega_lucid) { in asus_sysfs_is_visible()
1638 !acpi_check_handle(asus->handle, METHOD_WIMAX, NULL); in asus_sysfs_is_visible()
1641 supported = !acpi_check_handle(asus->handle, METHOD_WWAN, NULL); in asus_sysfs_is_visible()
1651 supported = asus->is_pega_lucid; in asus_sysfs_is_visible()
1669 static int asus_platform_init(struct asus_laptop *asus) in asus_platform_init() argument
1673 asus->platform_device = platform_device_alloc(ASUS_LAPTOP_FILE, -1); in asus_platform_init()
1674 if (!asus->platform_device) in asus_platform_init()
1676 platform_set_drvdata(asus->platform_device, asus); in asus_platform_init()
1678 result = platform_device_add(asus->platform_device); in asus_platform_init()
1682 result = sysfs_create_group(&asus->platform_device->dev.kobj, in asus_platform_init()
1690 platform_device_del(asus->platform_device); in asus_platform_init()
1692 platform_device_put(asus->platform_device); in asus_platform_init()
1696 static void asus_platform_exit(struct asus_laptop *asus) in asus_platform_exit() argument
1698 sysfs_remove_group(&asus->platform_device->dev.kobj, &asus_attr_group); in asus_platform_exit()
1699 platform_device_unregister(asus->platform_device); in asus_platform_exit()
1714 static int asus_laptop_get_info(struct asus_laptop *asus) in asus_laptop_get_info() argument
1729 status = acpi_get_table(ACPI_SIG_DSDT, 1, &asus->dsdt_info); in asus_laptop_get_info()
1734 if (write_acpi_int_ret(asus->handle, "INIT", 0, &buffer)) { in asus_laptop_get_info()
1741 acpi_evaluate_integer(asus->handle, "BSTS", NULL, &bsts_result); in asus_laptop_get_info()
1749 if (write_acpi_int(asus->handle, "CWAP", wapf)) in asus_laptop_get_info()
1771 asus->name = kstrdup(string, GFP_KERNEL); in asus_laptop_get_info()
1772 if (!asus->name) { in asus_laptop_get_info()
1780 if (!acpi_check_handle(asus->handle, METHOD_WL_STATUS, NULL)) in asus_laptop_get_info()
1781 asus->have_rsts = true; in asus_laptop_get_info()
1788 static int asus_acpi_init(struct asus_laptop *asus) in asus_acpi_init() argument
1792 result = acpi_bus_get_status(asus->device); in asus_acpi_init()
1795 if (!asus->device->status.present) { in asus_acpi_init()
1800 result = asus_laptop_get_info(asus); in asus_acpi_init()
1805 asus->bled_type = TYPE_LED; in asus_acpi_init()
1807 asus->bled_type = TYPE_RFKILL; in asus_acpi_init()
1810 asus->wled_type = TYPE_LED; in asus_acpi_init()
1812 asus->wled_type = TYPE_RFKILL; in asus_acpi_init()
1815 asus_bluetooth_set(asus, !!bluetooth_status); in asus_acpi_init()
1818 asus_wlan_set(asus, !!wlan_status); in asus_acpi_init()
1821 asus_wimax_set(asus, !!wimax_status); in asus_acpi_init()
1824 asus_wwan_set(asus, !!wwan_status); in asus_acpi_init()
1827 if (!acpi_check_handle(asus->handle, METHOD_KBD_LIGHT_SET, NULL)) in asus_acpi_init()
1828 asus_kled_set(asus, 1); in asus_acpi_init()
1831 asus->ledd_status = 0xFFF; in asus_acpi_init()
1834 asus->light_switch = !!als_status; in asus_acpi_init()
1835 asus->light_level = 5; /* level 5 for sensor sensitivity */ in asus_acpi_init()
1837 if (asus->is_pega_lucid) { in asus_acpi_init()
1838 asus_als_switch(asus, asus->light_switch); in asus_acpi_init()
1839 } else if (!acpi_check_handle(asus->handle, METHOD_ALS_CONTROL, NULL) && in asus_acpi_init()
1840 !acpi_check_handle(asus->handle, METHOD_ALS_LEVEL, NULL)) { in asus_acpi_init()
1841 asus_als_switch(asus, asus->light_switch); in asus_acpi_init()
1842 asus_als_level(asus, asus->light_level); in asus_acpi_init()
1866 struct asus_laptop *asus; in asus_acpi_add() local
1871 asus = kzalloc(sizeof(struct asus_laptop), GFP_KERNEL); in asus_acpi_add()
1872 if (!asus) in asus_acpi_add()
1874 asus->handle = device->handle; in asus_acpi_add()
1877 device->driver_data = asus; in asus_acpi_add()
1878 asus->device = device; in asus_acpi_add()
1882 result = asus_acpi_init(asus); in asus_acpi_add()
1890 asus->is_pega_lucid = asus_check_pega_lucid(asus); in asus_acpi_add()
1891 result = asus_platform_init(asus); in asus_acpi_add()
1896 result = asus_backlight_init(asus); in asus_acpi_add()
1902 result = asus_input_init(asus); in asus_acpi_add()
1906 result = asus_led_init(asus); in asus_acpi_add()
1910 result = asus_rfkill_init(asus); in asus_acpi_add()
1914 result = pega_accel_init(asus); in asus_acpi_add()
1918 result = pega_rfkill_init(asus); in asus_acpi_add()
1926 pega_accel_exit(asus); in asus_acpi_add()
1928 asus_rfkill_exit(asus); in asus_acpi_add()
1930 asus_led_exit(asus); in asus_acpi_add()
1932 asus_input_exit(asus); in asus_acpi_add()
1934 asus_backlight_exit(asus); in asus_acpi_add()
1936 asus_platform_exit(asus); in asus_acpi_add()
1938 kfree(asus->name); in asus_acpi_add()
1939 kfree(asus); in asus_acpi_add()
1946 struct asus_laptop *asus = acpi_driver_data(device); in asus_acpi_remove() local
1948 asus_backlight_exit(asus); in asus_acpi_remove()
1949 asus_rfkill_exit(asus); in asus_acpi_remove()
1950 asus_led_exit(asus); in asus_acpi_remove()
1951 asus_input_exit(asus); in asus_acpi_remove()
1952 pega_accel_exit(asus); in asus_acpi_remove()
1953 asus_platform_exit(asus); in asus_acpi_remove()
1955 kfree(asus->name); in asus_acpi_remove()
1956 kfree(asus); in asus_acpi_remove()