Commit 603a7dd0 authored by Tim Crawford's avatar Tim Crawford Committed by Hans de Goede

platform/x86: system76_acpi: Add attribute group for kb_led_color

Create the attribute groups for kb_led_color and set the `groups` field
in kb_led. While touching it, also change its show method to use
sysfs_emit() instead of sprintf().
Signed-off-by: default avatarTim Crawford <tcrawford@system76.com>
Link: https://lore.kernel.org/r/20211006202202.7479-5-tcrawford@system76.comReviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
parent 76f7eba3
...@@ -348,7 +348,7 @@ static ssize_t kb_led_color_show( ...@@ -348,7 +348,7 @@ static ssize_t kb_led_color_show(
led = (struct led_classdev *)dev->driver_data; led = (struct led_classdev *)dev->driver_data;
data = container_of(led, struct system76_data, kb_led); data = container_of(led, struct system76_data, kb_led);
return sprintf(buf, "%06X\n", data->kb_color); return sysfs_emit(buf, "%06X\n", data->kb_color);
} }
// Set the keyboard LED color // Set the keyboard LED color
...@@ -376,7 +376,7 @@ static ssize_t kb_led_color_store( ...@@ -376,7 +376,7 @@ static ssize_t kb_led_color_store(
return size; return size;
} }
static const struct device_attribute kb_led_color_dev_attr = { static struct device_attribute dev_attr_kb_led_color = {
.attr = { .attr = {
.name = "color", .name = "color",
.mode = 0644, .mode = 0644,
...@@ -385,6 +385,13 @@ static const struct device_attribute kb_led_color_dev_attr = { ...@@ -385,6 +385,13 @@ static const struct device_attribute kb_led_color_dev_attr = {
.store = kb_led_color_store, .store = kb_led_color_store,
}; };
static struct attribute *system76_kb_led_color_attrs[] = {
&dev_attr_kb_led_color.attr,
NULL,
};
ATTRIBUTE_GROUPS(system76_kb_led_color);
// Notify that the keyboard LED was changed by hardware // Notify that the keyboard LED was changed by hardware
static void kb_led_notify(struct system76_data *data) static void kb_led_notify(struct system76_data *data)
{ {
...@@ -685,6 +692,7 @@ static int system76_add(struct acpi_device *acpi_dev) ...@@ -685,6 +692,7 @@ static int system76_add(struct acpi_device *acpi_dev)
data->kb_led.brightness_set_blocking = kb_led_set; data->kb_led.brightness_set_blocking = kb_led_set;
if (acpi_has_method(acpi_device_handle(data->acpi_dev), "SKBC")) { if (acpi_has_method(acpi_device_handle(data->acpi_dev), "SKBC")) {
data->kb_led.max_brightness = 255; data->kb_led.max_brightness = 255;
data->kb_led.groups = system76_kb_led_color_groups;
data->kb_toggle_brightness = 72; data->kb_toggle_brightness = 72;
data->kb_color = 0xffffff; data->kb_color = 0xffffff;
system76_set(data, "SKBC", data->kb_color); system76_set(data, "SKBC", data->kb_color);
...@@ -696,15 +704,6 @@ static int system76_add(struct acpi_device *acpi_dev) ...@@ -696,15 +704,6 @@ static int system76_add(struct acpi_device *acpi_dev)
if (err) if (err)
return err; return err;
if (data->kb_color >= 0) {
err = device_create_file(
data->kb_led.dev,
&kb_led_color_dev_attr
);
if (err)
return err;
}
data->input = devm_input_allocate_device(&acpi_dev->dev); data->input = devm_input_allocate_device(&acpi_dev->dev);
if (!data->input) if (!data->input)
return -ENOMEM; return -ENOMEM;
...@@ -753,9 +752,6 @@ static int system76_remove(struct acpi_device *acpi_dev) ...@@ -753,9 +752,6 @@ static int system76_remove(struct acpi_device *acpi_dev)
system76_battery_exit(); system76_battery_exit();
if (data->kb_color >= 0)
device_remove_file(data->kb_led.dev, &kb_led_color_dev_attr);
devm_led_classdev_unregister(&acpi_dev->dev, &data->ap_led); devm_led_classdev_unregister(&acpi_dev->dev, &data->ap_led);
devm_led_classdev_unregister(&acpi_dev->dev, &data->kb_led); devm_led_classdev_unregister(&acpi_dev->dev, &data->kb_led);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment