Lines Matching full:setting

41  * Description: Change the BIOS setting to the desired value using the SetBiosSetting
107 * This is particularly useful for simplifying setting passwords.
333 static int tlmi_opcode_setting(char *setting, const char *value) in tlmi_opcode_setting() argument
338 opcode_str = kasprintf(GFP_KERNEL, "%s:%s;", setting, value); in tlmi_opcode_setting()
389 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in is_enabled_show() local
391 return sysfs_emit(buf, "%d\n", setting->pwd_enabled || setting->cert_installed); in is_enabled_show()
400 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in current_password_store() local
405 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) in current_password_store()
408 strscpy(setting->password, buf, setting->maxlen); in current_password_store()
409 /* Strip out CR if one is present, setting password won't work if it is present */ in current_password_store()
410 strreplace(setting->password, '\n', '\0'); in current_password_store()
420 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in new_password_store() local
431 /* Strip out CR if one is present, setting password won't work if it is present */ in new_password_store()
441 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) { in new_password_store()
451 if (setting == tlmi_priv.pwd_hdd) { in new_password_store()
452 if (setting->level == TLMI_LEVEL_USER) in new_password_store()
453 sprintf(pwd_type, "uhdp%d", setting->index); in new_password_store()
455 sprintf(pwd_type, "mhdp%d", setting->index); in new_password_store()
456 } else if (setting == tlmi_priv.pwd_nvme) { in new_password_store()
457 if (setting->level == TLMI_LEVEL_USER) in new_password_store()
458 sprintf(pwd_type, "udrp%d", setting->index); in new_password_store()
460 sprintf(pwd_type, "adrp%d", setting->index); in new_password_store()
462 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()
529 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in mechanism_show() local
531 if (setting->cert_installed) in mechanism_show()
540 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in encoding_show() local
542 return sysfs_emit(buf, "%s\n", encoding_options[setting->encoding]); in encoding_show()
549 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in encoding_store() local
557 setting->encoding = i; in encoding_store()
566 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in kbdlang_show() local
568 return sysfs_emit(buf, "%s\n", setting->kbdlang); in kbdlang_show()
575 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in kbdlang_store() local
583 memcpy(setting->kbdlang, buf, length); in kbdlang_store()
584 setting->kbdlang[length] = '\0'; in kbdlang_store()
593 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in role_show() local
595 return sysfs_emit(buf, "%s\n", setting->role); in role_show()
602 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in index_show() local
604 return sysfs_emit(buf, "%d\n", setting->index); in index_show()
611 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in index_store() local
621 setting->index = val; in index_store()
630 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in level_show() local
632 return sysfs_emit(buf, "%s\n", level_options[setting->level]); in level_show()
639 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in level_store() local
647 setting->level = i; in level_store()
653 static char *cert_command(struct tlmi_pwd_setting *setting, const char *arg1, const char *arg2) in cert_command() argument
658 setting == tlmi_priv.pwd_admin ? "SVC" : "SMC", in cert_command()
694 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in certificate_thumbprint_show() local
699 if (!tlmi_priv.certificate_support || !setting->cert_installed) in certificate_thumbprint_show()
706 setting == tlmi_priv.pwd_admin ? "SVC" : "SMC", in certificate_thumbprint_show()
727 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in cert_to_password_store() local
737 if (!setting->cert_installed) in cert_to_password_store()
740 if (!setting->signature || !setting->signature[0]) in cert_to_password_store()
749 auth_str = cert_command(setting, passwd, setting->signature); in cert_to_password_store()
772 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in certificate_store() local
788 if (!setting->signature || !setting->signature[0]) in certificate_store()
792 auth_str = cert_command(setting, in certificate_store()
794 setting->signature); in certificate_store()
809 if (setting->cert_installed) { in certificate_store()
816 signature = setting->signature; in certificate_store()
819 if ((setting == tlmi_priv.pwd_system) && tlmi_priv.pwd_admin->cert_installed) { in certificate_store()
825 signature = setting->signature; in certificate_store()
837 auth_str = cert_command(setting, new_cert, signature); in certificate_store()
841 if ((setting == tlmi_priv.pwd_admin) && in certificate_store()
842 (!setting->pwd_enabled || !setting->password[0])) { in certificate_store()
848 auth_str = cert_command(setting, new_cert, setting->password); in certificate_store()
866 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in signature_store() local
881 kfree(setting->signature); in signature_store()
882 setting->signature = new_signature; in signature_store()
893 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in save_signature_store() local
908 kfree(setting->save_signature); in save_signature_store()
909 setting->save_signature = new_signature; in save_signature_store()
919 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in auth_attr_is_visible() local
923 if ((setting == tlmi_priv.pwd_hdd) || (setting == tlmi_priv.pwd_nvme)) in auth_attr_is_visible()
935 if (setting == tlmi_priv.pwd_admin) in auth_attr_is_visible()
938 (setting == tlmi_priv.pwd_system)) in auth_attr_is_visible()
981 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in display_name_show() local
983 return sysfs_emit(buf, "%s\n", setting->display_name); in display_name_show()
988 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in current_value_show() local
992 ret = tlmi_setting(setting->wdev, setting->index, &item); in current_value_show()
1012 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in possible_values_show() local
1014 return sysfs_emit(buf, "%s\n", setting->possible_values); in possible_values_show()
1020 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in type_show() local
1022 if (setting->possible_values) { in type_show()
1023 /* Figure out what setting type is as BIOS does not return this */ in type_show()
1024 if (strchr(setting->possible_values, ';')) in type_show()
1035 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in current_value_store() local
1064 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->name, in current_value_store()
1095 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->name, in current_value_store()
1123 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->name, in current_value_store()
1126 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->name, in current_value_store()
1170 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in attr_is_visible() local
1173 if ((attr == &attr_possible_values.attr) && (!setting->possible_values)) in attr_is_visible()
1194 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj); in tlmi_attr_setting_release() local
1196 kfree(setting->possible_values); in tlmi_attr_setting_release()
1197 kfree(setting); in tlmi_attr_setting_release()
1202 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj); in tlmi_pwd_setting_release() local
1204 kfree(setting); in tlmi_pwd_setting_release()
1234 /* Check that setting is valid */ in save_settings_show()
1387 if (tlmi_priv.setting[i]) { in tlmi_release_attr()
1388 sysfs_remove_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group); in tlmi_release_attr()
1389 kobject_put(&tlmi_priv.setting[i]->kobj); in tlmi_release_attr()
1459 /* Check if index is a valid setting - skip if it isn't */ in tlmi_sysfs_init()
1460 if (!tlmi_priv.setting[i]) in tlmi_sysfs_init()
1465 tlmi_priv.setting[i]->display_name) < 0) { in tlmi_sysfs_init()
1466 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_sysfs_init()
1467 kfree(tlmi_priv.setting[i]); in tlmi_sysfs_init()
1468 tlmi_priv.setting[i] = NULL; in tlmi_sysfs_init()
1473 tlmi_priv.setting[i]->kobj.kset = tlmi_priv.attribute_kset; in tlmi_sysfs_init()
1474 ret = kobject_add(&tlmi_priv.setting[i]->kobj, NULL, in tlmi_sysfs_init()
1475 "%s", tlmi_priv.setting[i]->display_name); in tlmi_sysfs_init()
1479 ret = sysfs_create_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group); in tlmi_sysfs_init()
1618 struct tlmi_attr_setting *setting; in tlmi_analyze() local
1621 tlmi_priv.setting[i] = NULL; in tlmi_analyze()
1635 /* Create a setting entry */ in tlmi_analyze()
1636 setting = kzalloc(sizeof(*setting), GFP_KERNEL); in tlmi_analyze()
1637 if (!setting) { in tlmi_analyze()
1642 setting->wdev = wdev; in tlmi_analyze()
1643 setting->index = i; in tlmi_analyze()
1645 strscpy(setting->name, item); in tlmi_analyze()
1648 strscpy(setting->display_name, item); in tlmi_analyze()
1652 ret = tlmi_get_bios_selections(setting->name, in tlmi_analyze()
1653 &setting->possible_values); in tlmi_analyze()
1654 if (ret || !setting->possible_values) in tlmi_analyze()
1656 i, setting->display_name); in tlmi_analyze()
1666 if (!tlmi_setting(setting->wdev, setting->index, &optitem)) { in tlmi_analyze()
1672 setting->possible_values = in tlmi_analyze()
1683 if (setting->possible_values) in tlmi_analyze()
1684 strreplace(setting->possible_values, ',', ';'); in tlmi_analyze()
1686 kobject_init(&setting->kobj, &tlmi_attr_setting_ktype); in tlmi_analyze()
1687 tlmi_priv.setting[i] = setting; in tlmi_analyze()
1691 /* Create password setting structure */ in tlmi_analyze()
1768 if (tlmi_priv.setting[i]) { in tlmi_analyze()
1769 kfree(tlmi_priv.setting[i]->possible_values); in tlmi_analyze()
1770 kfree(tlmi_priv.setting[i]); in tlmi_analyze()