Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions drivers/platform/x86/asus-armoury.c
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ static ssize_t mini_led_mode_current_value_show(struct kobject *kobj,
if (err)
return err;

mode = FIELD_GET(ASUS_MINI_LED_MODE_MASK, 0);
mode = FIELD_GET(ASUS_MINI_LED_MODE_MASK, mode);

for (i = 0; i < mini_led_mode_map_size; i++)
if (mode == mini_led_mode_map[i])
Expand All @@ -386,6 +386,7 @@ static ssize_t mini_led_mode_current_value_store(struct kobject *kobj,
{
u32 *mini_led_mode_map;
size_t mini_led_mode_map_size;
char mapped_value[12];
u32 mode;
int err;

Expand Down Expand Up @@ -414,9 +415,16 @@ static ssize_t mini_led_mode_current_value_store(struct kobject *kobj,
return -ENODEV;
}

return armoury_attr_uint_store(kobj, attr, buf, count,
0, mini_led_mode_map[mode],
NULL, asus_armoury.mini_led_dev_id);
/*
* armoury_attr_uint_store() parses and sends the value from the
* passed buffer; hand it the mapped firmware value so the device
* receives the translated mode instead of the raw index.
*/
snprintf(mapped_value, sizeof(mapped_value), "%u", mini_led_mode_map[mode]);
Comment thread
pastaq marked this conversation as resolved.

return armoury_attr_uint_store(kobj, attr, mapped_value, count, 0,
mini_led_mode_map[mode], NULL,
asus_armoury.mini_led_dev_id);
}

static ssize_t mini_led_mode_possible_values_show(struct kobject *kobj,
Expand Down