Lines Matching refs:priv

83 	struct ideapad_private *priv;  member
215 struct ideapad_private *priv = s->private; in debugfs_status_show() local
218 if (!priv) in debugfs_status_show()
221 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BL_MAX, &value)) in debugfs_status_show()
223 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BL, &value)) in debugfs_status_show()
225 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BL_POWER, &value)) in debugfs_status_show()
229 if (!read_ec_data(priv->adev->handle, VPCCMD_R_RF, &value)) in debugfs_status_show()
232 if (!read_ec_data(priv->adev->handle, VPCCMD_R_WIFI, &value)) in debugfs_status_show()
235 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BT, &value)) in debugfs_status_show()
238 if (!read_ec_data(priv->adev->handle, VPCCMD_R_3G, &value)) in debugfs_status_show()
243 if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) in debugfs_status_show()
246 if (!read_ec_data(priv->adev->handle, VPCCMD_R_CAMERA, &value)) in debugfs_status_show()
268 struct ideapad_private *priv = s->private; in debugfs_cfg_show() local
270 if (!priv) { in debugfs_cfg_show()
274 priv->cfg); in debugfs_cfg_show()
275 if (test_bit(CFG_BT_BIT, &priv->cfg)) in debugfs_cfg_show()
277 if (test_bit(CFG_3G_BIT, &priv->cfg)) in debugfs_cfg_show()
279 if (test_bit(CFG_WIFI_BIT, &priv->cfg)) in debugfs_cfg_show()
281 if (test_bit(CFG_CAMERA_BIT, &priv->cfg)) in debugfs_cfg_show()
284 switch ((priv->cfg)&0x700) { in debugfs_cfg_show()
319 static int ideapad_debugfs_init(struct ideapad_private *priv) in ideapad_debugfs_init() argument
323 priv->debug = debugfs_create_dir("ideapad", NULL); in ideapad_debugfs_init()
324 if (priv->debug == NULL) { in ideapad_debugfs_init()
329 node = debugfs_create_file("cfg", S_IRUGO, priv->debug, priv, in ideapad_debugfs_init()
336 node = debugfs_create_file("status", S_IRUGO, priv->debug, priv, in ideapad_debugfs_init()
349 static void ideapad_debugfs_exit(struct ideapad_private *priv) in ideapad_debugfs_exit() argument
351 debugfs_remove_recursive(priv->debug); in ideapad_debugfs_exit()
352 priv->debug = NULL; in ideapad_debugfs_exit()
363 struct ideapad_private *priv = dev_get_drvdata(dev); in show_ideapad_cam() local
365 if (read_ec_data(priv->adev->handle, VPCCMD_R_CAMERA, &result)) in show_ideapad_cam()
375 struct ideapad_private *priv = dev_get_drvdata(dev); in store_ideapad_cam() local
381 ret = write_ec_cmd(priv->adev->handle, VPCCMD_W_CAMERA, state); in store_ideapad_cam()
394 struct ideapad_private *priv = dev_get_drvdata(dev); in show_ideapad_fan() local
396 if (read_ec_data(priv->adev->handle, VPCCMD_R_FAN, &result)) in show_ideapad_fan()
406 struct ideapad_private *priv = dev_get_drvdata(dev); in store_ideapad_fan() local
414 ret = write_ec_cmd(priv->adev->handle, VPCCMD_W_FAN, state); in store_ideapad_fan()
433 struct ideapad_private *priv = dev_get_drvdata(dev); in ideapad_is_visible() local
437 supported = test_bit(CFG_CAMERA_BIT, &(priv->cfg)); in ideapad_is_visible()
440 supported = !read_ec_data(priv->adev->handle, VPCCMD_R_FAN, in ideapad_is_visible()
471 struct ideapad_rfk_priv *priv = data; in ideapad_rfk_set() local
472 int opcode = ideapad_rfk_data[priv->dev].opcode; in ideapad_rfk_set()
474 return write_ec_cmd(priv->priv->adev->handle, opcode, !blocked); in ideapad_rfk_set()
481 static void ideapad_sync_rfk_state(struct ideapad_private *priv) in ideapad_sync_rfk_state() argument
486 if (priv->has_hw_rfkill_switch) { in ideapad_sync_rfk_state()
487 if (read_ec_data(priv->adev->handle, VPCCMD_R_RF, &hw_blocked)) in ideapad_sync_rfk_state()
493 if (priv->rfk[i]) in ideapad_sync_rfk_state()
494 rfkill_set_hw_state(priv->rfk[i], hw_blocked); in ideapad_sync_rfk_state()
497 static int ideapad_register_rfkill(struct ideapad_private *priv, int dev) in ideapad_register_rfkill() argument
505 write_ec_cmd(priv->adev->handle, in ideapad_register_rfkill()
509 priv->rfk_priv[dev].dev = dev; in ideapad_register_rfkill()
510 priv->rfk_priv[dev].priv = priv; in ideapad_register_rfkill()
512 priv->rfk[dev] = rfkill_alloc(ideapad_rfk_data[dev].name, in ideapad_register_rfkill()
513 &priv->platform_device->dev, in ideapad_register_rfkill()
516 &priv->rfk_priv[dev]); in ideapad_register_rfkill()
517 if (!priv->rfk[dev]) in ideapad_register_rfkill()
520 if (read_ec_data(priv->adev->handle, ideapad_rfk_data[dev].opcode-1, in ideapad_register_rfkill()
522 rfkill_init_sw_state(priv->rfk[dev], 0); in ideapad_register_rfkill()
525 rfkill_init_sw_state(priv->rfk[dev], sw_blocked); in ideapad_register_rfkill()
528 ret = rfkill_register(priv->rfk[dev]); in ideapad_register_rfkill()
530 rfkill_destroy(priv->rfk[dev]); in ideapad_register_rfkill()
536 static void ideapad_unregister_rfkill(struct ideapad_private *priv, int dev) in ideapad_unregister_rfkill() argument
538 if (!priv->rfk[dev]) in ideapad_unregister_rfkill()
541 rfkill_unregister(priv->rfk[dev]); in ideapad_unregister_rfkill()
542 rfkill_destroy(priv->rfk[dev]); in ideapad_unregister_rfkill()
548 static int ideapad_sysfs_init(struct ideapad_private *priv) in ideapad_sysfs_init() argument
550 return sysfs_create_group(&priv->platform_device->dev.kobj, in ideapad_sysfs_init()
554 static void ideapad_sysfs_exit(struct ideapad_private *priv) in ideapad_sysfs_exit() argument
556 sysfs_remove_group(&priv->platform_device->dev.kobj, in ideapad_sysfs_exit()
579 static int ideapad_input_init(struct ideapad_private *priv) in ideapad_input_init() argument
591 inputdev->dev.parent = &priv->platform_device->dev; in ideapad_input_init()
605 priv->inputdev = inputdev; in ideapad_input_init()
615 static void ideapad_input_exit(struct ideapad_private *priv) in ideapad_input_exit() argument
617 sparse_keymap_free(priv->inputdev); in ideapad_input_exit()
618 input_unregister_device(priv->inputdev); in ideapad_input_exit()
619 priv->inputdev = NULL; in ideapad_input_exit()
622 static void ideapad_input_report(struct ideapad_private *priv, in ideapad_input_report() argument
625 sparse_keymap_report_event(priv->inputdev, scancode, 1, true); in ideapad_input_report()
628 static void ideapad_input_novokey(struct ideapad_private *priv) in ideapad_input_novokey() argument
632 if (read_ec_data(priv->adev->handle, VPCCMD_R_NOVO, &long_pressed)) in ideapad_input_novokey()
635 ideapad_input_report(priv, 17); in ideapad_input_novokey()
637 ideapad_input_report(priv, 16); in ideapad_input_novokey()
640 static void ideapad_check_special_buttons(struct ideapad_private *priv) in ideapad_check_special_buttons() argument
644 read_ec_data(priv->adev->handle, VPCCMD_R_SPECIAL_BUTTONS, &value); in ideapad_check_special_buttons()
652 ideapad_input_report(priv, 65); in ideapad_check_special_buttons()
656 ideapad_input_report(priv, 64); in ideapad_check_special_buttons()
671 struct ideapad_private *priv = bl_get_data(blightdev); in ideapad_backlight_get_brightness() local
674 if (!priv) in ideapad_backlight_get_brightness()
677 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL, &now)) in ideapad_backlight_get_brightness()
684 struct ideapad_private *priv = bl_get_data(blightdev); in ideapad_backlight_update_status() local
686 if (!priv) in ideapad_backlight_update_status()
689 if (write_ec_cmd(priv->adev->handle, VPCCMD_W_BL, in ideapad_backlight_update_status()
692 if (write_ec_cmd(priv->adev->handle, VPCCMD_W_BL_POWER, in ideapad_backlight_update_status()
704 static int ideapad_backlight_init(struct ideapad_private *priv) in ideapad_backlight_init() argument
710 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL_MAX, &max)) in ideapad_backlight_init()
712 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL, &now)) in ideapad_backlight_init()
714 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL_POWER, &power)) in ideapad_backlight_init()
721 &priv->platform_device->dev, in ideapad_backlight_init()
722 priv, in ideapad_backlight_init()
730 priv->blightdev = blightdev; in ideapad_backlight_init()
738 static void ideapad_backlight_exit(struct ideapad_private *priv) in ideapad_backlight_exit() argument
740 backlight_device_unregister(priv->blightdev); in ideapad_backlight_exit()
741 priv->blightdev = NULL; in ideapad_backlight_exit()
744 static void ideapad_backlight_notify_power(struct ideapad_private *priv) in ideapad_backlight_notify_power() argument
747 struct backlight_device *blightdev = priv->blightdev; in ideapad_backlight_notify_power()
751 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL_POWER, &power)) in ideapad_backlight_notify_power()
756 static void ideapad_backlight_notify_brightness(struct ideapad_private *priv) in ideapad_backlight_notify_brightness() argument
761 if (priv->blightdev == NULL) { in ideapad_backlight_notify_brightness()
762 read_ec_data(priv->adev->handle, VPCCMD_R_BL, &now); in ideapad_backlight_notify_brightness()
766 backlight_force_update(priv->blightdev, BACKLIGHT_UPDATE_HOTKEY); in ideapad_backlight_notify_brightness()
772 static void ideapad_sync_touchpad_state(struct ideapad_private *priv) in ideapad_sync_touchpad_state() argument
777 if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) { in ideapad_sync_touchpad_state()
785 ideapad_input_report(priv, value ? 67 : 66); in ideapad_sync_touchpad_state()
791 struct ideapad_private *priv = data; in ideapad_acpi_notify() local
804 ideapad_sync_rfk_state(priv); in ideapad_acpi_notify()
810 ideapad_input_report(priv, vpc_bit); in ideapad_acpi_notify()
813 ideapad_sync_touchpad_state(priv); in ideapad_acpi_notify()
816 ideapad_backlight_notify_brightness(priv); in ideapad_acpi_notify()
819 ideapad_input_novokey(priv); in ideapad_acpi_notify()
822 ideapad_backlight_notify_power(priv); in ideapad_acpi_notify()
825 ideapad_check_special_buttons(priv); in ideapad_acpi_notify()
937 struct ideapad_private *priv; in ideapad_acpi_add() local
947 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in ideapad_acpi_add()
948 if (!priv) in ideapad_acpi_add()
951 dev_set_drvdata(&pdev->dev, priv); in ideapad_acpi_add()
952 priv->cfg = cfg; in ideapad_acpi_add()
953 priv->adev = adev; in ideapad_acpi_add()
954 priv->platform_device = pdev; in ideapad_acpi_add()
955 priv->has_hw_rfkill_switch = !dmi_check_system(no_hw_rfkill_list); in ideapad_acpi_add()
957 ret = ideapad_sysfs_init(priv); in ideapad_acpi_add()
961 ret = ideapad_debugfs_init(priv); in ideapad_acpi_add()
965 ret = ideapad_input_init(priv); in ideapad_acpi_add()
973 if (!priv->has_hw_rfkill_switch) in ideapad_acpi_add()
974 write_ec_cmd(priv->adev->handle, VPCCMD_W_RF, 1); in ideapad_acpi_add()
977 if (test_bit(ideapad_rfk_data[i].cfgbit, &priv->cfg)) in ideapad_acpi_add()
978 ideapad_register_rfkill(priv, i); in ideapad_acpi_add()
980 ideapad_sync_rfk_state(priv); in ideapad_acpi_add()
981 ideapad_sync_touchpad_state(priv); in ideapad_acpi_add()
984 ret = ideapad_backlight_init(priv); in ideapad_acpi_add()
989 ACPI_DEVICE_NOTIFY, ideapad_acpi_notify, priv); in ideapad_acpi_add()
993 ret = wmi_install_notify_handler(ideapad_wmi_fnesc_event, ideapad_wmi_notify, priv); in ideapad_acpi_add()
1001 acpi_remove_notify_handler(priv->adev->handle, in ideapad_acpi_add()
1005 ideapad_backlight_exit(priv); in ideapad_acpi_add()
1008 ideapad_unregister_rfkill(priv, i); in ideapad_acpi_add()
1009 ideapad_input_exit(priv); in ideapad_acpi_add()
1011 ideapad_debugfs_exit(priv); in ideapad_acpi_add()
1013 ideapad_sysfs_exit(priv); in ideapad_acpi_add()
1019 struct ideapad_private *priv = dev_get_drvdata(&pdev->dev); in ideapad_acpi_remove() local
1025 acpi_remove_notify_handler(priv->adev->handle, in ideapad_acpi_remove()
1027 ideapad_backlight_exit(priv); in ideapad_acpi_remove()
1029 ideapad_unregister_rfkill(priv, i); in ideapad_acpi_remove()
1030 ideapad_input_exit(priv); in ideapad_acpi_remove()
1031 ideapad_debugfs_exit(priv); in ideapad_acpi_remove()
1032 ideapad_sysfs_exit(priv); in ideapad_acpi_remove()
1041 struct ideapad_private *priv; in ideapad_acpi_resume() local
1045 priv = dev_get_drvdata(device); in ideapad_acpi_resume()
1047 ideapad_sync_rfk_state(priv); in ideapad_acpi_resume()
1048 ideapad_sync_touchpad_state(priv); in ideapad_acpi_resume()