linux-mips
[Top] [All Lists]

Re: SB16 build error.

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: SB16 build error.
From: Takashi Iwai <tiwai@suse.de>
Date: Thu, 30 Jun 2011 12:15:56 +0200
Cc: Jaroslav Kysela <perex@perex.cz>, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, linux-mips@linux-mips.org, florian@linux-mips.org, Florian Fainelli <florian@openwrt.org>, linux-arch@vger.kernel.org, Richard Henderson <rth@twiddle.net>, Ivan Kokshaysky <ink@jurassic.park.msu.ru>, Matt Turner <mattst88@gmail.com>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, "David S. Miller" <davem@davemloft.net>, sparclinux@vger.kernel.org
In-reply-to: <20110630091754.GA12119@linux-mips.org>
References: <20110630091754.GA12119@linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?iso-2022-jp-2?b?R29qGyQoRCtXGyhC?=) APEL/10.7 Emacs/23.2 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO)
At Thu, 30 Jun 2011 10:17:54 +0100,
Ralf Baechle wrote:
> 
> Found on a MIPS build but certain other architectures will have the same
> issue:
> 
>   CC      sound/isa/sb/sb16_csp.o
> sound/isa/sb/sb16_csp.c: In function ‘snd_sb_csp_ioctl’:
> sound/isa/sb/sb16_csp.c:228: error: case label does not reduce to an integer 
> constant
> make[1]: *** [sound/isa/sb/sb16_csp.o] Error 1
> make: *** [sound/isa/sb/sb16_csp.o] Error 2
> 
> This error message is caused by the _IOC_TYPECHECK() error check triggering
> due to excessive ioctl size on Alpha, PowerPC, MIPS and SPARC which define
> _IOC_SIZEBITS as 13.  On all other architectures define it as 14 so struct
> snd_sb_csp_microcode with it's little over 12kB will just about fit into
> the 16kB limit.

What about the patch below?
This is an old ISA driver, so the impact must be very low.


thanks,

Takashi

---
diff --git a/include/sound/sb16_csp.h b/include/sound/sb16_csp.h
index 736eac7..2806586 100644
--- a/include/sound/sb16_csp.h
+++ b/include/sound/sb16_csp.h
@@ -60,7 +60,12 @@
 #define SNDRV_SB_CSP_QSOUND_MAX_RIGHT  0x20
 
 /* maximum microcode RIFF file size */
+#if _IOC_SIZEBITS < 14
+/* reduced the size to fit with ioctl size limit */
+#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE   0x1f00
+#else
 #define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE   0x3000
+#endif
 
 /* microcode header */
 struct snd_sb_csp_mc_header {

<Prev in Thread] Current Thread [Next in Thread>