Lines Matching refs: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)
342 opcode_str = kasprintf(GFP_KERNEL, "%s:%s;", setting, value);
392 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
394 return sysfs_emit(buf, "%d\n", setting->valid);
403 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
408 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen)))
411 strscpy(setting->password, buf, setting->maxlen);
412 /* Strip out CR if one is present, setting password won't work if it is present */
413 strreplace(setting->password, '\n', '\0');
423 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
434 /* Strip out CR if one is present, setting password won't work if it is present */
444 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) {
454 if (setting == tlmi_priv.pwd_hdd) {
455 if (setting->level == TLMI_LEVEL_USER)
456 sprintf(pwd_type, "uhdp%d", setting->index);
458 sprintf(pwd_type, "mhdp%d", setting->index);
459 } else if (setting == tlmi_priv.pwd_nvme) {
460 if (setting->level == TLMI_LEVEL_USER)
461 sprintf(pwd_type, "udrp%d", setting->index);
463 sprintf(pwd_type, "adrp%d", setting->index);
465 sprintf(pwd_type, "%s", setting->pwd_type);
478 ret = tlmi_opcode_setting("WmiOpcodePasswordCurrent01", setting->password);
488 setting->pwd_type, setting->password, new_pwd,
489 encoding_options[setting->encoding], setting->kbdlang);
508 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
510 return sysfs_emit(buf, "%d\n", setting->minlen);
518 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
520 return sysfs_emit(buf, "%d\n", setting->maxlen);
534 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
536 return sysfs_emit(buf, "%s\n", encoding_options[setting->encoding]);
543 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
551 setting->encoding = i;
560 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
562 return sysfs_emit(buf, "%s\n", setting->kbdlang);
569 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
577 memcpy(setting->kbdlang, buf, length);
578 setting->kbdlang[length] = '\0';
587 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
589 return sysfs_emit(buf, "%s\n", setting->role);
596 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
598 return sysfs_emit(buf, "%d\n", setting->index);
605 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
615 setting->index = val;
624 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
626 return sysfs_emit(buf, "%s\n", level_options[setting->level]);
633 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
641 setting->level = i;
675 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
678 if (!tlmi_priv.certificate_support || !setting->cert_installed)
693 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
703 if (!setting->cert_installed)
706 if (!setting->signature || !setting->signature[0])
715 auth_str = kasprintf(GFP_KERNEL, "%s,%s", passwd, setting->signature);
733 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
747 if (!setting->signature || !setting->signature[0])
753 setting->signature);
768 if (setting->cert_installed) {
770 if (!setting->signature || !setting->signature[0]) {
777 new_cert, setting->signature);
780 if (!setting->valid || !setting->password[0]) {
787 new_cert, setting->password);
805 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
820 kfree(setting->signature);
821 setting->signature = new_signature;
832 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
847 kfree(setting->save_signature);
848 setting->save_signature = new_signature;
858 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
862 if ((setting == tlmi_priv.pwd_hdd) || (setting == tlmi_priv.pwd_nvme))
873 if ((setting == tlmi_priv.pwd_admin) && tlmi_priv.certificate_support)
915 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
917 return sysfs_emit(buf, "%s\n", setting->display_name);
922 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
926 ret = tlmi_setting(setting->index, &item, LENOVO_BIOS_SETTING_GUID);
946 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
948 return sysfs_emit(buf, "%s\n", setting->possible_values);
954 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
956 if (setting->possible_values) {
957 /* Figure out what setting type is as BIOS does not return this */
958 if (strchr(setting->possible_values, ';'))
969 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
998 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->display_name,
1029 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->display_name,
1057 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->display_name,
1060 set_str = kasprintf(GFP_KERNEL, "%s,%s;", setting->display_name,
1104 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
1107 if ((attr == &attr_possible_values.attr) && (!setting->possible_values))
1128 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
1130 kfree(setting->possible_values);
1131 kfree(setting);
1136 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
1138 kfree(setting);
1168 /* Check that setting is valid */
1321 if (tlmi_priv.setting[i]) {
1322 sysfs_remove_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group);
1323 kobject_put(&tlmi_priv.setting[i]->kobj);
1397 /* Check if index is a valid setting - skip if it isn't */
1398 if (!tlmi_priv.setting[i])
1403 tlmi_priv.setting[i]->display_name) < 0) {
1404 kfree(tlmi_priv.setting[i]->possible_values);
1405 kfree(tlmi_priv.setting[i]);
1406 tlmi_priv.setting[i] = NULL;
1411 tlmi_priv.setting[i]->kobj.kset = tlmi_priv.attribute_kset;
1412 ret = kobject_add(&tlmi_priv.setting[i]->kobj, NULL,
1413 "%s", tlmi_priv.setting[i]->display_name);
1417 ret = sysfs_create_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group);
1557 struct tlmi_attr_setting *setting;
1560 tlmi_priv.setting[i] = NULL;
1577 /* Create a setting entry */
1578 setting = kzalloc(sizeof(*setting), GFP_KERNEL);
1579 if (!setting) {
1584 setting->index = i;
1585 strscpy(setting->display_name, item, TLMI_SETTINGS_MAXLEN);
1588 ret = tlmi_get_bios_selections(setting->display_name,
1589 &setting->possible_values);
1590 if (ret || !setting->possible_values)
1592 i, setting->display_name);
1602 if (!tlmi_setting(setting->index, &optitem, LENOVO_BIOS_SETTING_GUID)) {
1608 setting->possible_values =
1619 if (setting->possible_values)
1620 strreplace(setting->possible_values, ',', ';');
1622 kobject_init(&setting->kobj, &tlmi_attr_setting_ktype);
1623 tlmi_priv.setting[i] = setting;
1627 /* Create password setting structure */
1702 if (tlmi_priv.setting[i]) {
1703 kfree(tlmi_priv.setting[i]->possible_values);
1704 kfree(tlmi_priv.setting[i]);