From: Greg Kroah-Hartman Date: Wed, 3 Aug 2022 12:22:21 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v4.19.255~30 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4c2db1ec04f2eb6436c3229520f1b07edc05e5d4;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: acpi-apei-better-fix-to-avoid-spamming-the-console-with-old-error-logs.patch acpi-video-force-backlight-native-for-some-tongfang-devices.patch acpi-video-shortening-quirk-list-by-identifying-clevo-by-board_name-only.patch --- diff --git a/queue-5.4/acpi-apei-better-fix-to-avoid-spamming-the-console-with-old-error-logs.patch b/queue-5.4/acpi-apei-better-fix-to-avoid-spamming-the-console-with-old-error-logs.patch new file mode 100644 index 00000000000..7bbfc0f1f5e --- /dev/null +++ b/queue-5.4/acpi-apei-better-fix-to-avoid-spamming-the-console-with-old-error-logs.patch @@ -0,0 +1,105 @@ +From c3481b6b75b4797657838f44028fd28226ab48e0 Mon Sep 17 00:00:00 2001 +From: Tony Luck +Date: Wed, 22 Jun 2022 10:09:06 -0700 +Subject: ACPI: APEI: Better fix to avoid spamming the console with old error logs + +From: Tony Luck + +commit c3481b6b75b4797657838f44028fd28226ab48e0 upstream. + +The fix in commit 3f8dec116210 ("ACPI/APEI: Limit printable size of BERT +table data") does not work as intended on systems where the BIOS has a +fixed size block of memory for the BERT table, relying on s/w to quit +when it finds a record with estatus->block_status == 0. On these systems +all errors are suppressed because the check: + + if (region_len < ACPI_BERT_PRINT_MAX_LEN) + +always fails. + +New scheme skips individual CPER records that are too large, and also +limits the total number of records that will be printed to 5. + +Fixes: 3f8dec116210 ("ACPI/APEI: Limit printable size of BERT table data") +Cc: All applicable +Signed-off-by: Tony Luck +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman +--- + drivers/acpi/apei/bert.c | 31 +++++++++++++++++++++++-------- + 1 file changed, 23 insertions(+), 8 deletions(-) + +--- a/drivers/acpi/apei/bert.c ++++ b/drivers/acpi/apei/bert.c +@@ -29,16 +29,26 @@ + + #undef pr_fmt + #define pr_fmt(fmt) "BERT: " fmt ++ ++#define ACPI_BERT_PRINT_MAX_RECORDS 5 + #define ACPI_BERT_PRINT_MAX_LEN 1024 + + static int bert_disable; + ++/* ++ * Print "all" the error records in the BERT table, but avoid huge spam to ++ * the console if the BIOS included oversize records, or too many records. ++ * Skipping some records here does not lose anything because the full ++ * data is available to user tools in: ++ * /sys/firmware/acpi/tables/data/BERT ++ */ + static void __init bert_print_all(struct acpi_bert_region *region, + unsigned int region_len) + { + struct acpi_hest_generic_status *estatus = + (struct acpi_hest_generic_status *)region; + int remain = region_len; ++ int printed = 0, skipped = 0; + u32 estatus_len; + + while (remain >= sizeof(struct acpi_bert_region)) { +@@ -46,24 +56,26 @@ static void __init bert_print_all(struct + if (remain < estatus_len) { + pr_err(FW_BUG "Truncated status block (length: %u).\n", + estatus_len); +- return; ++ break; + } + + /* No more error records. */ + if (!estatus->block_status) +- return; ++ break; + + if (cper_estatus_check(estatus)) { + pr_err(FW_BUG "Invalid error record.\n"); +- return; ++ break; + } + +- pr_info_once("Error records from previous boot:\n"); +- if (region_len < ACPI_BERT_PRINT_MAX_LEN) ++ if (estatus_len < ACPI_BERT_PRINT_MAX_LEN && ++ printed < ACPI_BERT_PRINT_MAX_RECORDS) { ++ pr_info_once("Error records from previous boot:\n"); + cper_estatus_print(KERN_INFO HW_ERR, estatus); +- else +- pr_info_once("Max print length exceeded, table data is available at:\n" +- "/sys/firmware/acpi/tables/data/BERT"); ++ printed++; ++ } else { ++ skipped++; ++ } + + /* + * Because the boot error source is "one-time polled" type, +@@ -75,6 +87,9 @@ static void __init bert_print_all(struct + estatus = (void *)estatus + estatus_len; + remain -= estatus_len; + } ++ ++ if (skipped) ++ pr_info(HW_ERR "Skipped %d error records\n", skipped); + } + + static int __init setup_bert_disable(char *str) diff --git a/queue-5.4/acpi-video-force-backlight-native-for-some-tongfang-devices.patch b/queue-5.4/acpi-video-force-backlight-native-for-some-tongfang-devices.patch new file mode 100644 index 00000000000..392ea993389 --- /dev/null +++ b/queue-5.4/acpi-video-force-backlight-native-for-some-tongfang-devices.patch @@ -0,0 +1,90 @@ +From c752089f7cf5b5800c6ace4cdd1a8351ee78a598 Mon Sep 17 00:00:00 2001 +From: Werner Sembach +Date: Thu, 7 Jul 2022 20:09:52 +0200 +Subject: ACPI: video: Force backlight native for some TongFang devices + +From: Werner Sembach + +commit c752089f7cf5b5800c6ace4cdd1a8351ee78a598 upstream. + +The TongFang PF5PU1G, PF4NU1F, PF5NU1G, and PF5LUXG/TUXEDO BA15 Gen10, +Pulse 14/15 Gen1, and Pulse 15 Gen2 have the same problem as the Clevo +NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2: +They have a working native and video interface. However the default +detection mechanism first registers the video interface before +unregistering it again and switching to the native interface during boot. +This results in a dangling SBIOS request for backlight change for some +reason, causing the backlight to switch to ~2% once per boot on the first +power cord connect or disconnect event. Setting the native interface +explicitly circumvents this buggy behaviour by avoiding the unregistering +process. + +Signed-off-by: Werner Sembach +Cc: All applicable +Reviewed-by: Hans de Goede +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman +--- + drivers/acpi/video_detect.c | 51 +++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 50 insertions(+), 1 deletion(-) + +--- a/drivers/acpi/video_detect.c ++++ b/drivers/acpi/video_detect.c +@@ -447,7 +447,56 @@ static const struct dmi_system_id video_ + DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), + }, + }, +- ++ /* ++ * The TongFang PF5PU1G, PF4NU1F, PF5NU1G, and PF5LUXG/TUXEDO BA15 Gen10, ++ * Pulse 14/15 Gen1, and Pulse 15 Gen2 have the same problem as the Clevo ++ * NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2. See the description ++ * above. ++ */ ++ { ++ .callback = video_detect_force_native, ++ .ident = "TongFang PF5PU1G", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "PF5PU1G"), ++ }, ++ }, ++ { ++ .callback = video_detect_force_native, ++ .ident = "TongFang PF4NU1F", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "PF4NU1F"), ++ }, ++ }, ++ { ++ .callback = video_detect_force_native, ++ .ident = "TongFang PF4NU1F", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), ++ DMI_MATCH(DMI_BOARD_NAME, "PULSE1401"), ++ }, ++ }, ++ { ++ .callback = video_detect_force_native, ++ .ident = "TongFang PF5NU1G", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "PF5NU1G"), ++ }, ++ }, ++ { ++ .callback = video_detect_force_native, ++ .ident = "TongFang PF5NU1G", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), ++ DMI_MATCH(DMI_BOARD_NAME, "PULSE1501"), ++ }, ++ }, ++ { ++ .callback = video_detect_force_native, ++ .ident = "TongFang PF5LUXG", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_NAME, "PF5LUXG"), ++ }, ++ }, + /* + * Desktops which falsely report a backlight and which our heuristics + * for this do not catch. diff --git a/queue-5.4/acpi-video-shortening-quirk-list-by-identifying-clevo-by-board_name-only.patch b/queue-5.4/acpi-video-shortening-quirk-list-by-identifying-clevo-by-board_name-only.patch new file mode 100644 index 00000000000..5d436a7226b --- /dev/null +++ b/queue-5.4/acpi-video-shortening-quirk-list-by-identifying-clevo-by-board_name-only.patch @@ -0,0 +1,75 @@ +From f0341e67b3782603737f7788e71bd3530012a4f4 Mon Sep 17 00:00:00 2001 +From: Werner Sembach +Date: Thu, 7 Jul 2022 20:09:53 +0200 +Subject: ACPI: video: Shortening quirk list by identifying Clevo by board_name only + +From: Werner Sembach + +commit f0341e67b3782603737f7788e71bd3530012a4f4 upstream. + +Taking a recent change in the i8042 quirklist to this one: Clevo +board_names are somewhat unique, and if not: The generic Board_-/Sys_Vendor +string "Notebook" doesn't help much anyway. So identifying the devices just +by the board_name helps keeping the list significantly shorter and might +even hit more devices requiring the fix. + +Signed-off-by: Werner Sembach +Fixes: c844d22fe0c0 ("ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU") +Cc: All applicable +Reviewed-by: Hans de Goede +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman +--- + drivers/acpi/video_detect.c | 34 ---------------------------------- + 1 file changed, 34 deletions(-) + +--- a/drivers/acpi/video_detect.c ++++ b/drivers/acpi/video_detect.c +@@ -387,23 +387,6 @@ static const struct dmi_system_id video_ + .callback = video_detect_force_native, + .ident = "Clevo NL5xRU", + .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), +- DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"), +- }, +- }, +- { +- .callback = video_detect_force_native, +- .ident = "Clevo NL5xRU", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "SchenkerTechnologiesGmbH"), +- DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"), +- }, +- }, +- { +- .callback = video_detect_force_native, +- .ident = "Clevo NL5xRU", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "Notebook"), + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"), + }, + }, +@@ -427,23 +410,6 @@ static const struct dmi_system_id video_ + .callback = video_detect_force_native, + .ident = "Clevo NL5xNU", + .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), +- DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), +- }, +- }, +- { +- .callback = video_detect_force_native, +- .ident = "Clevo NL5xNU", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "SchenkerTechnologiesGmbH"), +- DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), +- }, +- }, +- { +- .callback = video_detect_force_native, +- .ident = "Clevo NL5xNU", +- .matches = { +- DMI_MATCH(DMI_SYS_VENDOR, "Notebook"), + DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), + }, + }, diff --git a/queue-5.4/series b/queue-5.4/series index e94a549ed6d..ef2ea49bce0 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -1 +1,4 @@ thermal-fix-null-pointer-dereferences-in-of_thermal_-functions.patch +acpi-video-force-backlight-native-for-some-tongfang-devices.patch +acpi-video-shortening-quirk-list-by-identifying-clevo-by-board_name-only.patch +acpi-apei-better-fix-to-avoid-spamming-the-console-with-old-error-logs.patch