Enforce int type on SNDRV_CTL_ELEM_IFACE_MIXER to fix sparse warning:
> warning: restricted snd_ctl_elem_iface_t degrades to integer
The iface field in the gb_audio_control struct is of type __u8, but the
values stored in it are of type int. So on conversion they are degraded.
Adding (__force int) will enforce them not to be degraded.
Signed-off-by: Rajat Asthana <thisisrast7(a)gmail.com>
---
drivers/staging/greybus/audio_topology.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/greybus/audio_topology.c b/drivers/staging/greybus/audio_topology.c
index 1fc7727ab7be..1e613d42d823 100644
--- a/drivers/staging/greybus/audio_topology.c
+++ b/drivers/staging/greybus/audio_topology.c
@@ -676,7 +676,7 @@ static int gbaudio_tplg_create_kcontrol(struct gbaudio_module_info *gb,
struct gbaudio_ctl_pvt *ctldata;
switch (ctl->iface) {
- case SNDRV_CTL_ELEM_IFACE_MIXER:
+ case (__force int)SNDRV_CTL_ELEM_IFACE_MIXER:
switch (ctl->info.type) {
case GB_AUDIO_CTL_ELEM_TYPE_ENUMERATED:
ret = gbaudio_tplg_create_enum_kctl(gb, kctl, ctl);
@@ -903,7 +903,7 @@ static int gbaudio_tplg_create_wcontrol(struct gbaudio_module_info *gb,
int ret;
switch (ctl->iface) {
- case SNDRV_CTL_ELEM_IFACE_MIXER:
+ case (__force int)SNDRV_CTL_ELEM_IFACE_MIXER:
switch (ctl->info.type) {
case GB_AUDIO_CTL_ELEM_TYPE_ENUMERATED:
ret = gbaudio_tplg_create_enum_ctl(gb, kctl, ctl);
--
2.31.1
This patch changes the typo "Atleast" -> "At least" as checkpatch.pl warned
Signed-off-by: Yusup Badiev <ybadiev(a)gmail.com>
---
drivers/staging/greybus/arche-apb-ctrl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/greybus/arche-apb-ctrl.c b/drivers/staging/greybus/arche-apb-ctrl.c
index bbf3ba744fc4..45afa208d004 100644
--- a/drivers/staging/greybus/arche-apb-ctrl.c
+++ b/drivers/staging/greybus/arche-apb-ctrl.c
@@ -445,7 +445,7 @@ static int __maybe_unused arche_apb_ctrl_suspend(struct device *dev)
static int __maybe_unused arche_apb_ctrl_resume(struct device *dev)
{
/*
- * Atleast for ES2 we have to meet the delay requirement between
+ * At least for ES2 we have to meet the delay requirement between
* unipro switch and AP bridge init, depending on whether bridge is in
* OFF state or standby state.
*
--
2.25.1
On Fri, May 14, 2021 at 08:42:16PM +0530, Shreyansh Chouhan wrote:
> On Fri, May 14, 2021 at 04:30:23PM +0200, Greg KH wrote:
> > On Fri, May 14, 2021 at 07:53:57PM +0530, Shreyansh Chouhan wrote:
> > > On Fri, May 14, 2021 at 04:05:32PM +0200, Greg KH wrote:
> > > > On Fri, May 14, 2021 at 07:18:38PM +0530, Shreyansh Chouhan wrote:
> > > > > On Fri, May 14, 2021 at 03:36:25PM +0200, Greg KH wrote:
> > > > > > On Fri, May 14, 2021 at 07:00:39PM +0530, Shreyansh Chouhan wrote:
> > > > > > > The gb_loopback_stats_attrs macro, (defined in loopback.c,) is a
> > > > > > > multiline macro whose statements were not enclosed in a do while
> > > > > > > loop.
> > > > > > >
> > > > > > > This patch adds a do while loop around the statements of the said
> > > > > > > macro.
> > > > > > >
> > > > > > > Signed-off-by: Shreyansh Chouhan <chouhan.shreyansh630(a)gmail.com>
> > > > > > > ---
> > > > > > > drivers/staging/greybus/loopback.c | 10 ++++++----
> > > > > > > 1 file changed, 6 insertions(+), 4 deletions(-)
> > > > > > >
> > > > > > > diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c
> > > > > > > index 2471448ba42a..c88ef3e894fa 100644
> > > > > > > --- a/drivers/staging/greybus/loopback.c
> > > > > > > +++ b/drivers/staging/greybus/loopback.c
> > > > > > > @@ -162,10 +162,12 @@ static ssize_t name##_avg_show(struct device *dev, \
> > > > > > > } \
> > > > > > > static DEVICE_ATTR_RO(name##_avg)
> > > > > > >
> > > > > > > -#define gb_loopback_stats_attrs(field) \
> > > > > > > - gb_loopback_ro_stats_attr(field, min, u); \
> > > > > > > - gb_loopback_ro_stats_attr(field, max, u); \
> > > > > > > - gb_loopback_ro_avg_attr(field)
> > > > > > > +#define gb_loopback_stats_attrs(field) \
> > > > > > > + do { \
> > > > > > > + gb_loopback_ro_stats_attr(field, min, u); \
> > > > > > > + gb_loopback_ro_stats_attr(field, max, u); \
> > > > > > > + gb_loopback_ro_avg_attr(field); \
> > > > > > > + } while (0)
> > > > > > >
> > > > > > > #define gb_loopback_attr(field, type) \
> > > > > > > static ssize_t field##_show(struct device *dev, \
> > > > > > > --
> > > > > > > 2.31.1
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > Did you test build this change?
> > > > >
> > > > > I built the module using make -C . M=drivers/staging/greybus to test
> > > > > build it. I didn't get any errors.
> > > >
> > > > Really? Can you provide the full build output for this file with your
> > > > change? I don't think you really built this file for the obvious
> > > > reasons...
> > >
> > > I ran make -C . M=drivers/staging/greybus
> > >
> > > I got a three line output saying:
> > > make: Entering directory '/work/linux'
> > > MODPOST drivers/staging/greybus//Module.symvers
> > > make: Leaving directory '/work/linux'
> > >
> > > I just tried rebuilding the kernel with CONFIG_GREYBUS=m, and now I can
> > > see what you are talking about. Why weren't these errors reported when I
> > > ran the previous make command? Does that too check for the config
> > > variables even when I specifically asked it to build a module?
> >
> > You were just asking it to build a subdirectory, not a specific
> > individual file, and when you do that it looks at the configuration
> > settings.
> >
>
> I see.
>
> > It's always good to ensure that you actually build the files you modify
> > before sending patches out.
>
> Sorry, I googled about building a single module, and thought running
> that command would have built it. Moreover, since the change was so
> simple I didn't suspect anything when it got built correctly the first
> time around.
>
> I didn't look at how/where was the macro called and missed a very
> obvious error. Now that I have looked at it, the only way I can think of
> fixing this is changing the macro to a (inline?) function. Will
> that be a desirable change?
No, it can't be a function, the code is fine as-is, checkpatch is just a
perl script and does not always know what needs to be done.
thanks,
greg k-h
On Fri, May 14, 2021 at 07:53:57PM +0530, Shreyansh Chouhan wrote:
> On Fri, May 14, 2021 at 04:05:32PM +0200, Greg KH wrote:
> > On Fri, May 14, 2021 at 07:18:38PM +0530, Shreyansh Chouhan wrote:
> > > On Fri, May 14, 2021 at 03:36:25PM +0200, Greg KH wrote:
> > > > On Fri, May 14, 2021 at 07:00:39PM +0530, Shreyansh Chouhan wrote:
> > > > > The gb_loopback_stats_attrs macro, (defined in loopback.c,) is a
> > > > > multiline macro whose statements were not enclosed in a do while
> > > > > loop.
> > > > >
> > > > > This patch adds a do while loop around the statements of the said
> > > > > macro.
> > > > >
> > > > > Signed-off-by: Shreyansh Chouhan <chouhan.shreyansh630(a)gmail.com>
> > > > > ---
> > > > > drivers/staging/greybus/loopback.c | 10 ++++++----
> > > > > 1 file changed, 6 insertions(+), 4 deletions(-)
> > > > >
> > > > > diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c
> > > > > index 2471448ba42a..c88ef3e894fa 100644
> > > > > --- a/drivers/staging/greybus/loopback.c
> > > > > +++ b/drivers/staging/greybus/loopback.c
> > > > > @@ -162,10 +162,12 @@ static ssize_t name##_avg_show(struct device *dev, \
> > > > > } \
> > > > > static DEVICE_ATTR_RO(name##_avg)
> > > > >
> > > > > -#define gb_loopback_stats_attrs(field) \
> > > > > - gb_loopback_ro_stats_attr(field, min, u); \
> > > > > - gb_loopback_ro_stats_attr(field, max, u); \
> > > > > - gb_loopback_ro_avg_attr(field)
> > > > > +#define gb_loopback_stats_attrs(field) \
> > > > > + do { \
> > > > > + gb_loopback_ro_stats_attr(field, min, u); \
> > > > > + gb_loopback_ro_stats_attr(field, max, u); \
> > > > > + gb_loopback_ro_avg_attr(field); \
> > > > > + } while (0)
> > > > >
> > > > > #define gb_loopback_attr(field, type) \
> > > > > static ssize_t field##_show(struct device *dev, \
> > > > > --
> > > > > 2.31.1
> > > > >
> > > > >
> > > >
> > > > Did you test build this change?
> > >
> > > I built the module using make -C . M=drivers/staging/greybus to test
> > > build it. I didn't get any errors.
> >
> > Really? Can you provide the full build output for this file with your
> > change? I don't think you really built this file for the obvious
> > reasons...
>
> I ran make -C . M=drivers/staging/greybus
>
> I got a three line output saying:
> make: Entering directory '/work/linux'
> MODPOST drivers/staging/greybus//Module.symvers
> make: Leaving directory '/work/linux'
>
> I just tried rebuilding the kernel with CONFIG_GREYBUS=m, and now I can
> see what you are talking about. Why weren't these errors reported when I
> ran the previous make command? Does that too check for the config
> variables even when I specifically asked it to build a module?
You were just asking it to build a subdirectory, not a specific
individual file, and when you do that it looks at the configuration
settings.
It's always good to ensure that you actually build the files you modify
before sending patches out.
thanks,
greg k-h