Lines Matching refs:priv
78 struct ideapad_private *priv; member
210 struct ideapad_private *priv = s->private; in debugfs_status_show() local
213 if (!priv) in debugfs_status_show()
216 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BL_MAX, &value)) in debugfs_status_show()
218 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BL, &value)) in debugfs_status_show()
220 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BL_POWER, &value)) in debugfs_status_show()
224 if (!read_ec_data(priv->adev->handle, VPCCMD_R_RF, &value)) in debugfs_status_show()
227 if (!read_ec_data(priv->adev->handle, VPCCMD_R_WIFI, &value)) in debugfs_status_show()
230 if (!read_ec_data(priv->adev->handle, VPCCMD_R_BT, &value)) in debugfs_status_show()
233 if (!read_ec_data(priv->adev->handle, VPCCMD_R_3G, &value)) in debugfs_status_show()
238 if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) in debugfs_status_show()
241 if (!read_ec_data(priv->adev->handle, VPCCMD_R_CAMERA, &value)) in debugfs_status_show()
263 struct ideapad_private *priv = s->private; in debugfs_cfg_show() local
265 if (!priv) { in debugfs_cfg_show()
269 priv->cfg); in debugfs_cfg_show()
270 if (test_bit(CFG_BT_BIT, &priv->cfg)) in debugfs_cfg_show()
272 if (test_bit(CFG_3G_BIT, &priv->cfg)) in debugfs_cfg_show()
274 if (test_bit(CFG_WIFI_BIT, &priv->cfg)) in debugfs_cfg_show()
276 if (test_bit(CFG_CAMERA_BIT, &priv->cfg)) in debugfs_cfg_show()
279 switch ((priv->cfg)&0x700) { in debugfs_cfg_show()
314 static int ideapad_debugfs_init(struct ideapad_private *priv) in ideapad_debugfs_init() argument
318 priv->debug = debugfs_create_dir("ideapad", NULL); in ideapad_debugfs_init()
319 if (priv->debug == NULL) { in ideapad_debugfs_init()
324 node = debugfs_create_file("cfg", S_IRUGO, priv->debug, priv, in ideapad_debugfs_init()
331 node = debugfs_create_file("status", S_IRUGO, priv->debug, priv, in ideapad_debugfs_init()
344 static void ideapad_debugfs_exit(struct ideapad_private *priv) in ideapad_debugfs_exit() argument
346 debugfs_remove_recursive(priv->debug); in ideapad_debugfs_exit()
347 priv->debug = NULL; in ideapad_debugfs_exit()
358 struct ideapad_private *priv = dev_get_drvdata(dev); in show_ideapad_cam() local
360 if (read_ec_data(priv->adev->handle, VPCCMD_R_CAMERA, &result)) in show_ideapad_cam()
370 struct ideapad_private *priv = dev_get_drvdata(dev); in store_ideapad_cam() local
376 ret = write_ec_cmd(priv->adev->handle, VPCCMD_W_CAMERA, state); in store_ideapad_cam()
389 struct ideapad_private *priv = dev_get_drvdata(dev); in show_ideapad_fan() local
391 if (read_ec_data(priv->adev->handle, VPCCMD_R_FAN, &result)) in show_ideapad_fan()
401 struct ideapad_private *priv = dev_get_drvdata(dev); in store_ideapad_fan() local
409 ret = write_ec_cmd(priv->adev->handle, VPCCMD_W_FAN, state); in store_ideapad_fan()
428 struct ideapad_private *priv = dev_get_drvdata(dev); in ideapad_is_visible() local
432 supported = test_bit(CFG_CAMERA_BIT, &(priv->cfg)); in ideapad_is_visible()
435 supported = !read_ec_data(priv->adev->handle, VPCCMD_R_FAN, in ideapad_is_visible()
466 struct ideapad_rfk_priv *priv = data; in ideapad_rfk_set() local
467 int opcode = ideapad_rfk_data[priv->dev].opcode; in ideapad_rfk_set()
469 return write_ec_cmd(priv->priv->adev->handle, opcode, !blocked); in ideapad_rfk_set()
476 static void ideapad_sync_rfk_state(struct ideapad_private *priv) in ideapad_sync_rfk_state() argument
481 if (priv->has_hw_rfkill_switch) { in ideapad_sync_rfk_state()
482 if (read_ec_data(priv->adev->handle, VPCCMD_R_RF, &hw_blocked)) in ideapad_sync_rfk_state()
488 if (priv->rfk[i]) in ideapad_sync_rfk_state()
489 rfkill_set_hw_state(priv->rfk[i], hw_blocked); in ideapad_sync_rfk_state()
492 static int ideapad_register_rfkill(struct ideapad_private *priv, int dev) in ideapad_register_rfkill() argument
500 write_ec_cmd(priv->adev->handle, in ideapad_register_rfkill()
504 priv->rfk_priv[dev].dev = dev; in ideapad_register_rfkill()
505 priv->rfk_priv[dev].priv = priv; in ideapad_register_rfkill()
507 priv->rfk[dev] = rfkill_alloc(ideapad_rfk_data[dev].name, in ideapad_register_rfkill()
508 &priv->platform_device->dev, in ideapad_register_rfkill()
511 &priv->rfk_priv[dev]); in ideapad_register_rfkill()
512 if (!priv->rfk[dev]) in ideapad_register_rfkill()
515 if (read_ec_data(priv->adev->handle, ideapad_rfk_data[dev].opcode-1, in ideapad_register_rfkill()
517 rfkill_init_sw_state(priv->rfk[dev], 0); in ideapad_register_rfkill()
520 rfkill_init_sw_state(priv->rfk[dev], sw_blocked); in ideapad_register_rfkill()
523 ret = rfkill_register(priv->rfk[dev]); in ideapad_register_rfkill()
525 rfkill_destroy(priv->rfk[dev]); in ideapad_register_rfkill()
531 static void ideapad_unregister_rfkill(struct ideapad_private *priv, int dev) in ideapad_unregister_rfkill() argument
533 if (!priv->rfk[dev]) in ideapad_unregister_rfkill()
536 rfkill_unregister(priv->rfk[dev]); in ideapad_unregister_rfkill()
537 rfkill_destroy(priv->rfk[dev]); in ideapad_unregister_rfkill()
543 static int ideapad_sysfs_init(struct ideapad_private *priv) in ideapad_sysfs_init() argument
545 return sysfs_create_group(&priv->platform_device->dev.kobj, in ideapad_sysfs_init()
549 static void ideapad_sysfs_exit(struct ideapad_private *priv) in ideapad_sysfs_exit() argument
551 sysfs_remove_group(&priv->platform_device->dev.kobj, in ideapad_sysfs_exit()
572 static int ideapad_input_init(struct ideapad_private *priv) in ideapad_input_init() argument
584 inputdev->dev.parent = &priv->platform_device->dev; in ideapad_input_init()
598 priv->inputdev = inputdev; in ideapad_input_init()
608 static void ideapad_input_exit(struct ideapad_private *priv) in ideapad_input_exit() argument
610 sparse_keymap_free(priv->inputdev); in ideapad_input_exit()
611 input_unregister_device(priv->inputdev); in ideapad_input_exit()
612 priv->inputdev = NULL; in ideapad_input_exit()
615 static void ideapad_input_report(struct ideapad_private *priv, in ideapad_input_report() argument
618 sparse_keymap_report_event(priv->inputdev, scancode, 1, true); in ideapad_input_report()
621 static void ideapad_input_novokey(struct ideapad_private *priv) in ideapad_input_novokey() argument
625 if (read_ec_data(priv->adev->handle, VPCCMD_R_NOVO, &long_pressed)) in ideapad_input_novokey()
628 ideapad_input_report(priv, 17); in ideapad_input_novokey()
630 ideapad_input_report(priv, 16); in ideapad_input_novokey()
633 static void ideapad_check_special_buttons(struct ideapad_private *priv) in ideapad_check_special_buttons() argument
637 read_ec_data(priv->adev->handle, VPCCMD_R_SPECIAL_BUTTONS, &value); in ideapad_check_special_buttons()
645 ideapad_input_report(priv, 65); in ideapad_check_special_buttons()
649 ideapad_input_report(priv, 64); in ideapad_check_special_buttons()
664 struct ideapad_private *priv = bl_get_data(blightdev); in ideapad_backlight_get_brightness() local
667 if (!priv) in ideapad_backlight_get_brightness()
670 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL, &now)) in ideapad_backlight_get_brightness()
677 struct ideapad_private *priv = bl_get_data(blightdev); in ideapad_backlight_update_status() local
679 if (!priv) in ideapad_backlight_update_status()
682 if (write_ec_cmd(priv->adev->handle, VPCCMD_W_BL, in ideapad_backlight_update_status()
685 if (write_ec_cmd(priv->adev->handle, VPCCMD_W_BL_POWER, in ideapad_backlight_update_status()
697 static int ideapad_backlight_init(struct ideapad_private *priv) in ideapad_backlight_init() argument
703 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL_MAX, &max)) in ideapad_backlight_init()
705 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL, &now)) in ideapad_backlight_init()
707 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL_POWER, &power)) in ideapad_backlight_init()
714 &priv->platform_device->dev, in ideapad_backlight_init()
715 priv, in ideapad_backlight_init()
723 priv->blightdev = blightdev; in ideapad_backlight_init()
731 static void ideapad_backlight_exit(struct ideapad_private *priv) in ideapad_backlight_exit() argument
733 backlight_device_unregister(priv->blightdev); in ideapad_backlight_exit()
734 priv->blightdev = NULL; in ideapad_backlight_exit()
737 static void ideapad_backlight_notify_power(struct ideapad_private *priv) in ideapad_backlight_notify_power() argument
740 struct backlight_device *blightdev = priv->blightdev; in ideapad_backlight_notify_power()
744 if (read_ec_data(priv->adev->handle, VPCCMD_R_BL_POWER, &power)) in ideapad_backlight_notify_power()
749 static void ideapad_backlight_notify_brightness(struct ideapad_private *priv) in ideapad_backlight_notify_brightness() argument
754 if (priv->blightdev == NULL) { in ideapad_backlight_notify_brightness()
755 read_ec_data(priv->adev->handle, VPCCMD_R_BL, &now); in ideapad_backlight_notify_brightness()
759 backlight_force_update(priv->blightdev, BACKLIGHT_UPDATE_HOTKEY); in ideapad_backlight_notify_brightness()
765 static void ideapad_sync_touchpad_state(struct ideapad_private *priv) in ideapad_sync_touchpad_state() argument
770 if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) { in ideapad_sync_touchpad_state()
778 ideapad_input_report(priv, value ? 67 : 66); in ideapad_sync_touchpad_state()
784 struct ideapad_private *priv = data; in ideapad_acpi_notify() local
797 ideapad_sync_rfk_state(priv); in ideapad_acpi_notify()
803 ideapad_input_report(priv, vpc_bit); in ideapad_acpi_notify()
806 ideapad_sync_touchpad_state(priv); in ideapad_acpi_notify()
809 ideapad_backlight_notify_brightness(priv); in ideapad_acpi_notify()
812 ideapad_input_novokey(priv); in ideapad_acpi_notify()
815 ideapad_backlight_notify_power(priv); in ideapad_acpi_notify()
818 ideapad_check_special_buttons(priv); in ideapad_acpi_notify()
910 struct ideapad_private *priv; in ideapad_acpi_add() local
920 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in ideapad_acpi_add()
921 if (!priv) in ideapad_acpi_add()
924 dev_set_drvdata(&pdev->dev, priv); in ideapad_acpi_add()
925 priv->cfg = cfg; in ideapad_acpi_add()
926 priv->adev = adev; in ideapad_acpi_add()
927 priv->platform_device = pdev; in ideapad_acpi_add()
928 priv->has_hw_rfkill_switch = !dmi_check_system(no_hw_rfkill_list); in ideapad_acpi_add()
930 ret = ideapad_sysfs_init(priv); in ideapad_acpi_add()
934 ret = ideapad_debugfs_init(priv); in ideapad_acpi_add()
938 ret = ideapad_input_init(priv); in ideapad_acpi_add()
946 if (!priv->has_hw_rfkill_switch) in ideapad_acpi_add()
947 write_ec_cmd(priv->adev->handle, VPCCMD_W_RF, 1); in ideapad_acpi_add()
950 if (test_bit(ideapad_rfk_data[i].cfgbit, &priv->cfg)) in ideapad_acpi_add()
951 ideapad_register_rfkill(priv, i); in ideapad_acpi_add()
953 ideapad_sync_rfk_state(priv); in ideapad_acpi_add()
954 ideapad_sync_touchpad_state(priv); in ideapad_acpi_add()
957 ret = ideapad_backlight_init(priv); in ideapad_acpi_add()
962 ACPI_DEVICE_NOTIFY, ideapad_acpi_notify, priv); in ideapad_acpi_add()
968 ideapad_backlight_exit(priv); in ideapad_acpi_add()
971 ideapad_unregister_rfkill(priv, i); in ideapad_acpi_add()
972 ideapad_input_exit(priv); in ideapad_acpi_add()
974 ideapad_debugfs_exit(priv); in ideapad_acpi_add()
976 ideapad_sysfs_exit(priv); in ideapad_acpi_add()
982 struct ideapad_private *priv = dev_get_drvdata(&pdev->dev); in ideapad_acpi_remove() local
985 acpi_remove_notify_handler(priv->adev->handle, in ideapad_acpi_remove()
987 ideapad_backlight_exit(priv); in ideapad_acpi_remove()
989 ideapad_unregister_rfkill(priv, i); in ideapad_acpi_remove()
990 ideapad_input_exit(priv); in ideapad_acpi_remove()
991 ideapad_debugfs_exit(priv); in ideapad_acpi_remove()
992 ideapad_sysfs_exit(priv); in ideapad_acpi_remove()
1001 struct ideapad_private *priv; in ideapad_acpi_resume() local
1005 priv = dev_get_drvdata(device); in ideapad_acpi_resume()
1007 ideapad_sync_rfk_state(priv); in ideapad_acpi_resume()
1008 ideapad_sync_touchpad_state(priv); in ideapad_acpi_resume()