diff options
-rw-r--r-- | queue-6.1/platform-loongarch-laptop-add-backlight-power-control-support.patch | 145 | ||||
-rw-r--r-- | queue-6.1/series | 1 | ||||
-rw-r--r-- | queue-6.6/platform-loongarch-laptop-add-backlight-power-control-support.patch | 145 | ||||
-rw-r--r-- | queue-6.6/series | 1 |
4 files changed, 0 insertions, 292 deletions
diff --git a/queue-6.1/platform-loongarch-laptop-add-backlight-power-control-support.patch b/queue-6.1/platform-loongarch-laptop-add-backlight-power-control-support.patch deleted file mode 100644 index 885488d758c..00000000000 --- a/queue-6.1/platform-loongarch-laptop-add-backlight-power-control-support.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 53c762b47f726e4079a1f06f684bce2fc0d56fba Mon Sep 17 00:00:00 2001 -From: Yao Zi <ziyao@disroot.org> -Date: Thu, 5 Jun 2025 20:34:46 +0800 -Subject: platform/loongarch: laptop: Add backlight power control support - -From: Yao Zi <ziyao@disroot.org> - -commit 53c762b47f726e4079a1f06f684bce2fc0d56fba upstream. - -loongson_laptop_turn_{on,off}_backlight() are designed for controlling -the power of the backlight, but they aren't really used in the driver -previously. - -Unify these two functions since they only differ in arguments passed to -ACPI method, and wire up loongson_laptop_backlight_update() to update -the power state of the backlight as well. Tested on the TongFang L860-T2 -Loongson-3A5000 laptop. - -Cc: stable@vger.kernel.org -Fixes: 6246ed09111f ("LoongArch: Add ACPI-based generic laptop driver") -Signed-off-by: Yao Zi <ziyao@disroot.org> -Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/platform/loongarch/loongson-laptop.c | 73 +++++++++++++-------------- - 1 file changed, 37 insertions(+), 36 deletions(-) - ---- a/drivers/platform/loongarch/loongson-laptop.c -+++ b/drivers/platform/loongarch/loongson-laptop.c -@@ -56,8 +56,7 @@ static struct input_dev *generic_inputde - static acpi_handle hotkey_handle; - static struct key_entry hotkey_keycode_map[GENERIC_HOTKEY_MAP_MAX]; - --int loongson_laptop_turn_on_backlight(void); --int loongson_laptop_turn_off_backlight(void); -+static bool bl_powered; - static int loongson_laptop_backlight_update(struct backlight_device *bd); - - /* 2. ACPI Helpers and device model */ -@@ -354,16 +353,42 @@ static int ec_backlight_level(u8 level) - return level; - } - -+static int ec_backlight_set_power(bool state) -+{ -+ int status; -+ union acpi_object arg0 = { ACPI_TYPE_INTEGER }; -+ struct acpi_object_list args = { 1, &arg0 }; -+ -+ arg0.integer.value = state; -+ status = acpi_evaluate_object(NULL, "\\BLSW", &args, NULL); -+ if (ACPI_FAILURE(status)) { -+ pr_info("Loongson lvds error: 0x%x\n", status); -+ return -EIO; -+ } -+ -+ return 0; -+} -+ - static int loongson_laptop_backlight_update(struct backlight_device *bd) - { -- int lvl = ec_backlight_level(bd->props.brightness); -+ bool target_powered = !backlight_is_blank(bd); -+ int ret = 0, lvl = ec_backlight_level(bd->props.brightness); - - if (lvl < 0) - return -EIO; -+ - if (ec_set_brightness(lvl)) - return -EIO; - -- return 0; -+ if (target_powered != bl_powered) { -+ ret = ec_backlight_set_power(target_powered); -+ if (ret < 0) -+ return ret; -+ -+ bl_powered = target_powered; -+ } -+ -+ return ret; - } - - static int loongson_laptop_get_brightness(struct backlight_device *bd) -@@ -384,7 +409,7 @@ static const struct backlight_ops backli - - static int laptop_backlight_register(void) - { -- int status = 0; -+ int status = 0, ret; - struct backlight_properties props; - - memset(&props, 0, sizeof(props)); -@@ -392,44 +417,20 @@ static int laptop_backlight_register(voi - if (!acpi_evalf(hotkey_handle, &status, "ECLL", "d")) - return -EIO; - -+ ret = ec_backlight_set_power(true); -+ if (ret) -+ return ret; -+ -+ bl_powered = true; -+ - props.max_brightness = status; - props.brightness = ec_get_brightness(); -+ props.power = BACKLIGHT_POWER_ON; - props.type = BACKLIGHT_PLATFORM; - - backlight_device_register("loongson_laptop", - NULL, NULL, &backlight_laptop_ops, &props); - -- return 0; --} -- --int loongson_laptop_turn_on_backlight(void) --{ -- int status; -- union acpi_object arg0 = { ACPI_TYPE_INTEGER }; -- struct acpi_object_list args = { 1, &arg0 }; -- -- arg0.integer.value = 1; -- status = acpi_evaluate_object(NULL, "\\BLSW", &args, NULL); -- if (ACPI_FAILURE(status)) { -- pr_info("Loongson lvds error: 0x%x\n", status); -- return -ENODEV; -- } -- -- return 0; --} -- --int loongson_laptop_turn_off_backlight(void) --{ -- int status; -- union acpi_object arg0 = { ACPI_TYPE_INTEGER }; -- struct acpi_object_list args = { 1, &arg0 }; -- -- arg0.integer.value = 0; -- status = acpi_evaluate_object(NULL, "\\BLSW", &args, NULL); -- if (ACPI_FAILURE(status)) { -- pr_info("Loongson lvds error: 0x%x\n", status); -- return -ENODEV; -- } - - return 0; - } diff --git a/queue-6.1/series b/queue-6.1/series index 6e4cdbd218c..34794f1aa8e 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -442,7 +442,6 @@ revert-x86-bugs-make-spectre-user-default-depend-on-mitigation_spectre_v2-on-v6. drivers-rapidio-rio_cm.c-prevent-possible-heap-overwrite.patch platform-loongarch-laptop-get-brightness-setting-from-ec-on-probe.patch platform-loongarch-laptop-unregister-generic_sub_drivers-on-exit.patch -platform-loongarch-laptop-add-backlight-power-control-support.patch loongarch-avoid-using-r0-r1-as-mask-for-csrxchg.patch jffs2-check-that-raw-node-were-preallocated-before-writing-summary.patch jffs2-check-jffs2_prealloc_raw_node_refs-result-in-few-other-places.patch diff --git a/queue-6.6/platform-loongarch-laptop-add-backlight-power-control-support.patch b/queue-6.6/platform-loongarch-laptop-add-backlight-power-control-support.patch deleted file mode 100644 index 885488d758c..00000000000 --- a/queue-6.6/platform-loongarch-laptop-add-backlight-power-control-support.patch +++ /dev/null @@ -1,145 +0,0 @@ -From 53c762b47f726e4079a1f06f684bce2fc0d56fba Mon Sep 17 00:00:00 2001 -From: Yao Zi <ziyao@disroot.org> -Date: Thu, 5 Jun 2025 20:34:46 +0800 -Subject: platform/loongarch: laptop: Add backlight power control support - -From: Yao Zi <ziyao@disroot.org> - -commit 53c762b47f726e4079a1f06f684bce2fc0d56fba upstream. - -loongson_laptop_turn_{on,off}_backlight() are designed for controlling -the power of the backlight, but they aren't really used in the driver -previously. - -Unify these two functions since they only differ in arguments passed to -ACPI method, and wire up loongson_laptop_backlight_update() to update -the power state of the backlight as well. Tested on the TongFang L860-T2 -Loongson-3A5000 laptop. - -Cc: stable@vger.kernel.org -Fixes: 6246ed09111f ("LoongArch: Add ACPI-based generic laptop driver") -Signed-off-by: Yao Zi <ziyao@disroot.org> -Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - drivers/platform/loongarch/loongson-laptop.c | 73 +++++++++++++-------------- - 1 file changed, 37 insertions(+), 36 deletions(-) - ---- a/drivers/platform/loongarch/loongson-laptop.c -+++ b/drivers/platform/loongarch/loongson-laptop.c -@@ -56,8 +56,7 @@ static struct input_dev *generic_inputde - static acpi_handle hotkey_handle; - static struct key_entry hotkey_keycode_map[GENERIC_HOTKEY_MAP_MAX]; - --int loongson_laptop_turn_on_backlight(void); --int loongson_laptop_turn_off_backlight(void); -+static bool bl_powered; - static int loongson_laptop_backlight_update(struct backlight_device *bd); - - /* 2. ACPI Helpers and device model */ -@@ -354,16 +353,42 @@ static int ec_backlight_level(u8 level) - return level; - } - -+static int ec_backlight_set_power(bool state) -+{ -+ int status; -+ union acpi_object arg0 = { ACPI_TYPE_INTEGER }; -+ struct acpi_object_list args = { 1, &arg0 }; -+ -+ arg0.integer.value = state; -+ status = acpi_evaluate_object(NULL, "\\BLSW", &args, NULL); -+ if (ACPI_FAILURE(status)) { -+ pr_info("Loongson lvds error: 0x%x\n", status); -+ return -EIO; -+ } -+ -+ return 0; -+} -+ - static int loongson_laptop_backlight_update(struct backlight_device *bd) - { -- int lvl = ec_backlight_level(bd->props.brightness); -+ bool target_powered = !backlight_is_blank(bd); -+ int ret = 0, lvl = ec_backlight_level(bd->props.brightness); - - if (lvl < 0) - return -EIO; -+ - if (ec_set_brightness(lvl)) - return -EIO; - -- return 0; -+ if (target_powered != bl_powered) { -+ ret = ec_backlight_set_power(target_powered); -+ if (ret < 0) -+ return ret; -+ -+ bl_powered = target_powered; -+ } -+ -+ return ret; - } - - static int loongson_laptop_get_brightness(struct backlight_device *bd) -@@ -384,7 +409,7 @@ static const struct backlight_ops backli - - static int laptop_backlight_register(void) - { -- int status = 0; -+ int status = 0, ret; - struct backlight_properties props; - - memset(&props, 0, sizeof(props)); -@@ -392,44 +417,20 @@ static int laptop_backlight_register(voi - if (!acpi_evalf(hotkey_handle, &status, "ECLL", "d")) - return -EIO; - -+ ret = ec_backlight_set_power(true); -+ if (ret) -+ return ret; -+ -+ bl_powered = true; -+ - props.max_brightness = status; - props.brightness = ec_get_brightness(); -+ props.power = BACKLIGHT_POWER_ON; - props.type = BACKLIGHT_PLATFORM; - - backlight_device_register("loongson_laptop", - NULL, NULL, &backlight_laptop_ops, &props); - -- return 0; --} -- --int loongson_laptop_turn_on_backlight(void) --{ -- int status; -- union acpi_object arg0 = { ACPI_TYPE_INTEGER }; -- struct acpi_object_list args = { 1, &arg0 }; -- -- arg0.integer.value = 1; -- status = acpi_evaluate_object(NULL, "\\BLSW", &args, NULL); -- if (ACPI_FAILURE(status)) { -- pr_info("Loongson lvds error: 0x%x\n", status); -- return -ENODEV; -- } -- -- return 0; --} -- --int loongson_laptop_turn_off_backlight(void) --{ -- int status; -- union acpi_object arg0 = { ACPI_TYPE_INTEGER }; -- struct acpi_object_list args = { 1, &arg0 }; -- -- arg0.integer.value = 0; -- status = acpi_evaluate_object(NULL, "\\BLSW", &args, NULL); -- if (ACPI_FAILURE(status)) { -- pr_info("Loongson lvds error: 0x%x\n", status); -- return -ENODEV; -- } - - return 0; - } diff --git a/queue-6.6/series b/queue-6.6/series index 38bb7e0ee89..7c5a2c5cee2 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -208,7 +208,6 @@ io_uring-fix-task-leak-issue-in-io_wq_create.patch drivers-rapidio-rio_cm.c-prevent-possible-heap-overwrite.patch platform-loongarch-laptop-get-brightness-setting-from-ec-on-probe.patch platform-loongarch-laptop-unregister-generic_sub_drivers-on-exit.patch -platform-loongarch-laptop-add-backlight-power-control-support.patch loongarch-avoid-using-r0-r1-as-mask-for-csrxchg.patch loongarch-fix-panic-caused-by-null-pmd-in-huge_pte_offset.patch jffs2-check-that-raw-node-were-preallocated-before-writing-summary.patch |