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.
338 static int tlmi_opcode_setting(char *setting, const char *value)
343 opcode_str = kasprintf(GFP_KERNEL, "%s:%s;", setting, value);
393 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
395 return sysfs_emit(buf, "%d\n", setting->valid);
404 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
409 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen)))
412 strscpy(setting->password, buf, setting->maxlen);
413 /* Strip out CR if one is present, setting password won't work if it is present */
414 strip_cr(setting->password);
424 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
439 /* Strip out CR if one is present, setting password won't work if it is present */
447 if (pwdlen && ((pwdlen < setting->minlen) || (pwdlen > setting->maxlen))) {
457 if (setting == tlmi_priv.pwd_hdd) {
458 if (setting->level == TLMI_LEVEL_USER)
459 sprintf(pwd_type, "uhdp%d", setting->index);
461 sprintf(pwd_type, "mhdp%d", setting->index);
462 } else if (setting == tlmi_priv.pwd_nvme) {
463 if (setting->level == TLMI_LEVEL_USER)
464 sprintf(pwd_type, "udrp%d", setting->index);
466 sprintf(pwd_type, "adrp%d", setting->index);
468 sprintf(pwd_type, "%s", setting->pwd_type);
481 ret = tlmi_opcode_setting("WmiOpcodePasswordCurrent01", setting->password);
491 setting->pwd_type, setting->password, new_pwd,
492 encoding_options[setting->encoding], setting->kbdlang);
511 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
513 return sysfs_emit(buf, "%d\n", setting->minlen);
521 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
523 return sysfs_emit(buf, "%d\n", setting->maxlen);
537 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
539 return sysfs_emit(buf, "%s\n", encoding_options[setting->encoding]);
546 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
554 setting->encoding = i;
563 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
565 return sysfs_emit(buf, "%s\n", setting->kbdlang);
572 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
580 memcpy(setting->kbdlang, buf, length);
581 setting->kbdlang[length] = '\0';
590 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
592 return sysfs_emit(buf, "%s\n", setting->role);
599 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
601 return sysfs_emit(buf, "%d\n", setting->index);
608 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
618 setting->index = val;
627 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
629 return sysfs_emit(buf, "%s\n", level_options[setting->level]);
636 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
644 setting->level = i;
678 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
681 if (!tlmi_priv.certificate_support || !setting->cert_installed)
696 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
706 if (!setting->cert_installed)
709 if (!setting->signature || !setting->signature[0])
720 auth_str = kasprintf(GFP_KERNEL, "%s,%s", passwd, setting->signature);
738 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
752 if (!setting->signature || !setting->signature[0])
758 setting->signature);
774 if (setting->cert_installed) {
776 if (!setting->signature || !setting->signature[0]) {
783 new_cert, setting->signature);
786 if (!setting->valid || !setting->password[0]) {
793 new_cert, setting->password);
811 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
828 kfree(setting->signature);
829 setting->signature = new_signature;
840 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
857 kfree(setting->save_signature);
858 setting->save_signature = new_signature;
868 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
872 if ((setting == tlmi_priv.pwd_hdd) || (setting == tlmi_priv.pwd_nvme))
883 if ((setting == tlmi_priv.pwd_admin) && tlmi_priv.certificate_support)
925 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
927 return sysfs_emit(buf, "%s\n", setting->display_name);
932 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
936 ret = tlmi_setting(setting->index, &item, LENOVO_BIOS_SETTING_GUID);
957 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
959 return sysfs_emit(buf, "%s\n", setting->possible_values);
965 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
967 if (setting->possible_values) {
968 /* Figure out what setting type is as BIOS does not return this */
969 if (strchr(setting->possible_values, ';'))
980 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
1004 set_str = kasprintf(GFP_KERNEL, "%s,%s,%s", setting->display_name,
1025 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,
1100 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
1103 if ((attr == &attr_possible_values.attr) && (!setting->possible_values))
1124 struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
1126 kfree(setting->possible_values);
1127 kfree(setting);
1132 struct tlmi_pwd_setting *setting = to_tlmi_pwd_setting(kobj);
1134 kfree(setting);
1218 if (tlmi_priv.setting[i]) {
1219 sysfs_remove_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group);
1220 kobject_put(&tlmi_priv.setting[i]->kobj);
1292 /* Check if index is a valid setting - skip if it isn't */
1293 if (!tlmi_priv.setting[i])
1298 tlmi_priv.setting[i]->display_name) < 0) {
1299 kfree(tlmi_priv.setting[i]->possible_values);
1300 kfree(tlmi_priv.setting[i]);
1301 tlmi_priv.setting[i] = NULL;
1306 tlmi_priv.setting[i]->kobj.kset = tlmi_priv.attribute_kset;
1307 ret = kobject_add(&tlmi_priv.setting[i]->kobj, NULL,
1308 "%s", tlmi_priv.setting[i]->display_name);
1312 ret = sysfs_create_group(&tlmi_priv.setting[i]->kobj, &tlmi_attr_group);
1448 struct tlmi_attr_setting *setting;
1452 tlmi_priv.setting[i] = NULL;
1470 /* Create a setting entry */
1471 setting = kzalloc(sizeof(*setting), GFP_KERNEL);
1472 if (!setting) {
1477 setting->index = i;
1478 strscpy(setting->display_name, item, TLMI_SETTINGS_MAXLEN);
1481 ret = tlmi_get_bios_selections(setting->display_name,
1482 &setting->possible_values);
1483 if (ret || !setting->possible_values)
1485 i, setting->display_name);
1495 if (!tlmi_setting(setting->index, &optitem, LENOVO_BIOS_SETTING_GUID)) {
1501 setting->possible_values =
1512 if (setting->possible_values)
1513 strreplace(setting->possible_values, ',', ';');
1515 kobject_init(&setting->kobj, &tlmi_attr_setting_ktype);
1516 tlmi_priv.setting[i] = setting;
1520 /* Create password setting structure */
1595 if (tlmi_priv.setting[i]) {
1596 kfree(tlmi_priv.setting[i]->possible_values);
1597 kfree(tlmi_priv.setting[i]);