Lines Matching refs:asus

175 	struct asus_wmi *asus;  member
218 static int asus_wmi_input_init(struct asus_wmi *asus) in asus_wmi_input_init() argument
222 asus->inputdev = input_allocate_device(); in asus_wmi_input_init()
223 if (!asus->inputdev) in asus_wmi_input_init()
226 asus->inputdev->name = asus->driver->input_name; in asus_wmi_input_init()
227 asus->inputdev->phys = asus->driver->input_phys; in asus_wmi_input_init()
228 asus->inputdev->id.bustype = BUS_HOST; in asus_wmi_input_init()
229 asus->inputdev->dev.parent = &asus->platform_device->dev; in asus_wmi_input_init()
230 set_bit(EV_REP, asus->inputdev->evbit); in asus_wmi_input_init()
232 err = sparse_keymap_setup(asus->inputdev, asus->driver->keymap, NULL); in asus_wmi_input_init()
236 err = input_register_device(asus->inputdev); in asus_wmi_input_init()
243 sparse_keymap_free(asus->inputdev); in asus_wmi_input_init()
245 input_free_device(asus->inputdev); in asus_wmi_input_init()
249 static void asus_wmi_input_exit(struct asus_wmi *asus) in asus_wmi_input_exit() argument
251 if (asus->inputdev) { in asus_wmi_input_exit()
252 sparse_keymap_free(asus->inputdev); in asus_wmi_input_exit()
253 input_unregister_device(asus->inputdev); in asus_wmi_input_exit()
256 asus->inputdev = NULL; in asus_wmi_input_exit()
297 static int asus_wmi_get_devstate(struct asus_wmi *asus, u32 dev_id, u32 *retval) in asus_wmi_get_devstate() argument
299 return asus_wmi_evaluate_method(asus->dsts_id, dev_id, 0, retval); in asus_wmi_get_devstate()
310 static int asus_wmi_get_devstate_bits(struct asus_wmi *asus, in asus_wmi_get_devstate_bits() argument
316 err = asus_wmi_get_devstate(asus, dev_id, &retval); in asus_wmi_get_devstate_bits()
332 static int asus_wmi_get_devstate_simple(struct asus_wmi *asus, u32 dev_id) in asus_wmi_get_devstate_simple() argument
334 return asus_wmi_get_devstate_bits(asus, dev_id, in asus_wmi_get_devstate_simple()
350 struct asus_wmi *asus; in tpd_led_update() local
352 asus = container_of(work, struct asus_wmi, tpd_led_work); in tpd_led_update()
354 ctrl_param = asus->tpd_led_wk; in tpd_led_update()
361 struct asus_wmi *asus; in tpd_led_set() local
363 asus = container_of(led_cdev, struct asus_wmi, tpd_led); in tpd_led_set()
365 asus->tpd_led_wk = !!value; in tpd_led_set()
366 queue_work(asus->led_workqueue, &asus->tpd_led_work); in tpd_led_set()
369 static int read_tpd_led_state(struct asus_wmi *asus) in read_tpd_led_state() argument
371 return asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_TOUCHPAD_LED); in read_tpd_led_state()
376 struct asus_wmi *asus; in tpd_led_get() local
378 asus = container_of(led_cdev, struct asus_wmi, tpd_led); in tpd_led_get()
380 return read_tpd_led_state(asus); in tpd_led_get()
386 struct asus_wmi *asus; in kbd_led_update() local
388 asus = container_of(work, struct asus_wmi, kbd_led_work); in kbd_led_update()
394 if (asus->kbd_led_wk > 0) in kbd_led_update()
395 ctrl_param = 0x80 | (asus->kbd_led_wk & 0x7F); in kbd_led_update()
400 static int kbd_led_read(struct asus_wmi *asus, int *level, int *env) in kbd_led_read() argument
410 retval = asus_wmi_get_devstate_bits(asus, ASUS_WMI_DEVID_KBD_BACKLIGHT, in kbd_led_read()
431 struct asus_wmi *asus; in kbd_led_set() local
433 asus = container_of(led_cdev, struct asus_wmi, kbd_led); in kbd_led_set()
435 if (value > asus->kbd_led.max_brightness) in kbd_led_set()
436 value = asus->kbd_led.max_brightness; in kbd_led_set()
440 asus->kbd_led_wk = value; in kbd_led_set()
441 queue_work(asus->led_workqueue, &asus->kbd_led_work); in kbd_led_set()
446 struct asus_wmi *asus; in kbd_led_get() local
449 asus = container_of(led_cdev, struct asus_wmi, kbd_led); in kbd_led_get()
451 retval = kbd_led_read(asus, &value, NULL); in kbd_led_get()
459 static int wlan_led_unknown_state(struct asus_wmi *asus) in wlan_led_unknown_state() argument
463 asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_WIRELESS_LED, &result); in wlan_led_unknown_state()
468 static int wlan_led_presence(struct asus_wmi *asus) in wlan_led_presence() argument
472 asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_WIRELESS_LED, &result); in wlan_led_presence()
480 struct asus_wmi *asus; in wlan_led_update() local
482 asus = container_of(work, struct asus_wmi, wlan_led_work); in wlan_led_update()
484 ctrl_param = asus->wlan_led_wk; in wlan_led_update()
491 struct asus_wmi *asus; in wlan_led_set() local
493 asus = container_of(led_cdev, struct asus_wmi, wlan_led); in wlan_led_set()
495 asus->wlan_led_wk = !!value; in wlan_led_set()
496 queue_work(asus->led_workqueue, &asus->wlan_led_work); in wlan_led_set()
501 struct asus_wmi *asus; in wlan_led_get() local
504 asus = container_of(led_cdev, struct asus_wmi, wlan_led); in wlan_led_get()
505 asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_WIRELESS_LED, &result); in wlan_led_get()
510 static void asus_wmi_led_exit(struct asus_wmi *asus) in asus_wmi_led_exit() argument
512 if (!IS_ERR_OR_NULL(asus->kbd_led.dev)) in asus_wmi_led_exit()
513 led_classdev_unregister(&asus->kbd_led); in asus_wmi_led_exit()
514 if (!IS_ERR_OR_NULL(asus->tpd_led.dev)) in asus_wmi_led_exit()
515 led_classdev_unregister(&asus->tpd_led); in asus_wmi_led_exit()
516 if (!IS_ERR_OR_NULL(asus->wlan_led.dev)) in asus_wmi_led_exit()
517 led_classdev_unregister(&asus->wlan_led); in asus_wmi_led_exit()
518 if (asus->led_workqueue) in asus_wmi_led_exit()
519 destroy_workqueue(asus->led_workqueue); in asus_wmi_led_exit()
522 static int asus_wmi_led_init(struct asus_wmi *asus) in asus_wmi_led_init() argument
526 asus->led_workqueue = create_singlethread_workqueue("led_workqueue"); in asus_wmi_led_init()
527 if (!asus->led_workqueue) in asus_wmi_led_init()
530 if (read_tpd_led_state(asus) >= 0) { in asus_wmi_led_init()
531 INIT_WORK(&asus->tpd_led_work, tpd_led_update); in asus_wmi_led_init()
533 asus->tpd_led.name = "asus::touchpad"; in asus_wmi_led_init()
534 asus->tpd_led.brightness_set = tpd_led_set; in asus_wmi_led_init()
535 asus->tpd_led.brightness_get = tpd_led_get; in asus_wmi_led_init()
536 asus->tpd_led.max_brightness = 1; in asus_wmi_led_init()
538 rv = led_classdev_register(&asus->platform_device->dev, in asus_wmi_led_init()
539 &asus->tpd_led); in asus_wmi_led_init()
544 if (kbd_led_read(asus, NULL, NULL) >= 0) { in asus_wmi_led_init()
545 INIT_WORK(&asus->kbd_led_work, kbd_led_update); in asus_wmi_led_init()
547 asus->kbd_led.name = "asus::kbd_backlight"; in asus_wmi_led_init()
548 asus->kbd_led.brightness_set = kbd_led_set; in asus_wmi_led_init()
549 asus->kbd_led.brightness_get = kbd_led_get; in asus_wmi_led_init()
550 asus->kbd_led.max_brightness = 3; in asus_wmi_led_init()
552 rv = led_classdev_register(&asus->platform_device->dev, in asus_wmi_led_init()
553 &asus->kbd_led); in asus_wmi_led_init()
558 if (wlan_led_presence(asus) && (asus->driver->quirks->wapf > 0)) { in asus_wmi_led_init()
559 INIT_WORK(&asus->wlan_led_work, wlan_led_update); in asus_wmi_led_init()
561 asus->wlan_led.name = "asus::wlan"; in asus_wmi_led_init()
562 asus->wlan_led.brightness_set = wlan_led_set; in asus_wmi_led_init()
563 if (!wlan_led_unknown_state(asus)) in asus_wmi_led_init()
564 asus->wlan_led.brightness_get = wlan_led_get; in asus_wmi_led_init()
565 asus->wlan_led.flags = LED_CORE_SUSPENDRESUME; in asus_wmi_led_init()
566 asus->wlan_led.max_brightness = 1; in asus_wmi_led_init()
567 asus->wlan_led.default_trigger = "asus-wlan"; in asus_wmi_led_init()
569 rv = led_classdev_register(&asus->platform_device->dev, in asus_wmi_led_init()
570 &asus->wlan_led); in asus_wmi_led_init()
575 asus_wmi_led_exit(asus); in asus_wmi_led_init()
584 static bool asus_wlan_rfkill_blocked(struct asus_wmi *asus) in asus_wlan_rfkill_blocked() argument
586 int result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_WLAN); in asus_wlan_rfkill_blocked()
593 static void asus_rfkill_hotplug(struct asus_wmi *asus) in asus_rfkill_hotplug() argument
601 mutex_lock(&asus->wmi_lock); in asus_rfkill_hotplug()
602 blocked = asus_wlan_rfkill_blocked(asus); in asus_rfkill_hotplug()
603 mutex_unlock(&asus->wmi_lock); in asus_rfkill_hotplug()
605 mutex_lock(&asus->hotplug_lock); in asus_rfkill_hotplug()
608 if (asus->wlan.rfkill) in asus_rfkill_hotplug()
609 rfkill_set_sw_state(asus->wlan.rfkill, blocked); in asus_rfkill_hotplug()
611 if (asus->hotplug_slot) { in asus_rfkill_hotplug()
657 mutex_unlock(&asus->hotplug_lock); in asus_rfkill_hotplug()
662 struct asus_wmi *asus = data; in asus_rfkill_notify() local
674 queue_work(asus->hotplug_workqueue, &asus->hotplug_work); in asus_rfkill_notify()
677 static int asus_register_rfkill_notifier(struct asus_wmi *asus, char *node) in asus_register_rfkill_notifier() argument
687 asus_rfkill_notify, asus); in asus_register_rfkill_notifier()
696 static void asus_unregister_rfkill_notifier(struct asus_wmi *asus, char *node) in asus_unregister_rfkill_notifier() argument
716 struct asus_wmi *asus = hotplug_slot->private; in asus_get_adapter_status() local
717 int result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_WLAN); in asus_get_adapter_status()
740 struct asus_wmi *asus; in asus_hotplug_work() local
742 asus = container_of(work, struct asus_wmi, hotplug_work); in asus_hotplug_work()
743 asus_rfkill_hotplug(asus); in asus_hotplug_work()
746 static int asus_setup_pci_hotplug(struct asus_wmi *asus) in asus_setup_pci_hotplug() argument
756 asus->hotplug_workqueue = in asus_setup_pci_hotplug()
758 if (!asus->hotplug_workqueue) in asus_setup_pci_hotplug()
761 INIT_WORK(&asus->hotplug_work, asus_hotplug_work); in asus_setup_pci_hotplug()
763 asus->hotplug_slot = kzalloc(sizeof(struct hotplug_slot), GFP_KERNEL); in asus_setup_pci_hotplug()
764 if (!asus->hotplug_slot) in asus_setup_pci_hotplug()
767 asus->hotplug_slot->info = kzalloc(sizeof(struct hotplug_slot_info), in asus_setup_pci_hotplug()
769 if (!asus->hotplug_slot->info) in asus_setup_pci_hotplug()
772 asus->hotplug_slot->private = asus; in asus_setup_pci_hotplug()
773 asus->hotplug_slot->release = &asus_cleanup_pci_hotplug; in asus_setup_pci_hotplug()
774 asus->hotplug_slot->ops = &asus_hotplug_slot_ops; in asus_setup_pci_hotplug()
775 asus_get_adapter_status(asus->hotplug_slot, in asus_setup_pci_hotplug()
776 &asus->hotplug_slot->info->adapter_status); in asus_setup_pci_hotplug()
778 ret = pci_hp_register(asus->hotplug_slot, bus, 0, "asus-wifi"); in asus_setup_pci_hotplug()
787 kfree(asus->hotplug_slot->info); in asus_setup_pci_hotplug()
789 kfree(asus->hotplug_slot); in asus_setup_pci_hotplug()
790 asus->hotplug_slot = NULL; in asus_setup_pci_hotplug()
792 destroy_workqueue(asus->hotplug_workqueue); in asus_setup_pci_hotplug()
815 priv->asus->driver->wlan_ctrl_by_user) in asus_rfkill_set()
826 result = asus_wmi_get_devstate_simple(priv->asus, priv->dev_id); in asus_rfkill_query()
837 struct asus_wmi *asus = priv->asus; in asus_rfkill_wlan_set() local
847 mutex_lock(&asus->wmi_lock); in asus_rfkill_wlan_set()
849 mutex_unlock(&asus->wmi_lock); in asus_rfkill_wlan_set()
863 static int asus_new_rfkill(struct asus_wmi *asus, in asus_new_rfkill() argument
867 int result = asus_wmi_get_devstate_simple(asus, dev_id); in asus_new_rfkill()
874 arfkill->asus = asus; in asus_new_rfkill()
877 asus->driver->quirks->hotplug_wireless) in asus_new_rfkill()
878 *rfkill = rfkill_alloc(name, &asus->platform_device->dev, type, in asus_new_rfkill()
881 *rfkill = rfkill_alloc(name, &asus->platform_device->dev, type, in asus_new_rfkill()
888 (asus->driver->quirks->wapf > 0)) in asus_new_rfkill()
901 static void asus_wmi_rfkill_exit(struct asus_wmi *asus) in asus_wmi_rfkill_exit() argument
903 asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P5"); in asus_wmi_rfkill_exit()
904 asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P6"); in asus_wmi_rfkill_exit()
905 asus_unregister_rfkill_notifier(asus, "\\_SB.PCI0.P0P7"); in asus_wmi_rfkill_exit()
906 if (asus->wlan.rfkill) { in asus_wmi_rfkill_exit()
907 rfkill_unregister(asus->wlan.rfkill); in asus_wmi_rfkill_exit()
908 rfkill_destroy(asus->wlan.rfkill); in asus_wmi_rfkill_exit()
909 asus->wlan.rfkill = NULL; in asus_wmi_rfkill_exit()
915 asus_rfkill_hotplug(asus); in asus_wmi_rfkill_exit()
916 if (asus->hotplug_slot) in asus_wmi_rfkill_exit()
917 pci_hp_deregister(asus->hotplug_slot); in asus_wmi_rfkill_exit()
918 if (asus->hotplug_workqueue) in asus_wmi_rfkill_exit()
919 destroy_workqueue(asus->hotplug_workqueue); in asus_wmi_rfkill_exit()
921 if (asus->bluetooth.rfkill) { in asus_wmi_rfkill_exit()
922 rfkill_unregister(asus->bluetooth.rfkill); in asus_wmi_rfkill_exit()
923 rfkill_destroy(asus->bluetooth.rfkill); in asus_wmi_rfkill_exit()
924 asus->bluetooth.rfkill = NULL; in asus_wmi_rfkill_exit()
926 if (asus->wimax.rfkill) { in asus_wmi_rfkill_exit()
927 rfkill_unregister(asus->wimax.rfkill); in asus_wmi_rfkill_exit()
928 rfkill_destroy(asus->wimax.rfkill); in asus_wmi_rfkill_exit()
929 asus->wimax.rfkill = NULL; in asus_wmi_rfkill_exit()
931 if (asus->wwan3g.rfkill) { in asus_wmi_rfkill_exit()
932 rfkill_unregister(asus->wwan3g.rfkill); in asus_wmi_rfkill_exit()
933 rfkill_destroy(asus->wwan3g.rfkill); in asus_wmi_rfkill_exit()
934 asus->wwan3g.rfkill = NULL; in asus_wmi_rfkill_exit()
936 if (asus->gps.rfkill) { in asus_wmi_rfkill_exit()
937 rfkill_unregister(asus->gps.rfkill); in asus_wmi_rfkill_exit()
938 rfkill_destroy(asus->gps.rfkill); in asus_wmi_rfkill_exit()
939 asus->gps.rfkill = NULL; in asus_wmi_rfkill_exit()
941 if (asus->uwb.rfkill) { in asus_wmi_rfkill_exit()
942 rfkill_unregister(asus->uwb.rfkill); in asus_wmi_rfkill_exit()
943 rfkill_destroy(asus->uwb.rfkill); in asus_wmi_rfkill_exit()
944 asus->uwb.rfkill = NULL; in asus_wmi_rfkill_exit()
948 static int asus_wmi_rfkill_init(struct asus_wmi *asus) in asus_wmi_rfkill_init() argument
952 mutex_init(&asus->hotplug_lock); in asus_wmi_rfkill_init()
953 mutex_init(&asus->wmi_lock); in asus_wmi_rfkill_init()
955 result = asus_new_rfkill(asus, &asus->wlan, "asus-wlan", in asus_wmi_rfkill_init()
961 result = asus_new_rfkill(asus, &asus->bluetooth, in asus_wmi_rfkill_init()
968 result = asus_new_rfkill(asus, &asus->wimax, "asus-wimax", in asus_wmi_rfkill_init()
974 result = asus_new_rfkill(asus, &asus->wwan3g, "asus-wwan3g", in asus_wmi_rfkill_init()
980 result = asus_new_rfkill(asus, &asus->gps, "asus-gps", in asus_wmi_rfkill_init()
986 result = asus_new_rfkill(asus, &asus->uwb, "asus-uwb", in asus_wmi_rfkill_init()
992 if (!asus->driver->quirks->hotplug_wireless) in asus_wmi_rfkill_init()
995 result = asus_setup_pci_hotplug(asus); in asus_wmi_rfkill_init()
1003 asus_register_rfkill_notifier(asus, "\\_SB.PCI0.P0P5"); in asus_wmi_rfkill_init()
1004 asus_register_rfkill_notifier(asus, "\\_SB.PCI0.P0P6"); in asus_wmi_rfkill_init()
1005 asus_register_rfkill_notifier(asus, "\\_SB.PCI0.P0P7"); in asus_wmi_rfkill_init()
1010 asus_rfkill_hotplug(asus); in asus_wmi_rfkill_init()
1014 asus_wmi_rfkill_exit(asus); in asus_wmi_rfkill_init()
1029 struct asus_wmi *asus = dev_get_drvdata(dev); in asus_hwmon_pwm1() local
1033 err = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_FAN_CTRL, &value); in asus_hwmon_pwm1()
1058 struct asus_wmi *asus = dev_get_drvdata(dev); in asus_hwmon_temp1() local
1062 err = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_THERMAL_CTRL, &value); in asus_hwmon_temp1()
1086 struct asus_wmi *asus = platform_get_drvdata(pdev); in asus_hwmon_sysfs_is_visible() local
1097 int err = asus_wmi_get_devstate(asus, dev_id, &value); in asus_hwmon_sysfs_is_visible()
1113 || (!asus->sfun && !(value & ASUS_WMI_DSTS_PRESENCE_BIT))) in asus_hwmon_sysfs_is_visible()
1130 static int asus_wmi_hwmon_init(struct asus_wmi *asus) in asus_wmi_hwmon_init() argument
1134 hwmon = hwmon_device_register_with_groups(&asus->platform_device->dev, in asus_wmi_hwmon_init()
1135 "asus", asus, in asus_wmi_hwmon_init()
1147 static int read_backlight_power(struct asus_wmi *asus) in read_backlight_power() argument
1150 if (asus->driver->quirks->store_backlight_power) in read_backlight_power()
1151 ret = !asus->driver->panel_power; in read_backlight_power()
1153 ret = asus_wmi_get_devstate_simple(asus, in read_backlight_power()
1162 static int read_brightness_max(struct asus_wmi *asus) in read_brightness_max() argument
1167 err = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_BRIGHTNESS, &retval); in read_brightness_max()
1183 struct asus_wmi *asus = bl_get_data(bd); in read_brightness() local
1187 err = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_BRIGHTNESS, &retval); in read_brightness()
1197 struct asus_wmi *asus = bl_get_data(bd); in get_scalar_command() local
1200 if ((asus->driver->brightness < bd->props.brightness) || in get_scalar_command()
1203 else if ((asus->driver->brightness > bd->props.brightness) || in get_scalar_command()
1207 asus->driver->brightness = bd->props.brightness; in get_scalar_command()
1214 struct asus_wmi *asus = bl_get_data(bd); in update_bl_status() local
1218 power = read_backlight_power(asus); in update_bl_status()
1223 if (asus->driver->quirks->store_backlight_power) in update_bl_status()
1224 asus->driver->panel_power = bd->props.power; in update_bl_status()
1228 if (asus->driver->quirks->scalar_panel_brightness) in update_bl_status()
1232 if (asus->driver->quirks->scalar_panel_brightness) in update_bl_status()
1248 static int asus_wmi_backlight_notify(struct asus_wmi *asus, int code) in asus_wmi_backlight_notify() argument
1250 struct backlight_device *bd = asus->backlight_device; in asus_wmi_backlight_notify()
1266 static int asus_wmi_backlight_init(struct asus_wmi *asus) in asus_wmi_backlight_init() argument
1273 max = read_brightness_max(asus); in asus_wmi_backlight_init()
1277 power = read_backlight_power(asus); in asus_wmi_backlight_init()
1287 bd = backlight_device_register(asus->driver->name, in asus_wmi_backlight_init()
1288 &asus->platform_device->dev, asus, in asus_wmi_backlight_init()
1295 asus->backlight_device = bd; in asus_wmi_backlight_init()
1297 if (asus->driver->quirks->store_backlight_power) in asus_wmi_backlight_init()
1298 asus->driver->panel_power = power; in asus_wmi_backlight_init()
1304 asus->driver->brightness = bd->props.brightness; in asus_wmi_backlight_init()
1309 static void asus_wmi_backlight_exit(struct asus_wmi *asus) in asus_wmi_backlight_exit() argument
1311 backlight_device_unregister(asus->backlight_device); in asus_wmi_backlight_exit()
1313 asus->backlight_device = NULL; in asus_wmi_backlight_exit()
1330 struct asus_wmi *asus = context; in asus_wmi_notify() local
1353 if (asus->driver->key_filter) { in asus_wmi_notify()
1354 asus->driver->key_filter(asus->driver, &code, &key_value, in asus_wmi_notify()
1368 asus_wmi_backlight_notify(asus, orig_code); in asus_wmi_notify()
1374 asus->driver->quirks->no_display_toggle) in asus_wmi_notify()
1377 if (!sparse_keymap_report_event(asus->inputdev, code, in asus_wmi_notify()
1397 static ssize_t store_sys_wmi(struct asus_wmi *asus, int devid, in store_sys_wmi() argument
1403 value = asus_wmi_get_devstate_simple(asus, devid); in store_sys_wmi()
1416 static ssize_t show_sys_wmi(struct asus_wmi *asus, int devid, char *buf) in show_sys_wmi() argument
1418 int value = asus_wmi_get_devstate_simple(asus, devid); in show_sys_wmi()
1431 struct asus_wmi *asus = dev_get_drvdata(dev); \
1433 return show_sys_wmi(asus, _cm, buf); \
1439 struct asus_wmi *asus = dev_get_drvdata(dev); \
1441 return store_sys_wmi(asus, _cm, buf, count); \
1489 struct asus_wmi *asus = platform_get_drvdata(pdev); in asus_sysfs_is_visible() local
1503 ok = !(asus_wmi_get_devstate_simple(asus, devid) < 0); in asus_sysfs_is_visible()
1526 static int asus_wmi_platform_init(struct asus_wmi *asus) in asus_wmi_platform_init() argument
1537 asus->spec = rv; in asus_wmi_platform_init()
1548 asus->sfun = rv; in asus_wmi_platform_init()
1559 asus->dsts_id = ASUS_WMI_METHODID_DSTS; in asus_wmi_platform_init()
1561 asus->dsts_id = ASUS_WMI_METHODID_DSTS2; in asus_wmi_platform_init()
1565 if (asus->driver->quirks->wapf >= 0) in asus_wmi_platform_init()
1567 asus->driver->quirks->wapf, NULL); in asus_wmi_platform_init()
1569 return asus_wmi_sysfs_init(asus->platform_device); in asus_wmi_platform_init()
1572 static void asus_wmi_platform_exit(struct asus_wmi *asus) in asus_wmi_platform_exit() argument
1574 asus_wmi_sysfs_exit(asus->platform_device); in asus_wmi_platform_exit()
1581 struct asus_wmi *asus; member
1588 struct asus_wmi *asus = m->private; in show_dsts() local
1592 err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval); in show_dsts()
1597 seq_printf(m, "DSTS(%#x) = %#x\n", asus->debug.dev_id, retval); in show_dsts()
1604 struct asus_wmi *asus = m->private; in show_devs() local
1608 err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param, in show_devs()
1614 seq_printf(m, "DEVS(%#x, %#x) = %#x\n", asus->debug.dev_id, in show_devs()
1615 asus->debug.ctrl_param, retval); in show_devs()
1622 struct asus_wmi *asus = m->private; in show_call() local
1624 .arg0 = asus->debug.dev_id, in show_call()
1625 .arg1 = asus->debug.ctrl_param, in show_call()
1633 1, asus->debug.method_id, in show_call()
1641 seq_printf(m, "%#x(%#x, %#x) = %#x\n", asus->debug.method_id, in show_call()
1642 asus->debug.dev_id, asus->debug.ctrl_param, in show_call()
1645 seq_printf(m, "%#x(%#x, %#x) = t:%d\n", asus->debug.method_id, in show_call()
1646 asus->debug.dev_id, asus->debug.ctrl_param, in show_call()
1664 return single_open(file, node->show, node->asus); in asus_wmi_debugfs_open()
1675 static void asus_wmi_debugfs_exit(struct asus_wmi *asus) in asus_wmi_debugfs_exit() argument
1677 debugfs_remove_recursive(asus->debug.root); in asus_wmi_debugfs_exit()
1680 static int asus_wmi_debugfs_init(struct asus_wmi *asus) in asus_wmi_debugfs_init() argument
1685 asus->debug.root = debugfs_create_dir(asus->driver->name, NULL); in asus_wmi_debugfs_init()
1686 if (!asus->debug.root) { in asus_wmi_debugfs_init()
1692 asus->debug.root, &asus->debug.method_id); in asus_wmi_debugfs_init()
1697 asus->debug.root, &asus->debug.dev_id); in asus_wmi_debugfs_init()
1702 asus->debug.root, &asus->debug.ctrl_param); in asus_wmi_debugfs_init()
1709 node->asus = asus; in asus_wmi_debugfs_init()
1711 asus->debug.root, node, in asus_wmi_debugfs_init()
1722 asus_wmi_debugfs_exit(asus); in asus_wmi_debugfs_init()
1733 struct asus_wmi *asus; in asus_wmi_add() local
1739 asus = kzalloc(sizeof(struct asus_wmi), GFP_KERNEL); in asus_wmi_add()
1740 if (!asus) in asus_wmi_add()
1743 asus->driver = wdrv; in asus_wmi_add()
1744 asus->platform_device = pdev; in asus_wmi_add()
1746 platform_set_drvdata(asus->platform_device, asus); in asus_wmi_add()
1749 wdrv->detect_quirks(asus->driver); in asus_wmi_add()
1751 err = asus_wmi_platform_init(asus); in asus_wmi_add()
1755 err = asus_wmi_input_init(asus); in asus_wmi_add()
1759 err = asus_wmi_hwmon_init(asus); in asus_wmi_add()
1763 err = asus_wmi_led_init(asus); in asus_wmi_add()
1767 err = asus_wmi_rfkill_init(asus); in asus_wmi_add()
1776 if (asus->driver->quirks->wmi_backlight_power) in asus_wmi_add()
1781 err = asus_wmi_backlight_init(asus); in asus_wmi_add()
1787 status = wmi_install_notify_handler(asus->driver->event_guid, in asus_wmi_add()
1788 asus_wmi_notify, asus); in asus_wmi_add()
1795 err = asus_wmi_debugfs_init(asus); in asus_wmi_add()
1799 asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_WLAN, &result); in asus_wmi_add()
1801 asus->driver->wlan_ctrl_by_user = 1; in asus_wmi_add()
1806 wmi_remove_notify_handler(asus->driver->event_guid); in asus_wmi_add()
1808 asus_wmi_backlight_exit(asus); in asus_wmi_add()
1810 asus_wmi_rfkill_exit(asus); in asus_wmi_add()
1812 asus_wmi_led_exit(asus); in asus_wmi_add()
1815 asus_wmi_input_exit(asus); in asus_wmi_add()
1817 asus_wmi_platform_exit(asus); in asus_wmi_add()
1819 kfree(asus); in asus_wmi_add()
1825 struct asus_wmi *asus; in asus_wmi_remove() local
1827 asus = platform_get_drvdata(device); in asus_wmi_remove()
1828 wmi_remove_notify_handler(asus->driver->event_guid); in asus_wmi_remove()
1829 asus_wmi_backlight_exit(asus); in asus_wmi_remove()
1830 asus_wmi_input_exit(asus); in asus_wmi_remove()
1831 asus_wmi_led_exit(asus); in asus_wmi_remove()
1832 asus_wmi_rfkill_exit(asus); in asus_wmi_remove()
1833 asus_wmi_debugfs_exit(asus); in asus_wmi_remove()
1834 asus_wmi_platform_exit(asus); in asus_wmi_remove()
1836 kfree(asus); in asus_wmi_remove()
1845 struct asus_wmi *asus = dev_get_drvdata(device); in asus_hotk_thaw() local
1847 if (asus->wlan.rfkill) { in asus_hotk_thaw()
1855 wlan = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_WLAN); in asus_hotk_thaw()
1864 struct asus_wmi *asus = dev_get_drvdata(device); in asus_hotk_restore() local
1868 if (asus->wlan.rfkill) in asus_hotk_restore()
1869 asus_rfkill_hotplug(asus); in asus_hotk_restore()
1871 if (asus->bluetooth.rfkill) { in asus_hotk_restore()
1872 bl = !asus_wmi_get_devstate_simple(asus, in asus_hotk_restore()
1874 rfkill_set_sw_state(asus->bluetooth.rfkill, bl); in asus_hotk_restore()
1876 if (asus->wimax.rfkill) { in asus_hotk_restore()
1877 bl = !asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_WIMAX); in asus_hotk_restore()
1878 rfkill_set_sw_state(asus->wimax.rfkill, bl); in asus_hotk_restore()
1880 if (asus->wwan3g.rfkill) { in asus_hotk_restore()
1881 bl = !asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_WWAN3G); in asus_hotk_restore()
1882 rfkill_set_sw_state(asus->wwan3g.rfkill, bl); in asus_hotk_restore()
1884 if (asus->gps.rfkill) { in asus_hotk_restore()
1885 bl = !asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_GPS); in asus_hotk_restore()
1886 rfkill_set_sw_state(asus->gps.rfkill, bl); in asus_hotk_restore()
1888 if (asus->uwb.rfkill) { in asus_hotk_restore()
1889 bl = !asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_UWB); in asus_hotk_restore()
1890 rfkill_set_sw_state(asus->uwb.rfkill, bl); in asus_hotk_restore()