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.
337 static int tlmi_opcode_setting(char *setting, const char *value) in tlmi_opcode_setting() argument
342 opcode_str = kasprintf(GFP_KERNEL, "%s:%s;", setting, value); in tlmi_opcode_setting()
392 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in is_enabled_show() local
394 return sysfs_emit(buf, "%d\n", setting->valid); in is_enabled_show()
403 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in current_password_store() local
408 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) in current_password_store()
411 strscpy(setting->password, buf, setting->maxlen); in current_password_store()
412 /* Strip out CR if one is present, setting password won't work if it is present */ in current_password_store()
413 strip_cr(setting->password); in current_password_store()
423 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in new_password_store() local
438 /* Strip out CR if one is present, setting password won't work if it is present */ in new_password_store()
446 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) { in new_password_store()
456 if (setting == tlmi_priv.pwd_hdd) { in new_password_store()
457 if (setting->level == TLMI_LEVEL_USER) in new_password_store()
458 sprintf(pwd_type, "uhdp%d", setting->index); in new_password_store()
460 sprintf(pwd_type, "mhdp%d", setting->index); in new_password_store()
461 } else if (setting == tlmi_priv.pwd_nvme) { in new_password_store()
462 if (setting->level == TLMI_LEVEL_USER) in new_password_store()
463 sprintf(pwd_type, "udrp%d", setting->index); in new_password_store()
465 sprintf(pwd_type, "adrp%d", setting->index); in new_password_store()
467 sprintf(pwd_type, "%s", setting->pwd_type); in new_password_store()
480 ret = tlmi_opcode_setting("WmiOpcodePasswordCurrent01", setting->password); in new_password_store()
490 setting->pwd_type, setting->password, new_pwd, in new_password_store()
491 encoding_options[setting->encoding], setting->kbdlang); in new_password_store()
510 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in min_password_length_show() local
512 return sysfs_emit(buf, "%d\n", setting->minlen); in min_password_length_show()
520 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in max_password_length_show() local
522 return sysfs_emit(buf, "%d\n", setting->maxlen); in max_password_length_show()
536 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in encoding_show() local
538 return sysfs_emit(buf, "%s\n", encoding_options[setting->encoding]); in encoding_show()
545 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in encoding_store() local
553 setting->encoding = i; in encoding_store()
562 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in kbdlang_show() local
564 return sysfs_emit(buf, "%s\n", setting->kbdlang); in kbdlang_show()
571 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in kbdlang_store() local
579 memcpy(setting->kbdlang, buf, length); in kbdlang_store()
580 setting->kbdlang[length] = '\0'; in kbdlang_store()
589 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in role_show() local
591 return sysfs_emit(buf, "%s\n", setting->role); in role_show()
598 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in index_show() local
600 return sysfs_emit(buf, "%d\n", setting->index); in index_show()
607 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in index_store() local
617 setting->index = val; in index_store()
626 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in level_show() local
628 return sysfs_emit(buf, "%s\n", level_options[setting->level]); in level_show()
635 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in level_store() local
643 setting->level = i; in level_store()
677 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in certificate_thumbprint_show() local
680 if (!tlmi_priv.certificate_support || !setting->cert_installed) in certificate_thumbprint_show()
695 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in cert_to_password_store() local
705 if (!setting->cert_installed) in cert_to_password_store()
708 if (!setting->signature || !setting->signature[0]) in cert_to_password_store()
719 auth_str = kasprintf(GFP_KERNEL, "%s,%s", passwd, setting->signature); in cert_to_password_store()
737 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in certificate_store() local
751 if (!setting->signature || !setting->signature[0]) in certificate_store()
757 setting->signature); in certificate_store()
773 if (setting->cert_installed) { in certificate_store()
775 if (!setting->signature || !setting->signature[0]) { in certificate_store()
782 new_cert, setting->signature); in certificate_store()
785 if (!setting->valid || !setting->password[0]) { in certificate_store()
792 new_cert, setting->password); in certificate_store()
810 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in signature_store() local
827 kfree(setting->signature); in signature_store()
828 setting->signature = new_signature; in signature_store()
839 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in save_signature_store() local
856 kfree(setting->save_signature); in save_signature_store()
857 setting->save_signature = new_signature; in save_signature_store()
867 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in auth_attr_is_visible() local
871 if ((setting == tlmi_priv.pwd_hdd) || (setting == tlmi_priv.pwd_nvme)) in auth_attr_is_visible()
882 if ((setting == tlmi_priv.pwd_admin) && tlmi_priv.certificate_support) in auth_attr_is_visible()
925 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in display_name_show() local
927 return sysfs_emit(buf, "%s\n", setting->display_name); in display_name_show()
932 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in current_value_show() local
936 ret = tlmi_setting(setting->index, &item, LENOVO_BIOS_SETTING_GUID); in current_value_show()
957 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in possible_values_show() local
959 return sysfs_emit(buf, "%s\n", setting->possible_values); in possible_values_show()
965 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in type_show() local
967 if (setting->possible_values) { in type_show()
968 /* Figure out what setting type is as BIOS does not return this */ in type_show()
969 if (strchr(setting->possible_values, ';')) in type_show()
980 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in current_value_store() local
1004 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->display_name, in current_value_store()
1034 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->display_name, in current_value_store()
1059 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->display_name, in current_value_store()
1062 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->display_name, in current_value_store()
1102 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in attr_is_visible() local
1105 if ((attr == &attr_possible_values.attr) && (!setting->possible_values)) in attr_is_visible()
1127 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in tlmi_attr_setting_release() local
1129 kfree(setting->possible_values); in tlmi_attr_setting_release()
1130 kfree(setting); in tlmi_attr_setting_release()
1135 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in tlmi_pwd_setting_release() local
1137 kfree(setting); in tlmi_pwd_setting_release()
1287 /* Check if index is a valid setting - skip if it isn't */ in tlmi_sysfs_init()
1288 if (!tlmi_priv.setting[i]) in tlmi_sysfs_init()
1293 tlmi_priv.setting[i]->display_name) < 0) { in tlmi_sysfs_init()
1294 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_sysfs_init()
1295 kfree(tlmi_priv.setting[i]); in tlmi_sysfs_init()
1296 tlmi_priv.setting[i] = NULL; in tlmi_sysfs_init()
1301 tlmi_priv.setting[i]->kobj.kset = tlmi_priv.attribute_kset; in tlmi_sysfs_init()
1302 ret = kobject_init_and_add(&tlmi_priv.setting[i]->kobj, &tlmi_attr_setting_ktype, in tlmi_sysfs_init()
1303 NULL, "%s", tlmi_priv.setting[i]->display_name); in tlmi_sysfs_init()
1415 struct tlmi_attr_setting *setting; in tlmi_analyze() local
1419 tlmi_priv.setting[i] = NULL; in tlmi_analyze()
1437 /* Create a setting entry */ in tlmi_analyze()
1438 setting = kzalloc(sizeof(*setting), GFP_KERNEL); in tlmi_analyze()
1439 if (!setting) { in tlmi_analyze()
1444 setting->index = i; in tlmi_analyze()
1445 strscpy(setting->display_name, item, TLMI_SETTINGS_MAXLEN); in tlmi_analyze()
1448 ret = tlmi_get_bios_selections(setting->display_name, in tlmi_analyze()
1449 &setting->possible_values); in tlmi_analyze()
1450 if (ret || !setting->possible_values) in tlmi_analyze()
1452 i, setting->display_name); in tlmi_analyze()
1462 if (!tlmi_setting(setting->index, &optitem, LENOVO_BIOS_SETTING_GUID)) { in tlmi_analyze()
1468 setting->possible_values = in tlmi_analyze()
1479 if (setting->possible_values) in tlmi_analyze()
1480 strreplace(setting->possible_values, ',', ';'); in tlmi_analyze()
1482 tlmi_priv.setting[i] = setting; in tlmi_analyze()
1486 /* Create password setting structure */ in tlmi_analyze()
1561 if (tlmi_priv.setting[i]) { in tlmi_analyze()
1562 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_analyze()
1563 kfree(tlmi_priv.setting[i]); in tlmi_analyze()