| From ee03c0f200eb0d9f22dd8732d9fb7956d91019c2 Mon Sep 17 00:00:00 2001 |
| From: "Jason A. Donenfeld" <Jason@zx2c4.com> |
| Date: Mon, 24 Oct 2022 18:29:29 +0200 |
| Subject: ALSA: au88x0: use explicitly signed char |
| |
| From: Jason A. Donenfeld <Jason@zx2c4.com> |
| |
| commit ee03c0f200eb0d9f22dd8732d9fb7956d91019c2 upstream. |
| |
| With char becoming unsigned by default, and with `char` alone being |
| ambiguous and based on architecture, signed chars need to be marked |
| explicitly as such. This fixes warnings like: |
| |
| sound/pci/au88x0/au88x0_core.c:2029 vortex_adb_checkinout() warn: signedness bug returning '(-22)' |
| sound/pci/au88x0/au88x0_core.c:2046 vortex_adb_checkinout() warn: signedness bug returning '(-12)' |
| sound/pci/au88x0/au88x0_core.c:2125 vortex_adb_allocroute() warn: 'vortex_adb_checkinout(vortex, (0), en, 0)' is unsigned |
| sound/pci/au88x0/au88x0_core.c:2170 vortex_adb_allocroute() warn: 'vortex_adb_checkinout(vortex, stream->resources, en, 4)' is unsigned |
| |
| As well, since one function returns errnos, return an `int` rather than |
| a `signed char`. |
| |
| Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> |
| Cc: <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20221024162929.536004-1-Jason@zx2c4.com |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/pci/au88x0/au88x0.h | 6 +++--- |
| sound/pci/au88x0/au88x0_core.c | 2 +- |
| 2 files changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/sound/pci/au88x0/au88x0.h |
| +++ b/sound/pci/au88x0/au88x0.h |
| @@ -153,7 +153,7 @@ struct snd_vortex { |
| #ifndef CHIP_AU8810 |
| stream_t dma_wt[NR_WT]; |
| wt_voice_t wt_voice[NR_WT]; /* WT register cache. */ |
| - char mixwt[(NR_WT / NR_WTPB) * 6]; /* WT mixin objects */ |
| + s8 mixwt[(NR_WT / NR_WTPB) * 6]; /* WT mixin objects */ |
| #endif |
| |
| /* Global resources */ |
| @@ -247,8 +247,8 @@ static int vortex_alsafmt_aspfmt(snd_pcm |
| static void vortex_connect_default(vortex_t * vortex, int en); |
| static int vortex_adb_allocroute(vortex_t * vortex, int dma, int nr_ch, |
| int dir, int type, int subdev); |
| -static char vortex_adb_checkinout(vortex_t * vortex, int resmap[], int out, |
| - int restype); |
| +static int vortex_adb_checkinout(vortex_t * vortex, int resmap[], int out, |
| + int restype); |
| #ifndef CHIP_AU8810 |
| static int vortex_wt_allocroute(vortex_t * vortex, int dma, int nr_ch); |
| static void vortex_wt_connect(vortex_t * vortex, int en); |
| --- a/sound/pci/au88x0/au88x0_core.c |
| +++ b/sound/pci/au88x0/au88x0_core.c |
| @@ -2004,7 +2004,7 @@ static int resnum[VORTEX_RESOURCE_LAST] |
| out: Mean checkout if != 0. Else mean Checkin resource. |
| restype: Indicates type of resource to be checked in or out. |
| */ |
| -static char |
| +static int |
| vortex_adb_checkinout(vortex_t * vortex, int resmap[], int out, int restype) |
| { |
| int i, qty = resnum[restype], resinuse = 0; |