Message ID | 20221021180007.55535-1-pobrn@protonmail.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | [v1] platform/x86: thinkpad_acpi: use strstarts() | expand |
Hi, On 10/21/22 20:17, Barnabás Pőcze wrote: > There is a function, `strstarts()`, in linux/string.h > to check if a string is prefix of another. So remove > the custom version from the driver. > > Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > drivers/platform/x86/thinkpad_acpi.c | 58 +++++++++++++--------------- > 1 file changed, 27 insertions(+), 31 deletions(-) > > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c > index 6a823b850a77..7a1d5402697e 100644 > --- a/drivers/platform/x86/thinkpad_acpi.c > +++ b/drivers/platform/x86/thinkpad_acpi.c > @@ -263,9 +263,6 @@ enum tpacpi_hkey_event_t { > #define TPACPI_DBG_BRGHT 0x0020 > #define TPACPI_DBG_MIXER 0x0040 > > -#define strlencmp(a, b) (strncmp((a), (b), strlen(b))) > - > - > /**************************************************************************** > * Driver-wide structs and misc. variables > */ > @@ -1333,9 +1330,9 @@ static int tpacpi_rfk_procfs_write(const enum tpacpi_rfk_id id, char *buf) > return -ENODEV; > > while ((cmd = strsep(&buf, ","))) { > - if (strlencmp(cmd, "enable") == 0) > + if (strstarts(cmd, "enable")) > status = TPACPI_RFK_RADIO_ON; > - else if (strlencmp(cmd, "disable") == 0) > + else if (strstarts(cmd, "disable")) > status = TPACPI_RFK_RADIO_OFF; > else > return -EINVAL; > @@ -4196,12 +4193,12 @@ static int hotkey_write(char *buf) > > res = 0; > while ((cmd = strsep(&buf, ","))) { > - if (strlencmp(cmd, "enable") == 0) { > + if (strstarts(cmd, "enable")) { > hotkey_enabledisable_warn(1); > - } else if (strlencmp(cmd, "disable") == 0) { > + } else if (strstarts(cmd, "disable")) { > hotkey_enabledisable_warn(0); > res = -EPERM; > - } else if (strlencmp(cmd, "reset") == 0) { > + } else if (strstarts(cmd, "reset")) { > mask = (hotkey_all_mask | hotkey_source_mask) > & ~hotkey_reserved_mask; > } else if (sscanf(cmd, "0x%x", &mask) == 1) { > @@ -5223,33 +5220,33 @@ static int video_write(char *buf) > disable = 0; > > while ((cmd = strsep(&buf, ","))) { > - if (strlencmp(cmd, "lcd_enable") == 0) { > + if (strstarts(cmd, "lcd_enable")) { > enable |= TP_ACPI_VIDEO_S_LCD; > - } else if (strlencmp(cmd, "lcd_disable") == 0) { > + } else if (strstarts(cmd, "lcd_disable")) { > disable |= TP_ACPI_VIDEO_S_LCD; > - } else if (strlencmp(cmd, "crt_enable") == 0) { > + } else if (strstarts(cmd, "crt_enable")) { > enable |= TP_ACPI_VIDEO_S_CRT; > - } else if (strlencmp(cmd, "crt_disable") == 0) { > + } else if (strstarts(cmd, "crt_disable")) { > disable |= TP_ACPI_VIDEO_S_CRT; > } else if (video_supported == TPACPI_VIDEO_NEW && > - strlencmp(cmd, "dvi_enable") == 0) { > + strstarts(cmd, "dvi_enable")) { > enable |= TP_ACPI_VIDEO_S_DVI; > } else if (video_supported == TPACPI_VIDEO_NEW && > - strlencmp(cmd, "dvi_disable") == 0) { > + strstarts(cmd, "dvi_disable")) { > disable |= TP_ACPI_VIDEO_S_DVI; > - } else if (strlencmp(cmd, "auto_enable") == 0) { > + } else if (strstarts(cmd, "auto_enable")) { > res = video_autosw_set(1); > if (res) > return res; > - } else if (strlencmp(cmd, "auto_disable") == 0) { > + } else if (strstarts(cmd, "auto_disable")) { > res = video_autosw_set(0); > if (res) > return res; > - } else if (strlencmp(cmd, "video_switch") == 0) { > + } else if (strstarts(cmd, "video_switch")) { > res = video_outputsw_cycle(); > if (res) > return res; > - } else if (strlencmp(cmd, "expand_toggle") == 0) { > + } else if (strstarts(cmd, "expand_toggle")) { > res = video_expand_toggle(); > if (res) > return res; > @@ -5642,9 +5639,9 @@ static int light_write(char *buf) > return -ENODEV; > > while ((cmd = strsep(&buf, ","))) { > - if (strlencmp(cmd, "on") == 0) { > + if (strstarts(cmd, "on")) { > newstatus = 1; > - } else if (strlencmp(cmd, "off") == 0) { > + } else if (strstarts(cmd, "off")) { > newstatus = 0; > } else > return -EINVAL; > @@ -7115,10 +7112,10 @@ static int brightness_write(char *buf) > return level; > > while ((cmd = strsep(&buf, ","))) { > - if (strlencmp(cmd, "up") == 0) { > + if (strstarts(cmd, "up")) { > if (level < bright_maxlvl) > level++; > - } else if (strlencmp(cmd, "down") == 0) { > + } else if (strstarts(cmd, "down")) { > if (level > 0) > level--; > } else if (sscanf(cmd, "level %d", &level) == 1 && > @@ -7867,13 +7864,13 @@ static int volume_write(char *buf) > > while ((cmd = strsep(&buf, ","))) { > if (!tp_features.mixer_no_level_control) { > - if (strlencmp(cmd, "up") == 0) { > + if (strstarts(cmd, "up")) { > if (new_mute) > new_mute = 0; > else if (new_level < TP_EC_VOLUME_MAX) > new_level++; > continue; > - } else if (strlencmp(cmd, "down") == 0) { > + } else if (strstarts(cmd, "down")) { > if (new_mute) > new_mute = 0; > else if (new_level > 0) > @@ -7885,9 +7882,9 @@ static int volume_write(char *buf) > continue; > } > } > - if (strlencmp(cmd, "mute") == 0) > + if (strstarts(cmd, "mute")) > new_mute = TP_EC_AUDIO_MUTESW_MSK; > - else if (strlencmp(cmd, "unmute") == 0) > + else if (strstarts(cmd, "unmute")) > new_mute = 0; > else > return -EINVAL; > @@ -9110,10 +9107,9 @@ static int fan_write_cmd_level(const char *cmd, int *rc) > { > int level; > > - if (strlencmp(cmd, "level auto") == 0) > + if (strstarts(cmd, "level auto")) > level = TP_EC_FAN_AUTO; > - else if ((strlencmp(cmd, "level disengaged") == 0) || > - (strlencmp(cmd, "level full-speed") == 0)) > + else if (strstarts(cmd, "level disengaged") || strstarts(cmd, "level full-speed")) > level = TP_EC_FAN_FULLSPEED; > else if (sscanf(cmd, "level %d", &level) != 1) > return 0; > @@ -9131,7 +9127,7 @@ static int fan_write_cmd_level(const char *cmd, int *rc) > > static int fan_write_cmd_enable(const char *cmd, int *rc) > { > - if (strlencmp(cmd, "enable") != 0) > + if (!strstarts(cmd, "enable")) > return 0; > > *rc = fan_set_enable(); > @@ -9146,7 +9142,7 @@ static int fan_write_cmd_enable(const char *cmd, int *rc) > > static int fan_write_cmd_disable(const char *cmd, int *rc) > { > - if (strlencmp(cmd, "disable") != 0) > + if (!strstarts(cmd, "disable")) > return 0; > > *rc = fan_set_disable(); > -- > 2.38.1 > >
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index 6a823b850a77..7a1d5402697e 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c @@ -263,9 +263,6 @@ enum tpacpi_hkey_event_t { #define TPACPI_DBG_BRGHT 0x0020 #define TPACPI_DBG_MIXER 0x0040 -#define strlencmp(a, b) (strncmp((a), (b), strlen(b))) - - /**************************************************************************** * Driver-wide structs and misc. variables */ @@ -1333,9 +1330,9 @@ static int tpacpi_rfk_procfs_write(const enum tpacpi_rfk_id id, char *buf) return -ENODEV; while ((cmd = strsep(&buf, ","))) { - if (strlencmp(cmd, "enable") == 0) + if (strstarts(cmd, "enable")) status = TPACPI_RFK_RADIO_ON; - else if (strlencmp(cmd, "disable") == 0) + else if (strstarts(cmd, "disable")) status = TPACPI_RFK_RADIO_OFF; else return -EINVAL; @@ -4196,12 +4193,12 @@ static int hotkey_write(char *buf) res = 0; while ((cmd = strsep(&buf, ","))) { - if (strlencmp(cmd, "enable") == 0) { + if (strstarts(cmd, "enable")) { hotkey_enabledisable_warn(1); - } else if (strlencmp(cmd, "disable") == 0) { + } else if (strstarts(cmd, "disable")) { hotkey_enabledisable_warn(0); res = -EPERM; - } else if (strlencmp(cmd, "reset") == 0) { + } else if (strstarts(cmd, "reset")) { mask = (hotkey_all_mask | hotkey_source_mask) & ~hotkey_reserved_mask; } else if (sscanf(cmd, "0x%x", &mask) == 1) { @@ -5223,33 +5220,33 @@ static int video_write(char *buf) disable = 0; while ((cmd = strsep(&buf, ","))) { - if (strlencmp(cmd, "lcd_enable") == 0) { + if (strstarts(cmd, "lcd_enable")) { enable |= TP_ACPI_VIDEO_S_LCD; - } else if (strlencmp(cmd, "lcd_disable") == 0) { + } else if (strstarts(cmd, "lcd_disable")) { disable |= TP_ACPI_VIDEO_S_LCD; - } else if (strlencmp(cmd, "crt_enable") == 0) { + } else if (strstarts(cmd, "crt_enable")) { enable |= TP_ACPI_VIDEO_S_CRT; - } else if (strlencmp(cmd, "crt_disable") == 0) { + } else if (strstarts(cmd, "crt_disable")) { disable |= TP_ACPI_VIDEO_S_CRT; } else if (video_supported == TPACPI_VIDEO_NEW && - strlencmp(cmd, "dvi_enable") == 0) { + strstarts(cmd, "dvi_enable")) { enable |= TP_ACPI_VIDEO_S_DVI; } else if (video_supported == TPACPI_VIDEO_NEW && - strlencmp(cmd, "dvi_disable") == 0) { + strstarts(cmd, "dvi_disable")) { disable |= TP_ACPI_VIDEO_S_DVI; - } else if (strlencmp(cmd, "auto_enable") == 0) { + } else if (strstarts(cmd, "auto_enable")) { res = video_autosw_set(1); if (res) return res; - } else if (strlencmp(cmd, "auto_disable") == 0) { + } else if (strstarts(cmd, "auto_disable")) { res = video_autosw_set(0); if (res) return res; - } else if (strlencmp(cmd, "video_switch") == 0) { + } else if (strstarts(cmd, "video_switch")) { res = video_outputsw_cycle(); if (res) return res; - } else if (strlencmp(cmd, "expand_toggle") == 0) { + } else if (strstarts(cmd, "expand_toggle")) { res = video_expand_toggle(); if (res) return res; @@ -5642,9 +5639,9 @@ static int light_write(char *buf) return -ENODEV; while ((cmd = strsep(&buf, ","))) { - if (strlencmp(cmd, "on") == 0) { + if (strstarts(cmd, "on")) { newstatus = 1; - } else if (strlencmp(cmd, "off") == 0) { + } else if (strstarts(cmd, "off")) { newstatus = 0; } else return -EINVAL; @@ -7115,10 +7112,10 @@ static int brightness_write(char *buf) return level; while ((cmd = strsep(&buf, ","))) { - if (strlencmp(cmd, "up") == 0) { + if (strstarts(cmd, "up")) { if (level < bright_maxlvl) level++; - } else if (strlencmp(cmd, "down") == 0) { + } else if (strstarts(cmd, "down")) { if (level > 0) level--; } else if (sscanf(cmd, "level %d", &level) == 1 && @@ -7867,13 +7864,13 @@ static int volume_write(char *buf) while ((cmd = strsep(&buf, ","))) { if (!tp_features.mixer_no_level_control) { - if (strlencmp(cmd, "up") == 0) { + if (strstarts(cmd, "up")) { if (new_mute) new_mute = 0; else if (new_level < TP_EC_VOLUME_MAX) new_level++; continue; - } else if (strlencmp(cmd, "down") == 0) { + } else if (strstarts(cmd, "down")) { if (new_mute) new_mute = 0; else if (new_level > 0) @@ -7885,9 +7882,9 @@ static int volume_write(char *buf) continue; } } - if (strlencmp(cmd, "mute") == 0) + if (strstarts(cmd, "mute")) new_mute = TP_EC_AUDIO_MUTESW_MSK; - else if (strlencmp(cmd, "unmute") == 0) + else if (strstarts(cmd, "unmute")) new_mute = 0; else return -EINVAL; @@ -9110,10 +9107,9 @@ static int fan_write_cmd_level(const char *cmd, int *rc) { int level; - if (strlencmp(cmd, "level auto") == 0) + if (strstarts(cmd, "level auto")) level = TP_EC_FAN_AUTO; - else if ((strlencmp(cmd, "level disengaged") == 0) || - (strlencmp(cmd, "level full-speed") == 0)) + else if (strstarts(cmd, "level disengaged") || strstarts(cmd, "level full-speed")) level = TP_EC_FAN_FULLSPEED; else if (sscanf(cmd, "level %d", &level) != 1) return 0; @@ -9131,7 +9127,7 @@ static int fan_write_cmd_level(const char *cmd, int *rc) static int fan_write_cmd_enable(const char *cmd, int *rc) { - if (strlencmp(cmd, "enable") != 0) + if (!strstarts(cmd, "enable")) return 0; *rc = fan_set_enable(); @@ -9146,7 +9142,7 @@ static int fan_write_cmd_enable(const char *cmd, int *rc) static int fan_write_cmd_disable(const char *cmd, int *rc) { - if (strlencmp(cmd, "disable") != 0) + if (!strstarts(cmd, "disable")) return 0; *rc = fan_set_disable();
There is a function, `strstarts()`, in linux/string.h to check if a string is prefix of another. So remove the custom version from the driver. Signed-off-by: Barnabás Pőcze <pobrn@protonmail.com> --- drivers/platform/x86/thinkpad_acpi.c | 58 +++++++++++++--------------- 1 file changed, 27 insertions(+), 31 deletions(-) -- 2.38.1