mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 17:14:14 +08:00
platform/x86: think-lmi: Split current_value to reflect only the value
Currently attributes will show things like: `BootOrderLock,Disable` rather than just `Disable`. Of course this works, but the attribute is intended to be read by userspace tools and not require further processing. That is a userspace tool can display a drop down of `possible_values` and `current_value` is one of them from the list. This also aligns `think-lmi` with how `dell-wmi-sysman` works. Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Link: https://lore.kernel.org/r/20210622200755.12379-3-mario.limonciello@amd.com Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
1bcad8e510
commit
0fdf10e5fc
@ -492,14 +492,19 @@ static ssize_t display_name_show(struct kobject *kobj, struct kobj_attribute *at
|
||||
static ssize_t current_value_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf)
|
||||
{
|
||||
struct tlmi_attr_setting *setting = to_tlmi_attr_setting(kobj);
|
||||
char *item;
|
||||
char *item, *value;
|
||||
int ret;
|
||||
|
||||
ret = tlmi_setting(setting->index, &item, LENOVO_BIOS_SETTING_GUID);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = sysfs_emit(buf, "%s\n", item);
|
||||
/* validate and split from `item,value` -> `value` */
|
||||
value = strpbrk(item, ",");
|
||||
if (!value || value == item || !strlen(value + 1))
|
||||
return -EINVAL;
|
||||
|
||||
ret = sysfs_emit(buf, "%s\n", value + 1);
|
||||
kfree(item);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user