Lines Matching full:setting

40  * Description: Change the BIOS setting to the desired value using the SetBiosSetting
106 * This is particularly useful for simplifying setting passwords.
330 static int tlmi_opcode_setting(char *setting, const char *value) in tlmi_opcode_setting() argument
335 opcode_str = kasprintf(GFP_KERNEL, "%s:%s;", setting, value); in tlmi_opcode_setting()
385 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in is_enabled_show() local
387 return sysfs_emit(buf, "%d\n", setting->valid); in is_enabled_show()
396 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in current_password_store() local
401 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) in current_password_store()
404 strscpy(setting->password, buf, setting->maxlen); in current_password_store()
405 /* Strip out CR if one is present, setting password won't work if it is present */ in current_password_store()
406 strreplace(setting->password, '\n', '\0'); in current_password_store()
416 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in new_password_store() local
427 /* Strip out CR if one is present, setting password won't work if it is present */ in new_password_store()
437 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) { in new_password_store()
447 if (setting == tlmi_priv.pwd_hdd) { in new_password_store()
448 if (setting->level == TLMI_LEVEL_USER) in new_password_store()
449 sprintf(pwd_type, "uhdp%d", setting->index); in new_password_store()
451 sprintf(pwd_type, "mhdp%d", setting->index); in new_password_store()
452 } else if (setting == tlmi_priv.pwd_nvme) { in new_password_store()
453 if (setting->level == TLMI_LEVEL_USER) in new_password_store()
454 sprintf(pwd_type, "udrp%d", setting->index); in new_password_store()
456 sprintf(pwd_type, "adrp%d", setting->index); in new_password_store()
458 sprintf(pwd_type, "%s", setting->pwd_type); in new_password_store()
471 ret = tlmi_opcode_setting("WmiOpcodePasswordCurrent01", setting->password); in new_password_store()
481 setting->pwd_type, setting->password, new_pwd, in new_password_store()
482 encoding_options[setting->encoding], setting->kbdlang); in new_password_store()
501 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in min_password_length_show() local
503 return sysfs_emit(buf, "%d\n", setting->minlen); in min_password_length_show()
511 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in max_password_length_show() local
513 return sysfs_emit(buf, "%d\n", setting->maxlen); in max_password_length_show()
527 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in encoding_show() local
529 return sysfs_emit(buf, "%s\n", encoding_options[setting->encoding]); in encoding_show()
536 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in encoding_store() local
544 setting->encoding = i; in encoding_store()
553 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in kbdlang_show() local
555 return sysfs_emit(buf, "%s\n", setting->kbdlang); in kbdlang_show()
562 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in kbdlang_store() local
570 memcpy(setting->kbdlang, buf, length); in kbdlang_store()
571 setting->kbdlang[length] = '\0'; in kbdlang_store()
580 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in role_show() local
582 return sysfs_emit(buf, "%s\n", setting->role); in role_show()
589 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in index_show() local
591 return sysfs_emit(buf, "%d\n", setting->index); in index_show()
598 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in index_store() local
608 setting->index = val; in index_store()
617 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in level_show() local
619 return sysfs_emit(buf, "%s\n", level_options[setting->level]); in level_show()
626 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in level_store() local
634 setting->level = i; in level_store()
668 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in certificate_thumbprint_show() local
671 if (!tlmi_priv.certificate_support || !setting->cert_installed) in certificate_thumbprint_show()
686 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in cert_to_password_store() local
696 if (!setting->cert_installed) in cert_to_password_store()
699 if (!setting->signature || !setting->signature[0]) in cert_to_password_store()
708 auth_str = kasprintf(GFP_KERNEL, "%s,%s", passwd, setting->signature); in cert_to_password_store()
726 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in certificate_store() local
740 if (!setting->signature || !setting->signature[0]) in certificate_store()
746 setting->signature); in certificate_store()
761 if (setting->cert_installed) { in certificate_store()
763 if (!setting->signature || !setting->signature[0]) { in certificate_store()
770 new_cert, setting->signature); in certificate_store()
773 if (!setting->valid || !setting->password[0]) { in certificate_store()
780 new_cert, setting->password); in certificate_store()
798 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in signature_store() local
813 kfree(setting->signature); in signature_store()
814 setting->signature = new_signature; in signature_store()
825 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in save_signature_store() local
840 kfree(setting->save_signature); in save_signature_store()
841 setting->save_signature = new_signature; in save_signature_store()
851 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in auth_attr_is_visible() local
855 if ((setting == tlmi_priv.pwd_hdd) || (setting == tlmi_priv.pwd_nvme)) in auth_attr_is_visible()
866 if ((setting == tlmi_priv.pwd_admin) && tlmi_priv.certificate_support) in auth_attr_is_visible()
908 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in display_name_show() local
910 return sysfs_emit(buf, "%s\n", setting->display_name); in display_name_show()
915 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in current_value_show() local
919 ret = tlmi_setting(setting->index, &item, LENOVO_BIOS_SETTING_GUID); in current_value_show()
939 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in possible_values_show() local
941 return sysfs_emit(buf, "%s\n", setting->possible_values); in possible_values_show()
947 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in type_show() local
949 if (setting->possible_values) { in type_show()
950 /* Figure out what setting type is as BIOS does not return this */ in type_show()
951 if (strchr(setting->possible_values, ';')) in type_show()
962 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in current_value_store() local
991 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->display_name, in current_value_store()
1022 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->display_name, in current_value_store()
1050 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->display_name, in current_value_store()
1053 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->display_name, in current_value_store()
1097 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in attr_is_visible() local
1100 if ((attr == &attr_possible_values.attr) && (!setting->possible_values)) in attr_is_visible()
1121 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in tlmi_attr_setting_release() local
1123 kfree(setting->possible_values); in tlmi_attr_setting_release()
1124 kfree(setting); in tlmi_attr_setting_release()
1129 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in tlmi_pwd_setting_release() local
1131 kfree(setting); in tlmi_pwd_setting_release()
1161 /* Check that setting is valid */ in save_settings_show()
1314 if (tlmi_priv.setting[i]) { in tlmi_release_attr()
1315 sysfs_remove_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group); in tlmi_release_attr()
1316 kobject_put(&tlmi_priv.setting[i]->kobj); in tlmi_release_attr()
1390 /* Check if index is a valid setting - skip if it isn't */ in tlmi_sysfs_init()
1391 if (!tlmi_priv.setting[i]) in tlmi_sysfs_init()
1396 tlmi_priv.setting[i]->display_name) < 0) { in tlmi_sysfs_init()
1397 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_sysfs_init()
1398 kfree(tlmi_priv.setting[i]); in tlmi_sysfs_init()
1399 tlmi_priv.setting[i] = NULL; in tlmi_sysfs_init()
1404 tlmi_priv.setting[i]->kobj.kset = tlmi_priv.attribute_kset; in tlmi_sysfs_init()
1405 ret = kobject_add(&tlmi_priv.setting[i]->kobj, NULL, in tlmi_sysfs_init()
1406 "%s", tlmi_priv.setting[i]->display_name); in tlmi_sysfs_init()
1410 ret = sysfs_create_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group); in tlmi_sysfs_init()
1550 struct tlmi_attr_setting *setting; in tlmi_analyze() local
1553 tlmi_priv.setting[i] = NULL; in tlmi_analyze()
1570 /* Create a setting entry */ in tlmi_analyze()
1571 setting = kzalloc(sizeof(*setting), GFP_KERNEL); in tlmi_analyze()
1572 if (!setting) { in tlmi_analyze()
1577 setting->index = i; in tlmi_analyze()
1578 strscpy(setting->display_name, item, TLMI_SETTINGS_MAXLEN); in tlmi_analyze()
1581 ret = tlmi_get_bios_selections(setting->display_name, in tlmi_analyze()
1582 &setting->possible_values); in tlmi_analyze()
1583 if (ret || !setting->possible_values) in tlmi_analyze()
1585 i, setting->display_name); in tlmi_analyze()
1595 if (!tlmi_setting(setting->index, &optitem, LENOVO_BIOS_SETTING_GUID)) { in tlmi_analyze()
1601 setting->possible_values = in tlmi_analyze()
1612 if (setting->possible_values) in tlmi_analyze()
1613 strreplace(setting->possible_values, ',', ';'); in tlmi_analyze()
1615 kobject_init(&setting->kobj, &tlmi_attr_setting_ktype); in tlmi_analyze()
1616 tlmi_priv.setting[i] = setting; in tlmi_analyze()
1620 /* Create password setting structure */ in tlmi_analyze()
1695 if (tlmi_priv.setting[i]) { in tlmi_analyze()
1696 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_analyze()
1697 kfree(tlmi_priv.setting[i]); in tlmi_analyze()