From 2563020e294a64b266286f2863d28a279ca4f816 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 26 Apr 2020 23:27:54 +0100 Subject: [PATCH 1/4] suppress "this statement may fall through" warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The semi-colon is needed, to prevent the comment being parsed as part of the "if {...}" statement. The warning looks like this: seeed-voicecard/wm8960.c: In function ‘wm8960_hw_params’: seeed-voicecard/wm8960.c:752:6: warning: this statement may fall through [-Wimplicit-fallthrough=] 752 | if ((iface & 0x3) != 0) { | ^ seeed-voicecard/wm8960.c:757:2: note: here 757 | default: | ^~~~~~~ --- wm8960.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wm8960.c b/wm8960.c index f26f59b..c2975e1 100644 --- a/wm8960.c +++ b/wm8960.c @@ -752,7 +752,8 @@ static int wm8960_hw_params(struct snd_pcm_substream *substream, if ((iface & 0x3) != 0) { iface |= 0x000c; break; - } + }; + /* fall through */ default: dev_err(codec->dev, "unsupported width %d\n", params_width(params)); From deed034f31ca007261768ee50ac8d7769222bcc2 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Sun, 26 Apr 2020 23:39:25 +0100 Subject: [PATCH 2/4] suppress another "this statement may fall through" warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The whole warning is quite long but looks like this: CC [M] seeed-voicecard/ac108.o In file included from ./include/linux/printk.h:331, from ./include/linux/kernel.h:15, from ./include/linux/list.h:9, from ./include/linux/module.h:12, from seeed-voicecard/ac108.c:15: seeed-voicecard/ac108.c: In function ‘ac108_set_fmt’: ./include/linux/dynamic_debug.h:122:52: warning: this statement may fall through [-Wimplicit-fallthrough=] 122 | #define __dynamic_func_call(id, fmt, func, ...) do { \ | ^ ./include/linux/dynamic_debug.h:143:2: note: in expansion of macro ‘__dynamic_func_call’ 143 | __dynamic_func_call(__UNIQUE_ID(ddebug), fmt, func, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ ./include/linux/dynamic_debug.h:157:2: note: in expansion of macro ‘_dynamic_func_call’ 157 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \ | ^~~~~~~~~~~~~~~~~~ ./include/linux/device.h:1795:2: note: in expansion of macro ‘dynamic_dev_dbg’ 1795 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~~~~~~~~ seeed-voicecard/ac108.c:866:4: note: in expansion of macro ‘dev_dbg’ 866 | dev_dbg(dai->dev, "used as slave when AC101 is master\n"); | ^~~~~~~ seeed-voicecard/ac108.c:868:2: note: here 868 | case SND_SOC_DAIFMT_CBS_CFS: /*AC108 Slave*/ | ^~~~ --- ac108.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ac108.c b/ac108.c index cd20547..d202dc3 100644 --- a/ac108.c +++ b/ac108.c @@ -865,6 +865,7 @@ static int ac108_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) { /* TODO: Both cpu_dai and codec_dai(AC108) be set as slave in DTS */ dev_dbg(dai->dev, "used as slave when AC101 is master\n"); } + /* fall through */ case SND_SOC_DAIFMT_CBS_CFS: /*AC108 Slave*/ dev_dbg(dai->dev, "AC108 set to work as Slave\n"); /** From add12477e9a20a36e91622f01bdc72dbd3e73245 Mon Sep 17 00:00:00 2001 From: Hin-Tak Leung Date: Mon, 27 Apr 2020 01:04:16 +0100 Subject: [PATCH 3/4] use the kernel's way of suppressing fallthrough See include/linux/compiler_attributes.h: /* * Add the pseudo keyword 'fallthrough' so case statement blocks * must end with any of these keywords: * break; * fallthrough; * goto