On Wed, 20 Apr 2022 22:33:20 +0200, Mark Brown wrote: > > +bool strend(const char *haystack, const char *needle) Missing static? > +{ > + size_t haystack_len = strlen(haystack); > + size_t needle_len = strlen(needle); > + > + if (needle_len > haystack_len) > + return false; > + return strcmp(haystack + haystack_len - needle_len, needle) == 0; > +} > + > +static void test_ctl_name(struct ctl_data *ctl) > +{ > + bool name_ok = true; > + bool check; > + > + /* Only boolean controls should end in Switch */ > + if (strend(ctl->name, "Switch")) { This should be with " Switch" so that it won't check a concatenated word. > + if (snd_ctl_elem_info_get_type(ctl->info) != SND_CTL_ELEM_TYPE_BOOLEAN) { > + ksft_print_msg("%d.%d %s ends in Switch but is not boolean\n", > + ctl->card->card, ctl->elem, ctl->name); > + name_ok = false; > + } > + } > + > + /* Writeable boolean controls should end in Switch */ > + if (snd_ctl_elem_info_get_type(ctl->info) == SND_CTL_ELEM_TYPE_BOOLEAN && > + snd_ctl_elem_info_is_writable(ctl->info)) { > + if (!strend(ctl->name, "Switch")) { > + ksft_print_msg("%d.%d %s is a writeable boolean but not a Switch\n", > + ctl->card->card, ctl->elem, ctl->name); > + name_ok = false; I'm afraid that this would hit too many when applying to the existing code; although the control name should be indeed with Switch suffix, we tend to allow without suffix for casual non-standard elements. But having the check would help for avoiding such a mistake for the future code, so it's fine to add this strict check, IMO. thanks, Takashi