* [PATCH v2 0/2] Add and use supported/unsupported string helper
@ 2026-09-07 8:43 Thorsten Blum
2026-09-07 8:43 ` [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper Thorsten Blum
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Thorsten Blum @ 2026-09-07 8:43 UTC (permalink / raw)
To: Mark Pearson, Derek J. Clark, Henrique de Moraes Holschuh,
Hans de Goede, Ilpo Järvinen, Kees Cook, Andy Shevchenko
Cc: platform-driver-x86, ibm-acpi-devel, linux-kernel,
linux-hardening, Thorsten Blum
Add a shared str_supported_unsupported() helper and use it to replace
thinkpad_acpi's custom implementation.
Changes in v2:
- Add and use str_supported_unsupported() as suggested by Ilpo
- v1: https://lore.kernel.org/r/20260806131549.235170-2-thorsten.blum@linux.dev/
Thorsten Blum (2):
lib/string_choices: Add str_supported_unsupported() helper
platform/x86: thinkpad_acpi: Use str_supported_unsupported() helper
drivers/platform/x86/lenovo/thinkpad_acpi.c | 42 ++++++++-------------
include/linux/string_choices.h | 6 +++
2 files changed, 22 insertions(+), 26 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper 2026-09-07 8:43 [PATCH v2 0/2] Add and use supported/unsupported string helper Thorsten Blum @ 2026-09-07 8:43 ` Thorsten Blum 2026-09-07 10:31 ` Andy Shevchenko 2026-09-07 11:12 ` Thorsten Blum 2026-09-07 8:43 ` [PATCH v2 2/2] platform/x86: thinkpad_acpi: Use " Thorsten Blum 2026-09-07 10:31 ` [PATCH v2 0/2] Add and use supported/unsupported string helper Andy Shevchenko 2 siblings, 2 replies; 7+ messages in thread From: Thorsten Blum @ 2026-09-07 8:43 UTC (permalink / raw) To: Mark Pearson, Derek J. Clark, Henrique de Moraes Holschuh, Hans de Goede, Ilpo Järvinen, Kees Cook, Andy Shevchenko Cc: platform-driver-x86, ibm-acpi-devel, linux-kernel, linux-hardening, Thorsten Blum Add str_supported_unsupported() to return "supported" or "unsupported" depending on the boolean argument. Also add the inverse str_unsupported_supported(). Signed-off-by: Thorsten Blum <blum@kernel.org> --- include/linux/string_choices.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/linux/string_choices.h b/include/linux/string_choices.h index ee84087d4b26..a2eba454004f 100644 --- a/include/linux/string_choices.h +++ b/include/linux/string_choices.h @@ -65,6 +65,12 @@ static inline const char *str_read_write(bool v) } #define str_write_read(v) str_read_write(!(v)) +static inline const char *str_supported_unsupported(bool v) +{ + return v ? "supported" : "unsupported"; +} +#define str_unsupported_supported(v) str_supported_unsupported(!(v)) + static inline const char *str_true_false(bool v) { return v ? "true" : "false"; ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper 2026-09-07 8:43 ` [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper Thorsten Blum @ 2026-09-07 10:31 ` Andy Shevchenko 2026-09-07 11:12 ` Thorsten Blum 1 sibling, 0 replies; 7+ messages in thread From: Andy Shevchenko @ 2026-09-07 10:31 UTC (permalink / raw) To: Thorsten Blum Cc: Mark Pearson, Derek J. Clark, Henrique de Moraes Holschuh, Hans de Goede, Ilpo Järvinen, Kees Cook, Andy Shevchenko, platform-driver-x86, ibm-acpi-devel, linux-kernel, linux-hardening On Mon, Sep 7, 2026 at 11:44 AM Thorsten Blum <blum@kernel.org> wrote: > > Add str_supported_unsupported() to return "supported" or "unsupported" > depending on the boolean argument. Also add the inverse > str_unsupported_supported(). Reviewed-by: Andy Shevchenko <andy@kernel.org> -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper 2026-09-07 8:43 ` [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper Thorsten Blum 2026-09-07 10:31 ` Andy Shevchenko @ 2026-09-07 11:12 ` Thorsten Blum 1 sibling, 0 replies; 7+ messages in thread From: Thorsten Blum @ 2026-09-07 11:12 UTC (permalink / raw) To: Mark Pearson, Derek J. Clark, Henrique de Moraes Holschuh, Hans de Goede, Ilpo Järvinen, Kees Cook, Andy Shevchenko Cc: platform-driver-x86, ibm-acpi-devel, linux-kernel, linux-hardening On Mon, Sep 07, 2026 at 10:43:20AM +0200, Thorsten Blum wrote: > Add str_supported_unsupported() to return "supported" or "unsupported" > depending on the boolean argument. Also add the inverse > str_unsupported_supported(). > > Signed-off-by: Thorsten Blum <blum@kernel.org> > --- > include/linux/string_choices.h | 6 ++++++ > 1 file changed, 6 insertions(+) Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] platform/x86: thinkpad_acpi: Use str_supported_unsupported() helper 2026-09-07 8:43 [PATCH v2 0/2] Add and use supported/unsupported string helper Thorsten Blum 2026-09-07 8:43 ` [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper Thorsten Blum @ 2026-09-07 8:43 ` Thorsten Blum 2026-09-07 10:33 ` Andy Shevchenko 2026-09-07 10:31 ` [PATCH v2 0/2] Add and use supported/unsupported string helper Andy Shevchenko 2 siblings, 1 reply; 7+ messages in thread From: Thorsten Blum @ 2026-09-07 8:43 UTC (permalink / raw) To: Mark Pearson, Derek J. Clark, Henrique de Moraes Holschuh, Hans de Goede, Ilpo Järvinen, Kees Cook, Andy Shevchenko Cc: platform-driver-x86, ibm-acpi-devel, linux-kernel, linux-hardening, Thorsten Blum Remove the local str_supported() function and use the common str_supported_unsupported() helper. Debug messages now use "unsupported" instead of "not supported". Signed-off-by: Thorsten Blum <blum@kernel.org> --- drivers/platform/x86/lenovo/thinkpad_acpi.c | 42 ++++++++------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/drivers/platform/x86/lenovo/thinkpad_acpi.c b/drivers/platform/x86/lenovo/thinkpad_acpi.c index 1082c36ae723..bda192d9261d 100644 --- a/drivers/platform/x86/lenovo/thinkpad_acpi.c +++ b/drivers/platform/x86/lenovo/thinkpad_acpi.c @@ -456,9 +456,7 @@ do { \ #ifdef CONFIG_THINKPAD_ACPI_DEBUG #define vdbg_printk dbg_printk -static const char *str_supported(int is_supported); #else -static inline const char *str_supported(int is_supported) { return ""; } #define vdbg_printk(a_dbg_level, format, arg...) \ do { if (0) no_printk(format, ##arg); } while (0) #endif @@ -3338,7 +3336,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, "hotkeys are %s\n", - str_supported(tp_features.hotkey)); + str_supported_unsupported(tp_features.hotkey)); if (!tp_features.hotkey) return -ENODEV; @@ -3415,7 +3413,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, "hotkey masks are %s\n", - str_supported(tp_features.hotkey_mask)); + str_supported_unsupported(tp_features.hotkey_mask)); /* Init hotkey_all_mask if not initialized yet */ if (!tp_features.hotkey_mask && !hotkey_all_mask && @@ -4327,7 +4325,7 @@ static int __init bluetooth_init(struct ibm_init_struct *iibm) vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL, "bluetooth is %s, status 0x%02x\n", - str_supported(tp_features.bluetooth), + str_supported_unsupported(tp_features.bluetooth), status); #ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES @@ -4506,7 +4504,7 @@ static int __init wan_init(struct ibm_init_struct *iibm) vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL, "wan is %s, status 0x%02x\n", - str_supported(tp_features.wan), + str_supported_unsupported(tp_features.wan), status); #ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES @@ -4634,7 +4632,7 @@ static int __init uwb_init(struct ibm_init_struct *iibm) vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_RFKILL, "uwb is %s, status 0x%02x\n", - str_supported(tp_features.uwb), + str_supported_unsupported(tp_features.uwb), status); #ifdef CONFIG_THINKPAD_ACPI_DEBUGFACILITIES @@ -4742,7 +4740,7 @@ static int __init video_init(struct ibm_init_struct *iibm) video_supported = TPACPI_VIDEO_NEW; vdbg_printk(TPACPI_DBG_INIT, "video is %s, mode %d\n", - str_supported(video_supported != TPACPI_VIDEO_NONE), + str_supported_unsupported(video_supported != TPACPI_VIDEO_NONE), video_supported); return (video_supported != TPACPI_VIDEO_NONE) ? 0 : -ENODEV; @@ -5340,8 +5338,8 @@ static int __init light_init(struct ibm_init_struct *iibm) acpi_evalf(ec_handle, NULL, "KBLT", "qv"); vdbg_printk(TPACPI_DBG_INIT, "light is %s, light status is %s\n", - str_supported(tp_features.light), - str_supported(tp_features.light_status)); + str_supported_unsupported(tp_features.light), + str_supported_unsupported(tp_features.light_status)); if (!tp_features.light) return -ENODEV; @@ -5458,7 +5456,7 @@ static int __init cmos_init(struct ibm_init_struct *iibm) TPACPI_ACPIHANDLE_INIT(cmos); vdbg_printk(TPACPI_DBG_INIT, "cmos commands are %s\n", - str_supported(cmos_handle != NULL)); + str_supported_unsupported(cmos_handle)); return cmos_handle ? 0 : -ENODEV; } @@ -5803,7 +5801,8 @@ static int __init led_init(struct ibm_init_struct *iibm) } vdbg_printk(TPACPI_DBG_INIT, "LED commands are %s, mode %d\n", - str_supported(led_supported), led_supported); + str_supported_unsupported(led_supported != TPACPI_LED_NONE), + led_supported); if (led_supported == TPACPI_LED_NONE) return -ENODEV; @@ -5924,7 +5923,7 @@ static int __init beep_init(struct ibm_init_struct *iibm) TPACPI_ACPIHANDLE_INIT(beep); vdbg_printk(TPACPI_DBG_INIT, "beep is %s\n", - str_supported(beep_handle != NULL)); + str_supported_unsupported(beep_handle)); quirks = tpacpi_check_quirks(beep_quirk_table, ARRAY_SIZE(beep_quirk_table)); @@ -6374,7 +6373,7 @@ static int __init thermal_init(struct ibm_init_struct *iibm) thermal_read_mode = thermal_read_mode_check(); vdbg_printk(TPACPI_DBG_INIT, "thermal is %s, mode %d\n", - str_supported(thermal_read_mode != TPACPI_THERMAL_NONE), + str_supported_unsupported(thermal_read_mode != TPACPI_THERMAL_NONE), thermal_read_mode); return thermal_read_mode != TPACPI_THERMAL_NONE ? 0 : -ENODEV; @@ -7596,7 +7595,7 @@ static int __init volume_init(struct ibm_init_struct *iibm) vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_MIXER, "mute is supported, volume control is %s\n", - str_supported(!tp_features.mixer_no_level_control)); + str_supported_unsupported(!tp_features.mixer_no_level_control)); if (software_mute_requested && volume_set_software_mute(true) == 0) { software_mute_active = true; @@ -8993,8 +8992,8 @@ static int __init fan_init(struct ibm_init_struct *iibm) vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_FAN, "fan is %s, modes %d, %d\n", - str_supported(fan_status_access_mode != TPACPI_FAN_NONE || - fan_control_access_mode != TPACPI_FAN_WR_NONE), + str_supported_unsupported(fan_status_access_mode != TPACPI_FAN_NONE || + fan_control_access_mode != TPACPI_FAN_WR_NONE), fan_status_access_mode, fan_control_access_mode); /* fan control master switch */ @@ -11632,15 +11631,6 @@ static struct proc_dir_entry *proc_dir; static bool force_load; -#ifdef CONFIG_THINKPAD_ACPI_DEBUG -static const char * __init str_supported(int is_supported) -{ - static char text_unsupported[] __initdata = "not supported"; - - return (is_supported) ? &text_unsupported[4] : &text_unsupported[0]; -} -#endif /* CONFIG_THINKPAD_ACPI_DEBUG */ - static struct dentry *tpacpi_dbg; static void tpacpi_debugfs_init(void) { ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] platform/x86: thinkpad_acpi: Use str_supported_unsupported() helper 2026-09-07 8:43 ` [PATCH v2 2/2] platform/x86: thinkpad_acpi: Use " Thorsten Blum @ 2026-09-07 10:33 ` Andy Shevchenko 0 siblings, 0 replies; 7+ messages in thread From: Andy Shevchenko @ 2026-09-07 10:33 UTC (permalink / raw) To: Thorsten Blum Cc: Mark Pearson, Derek J. Clark, Henrique de Moraes Holschuh, Hans de Goede, Ilpo Järvinen, Kees Cook, Andy Shevchenko, platform-driver-x86, ibm-acpi-devel, linux-kernel, linux-hardening On Mon, Sep 7, 2026 at 11:44 AM Thorsten Blum <blum@kernel.org> wrote: > > Remove the local str_supported() function and use the common > str_supported_unsupported() helper. > > Debug messages now use "unsupported" instead of "not supported". Reviewed-by: Andy Shevchenko <andy@kernel.org> -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 0/2] Add and use supported/unsupported string helper 2026-09-07 8:43 [PATCH v2 0/2] Add and use supported/unsupported string helper Thorsten Blum 2026-09-07 8:43 ` [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper Thorsten Blum 2026-09-07 8:43 ` [PATCH v2 2/2] platform/x86: thinkpad_acpi: Use " Thorsten Blum @ 2026-09-07 10:31 ` Andy Shevchenko 2 siblings, 0 replies; 7+ messages in thread From: Andy Shevchenko @ 2026-09-07 10:31 UTC (permalink / raw) To: Thorsten Blum Cc: Mark Pearson, Derek J. Clark, Henrique de Moraes Holschuh, Hans de Goede, Ilpo Järvinen, Kees Cook, Andy Shevchenko, platform-driver-x86, ibm-acpi-devel, linux-kernel, linux-hardening On Mon, Sep 7, 2026 at 11:44 AM Thorsten Blum <blum@kernel.org> wrote: > > Add a shared str_supported_unsupported() helper and use it to replace > thinkpad_acpi's custom implementation. > > Changes in v2: > - Add and use str_supported_unsupported() as suggested by Ilpo Suggested-by? -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-09-07 11:12 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-09-07 8:43 [PATCH v2 0/2] Add and use supported/unsupported string helper Thorsten Blum 2026-09-07 8:43 ` [PATCH v2 1/2] lib/string_choices: Add str_supported_unsupported() helper Thorsten Blum 2026-09-07 10:31 ` Andy Shevchenko 2026-09-07 11:12 ` Thorsten Blum 2026-09-07 8:43 ` [PATCH v2 2/2] platform/x86: thinkpad_acpi: Use " Thorsten Blum 2026-09-07 10:33 ` Andy Shevchenko 2026-09-07 10:31 ` [PATCH v2 0/2] Add and use supported/unsupported string helper Andy Shevchenko
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®