At Wed, 05 Sep 2007 16:36:10 +0100, James Pearson wrote:
Takashi Iwai wrote:
At Wed, 05 Sep 2007 15:38:33 +0100, James Pearson wrote:
Takashi Iwai wrote:
So, what is the danger of using these 'disabled' ioctls?
I can't find any reference to 'TCOC* definitions' - what are these ???
A typo of TIOC* or TC*. They are defined in asm-*/ioctls.h.
These are used for syscalls like fcntl(). Thus, it's indeed dangerous to define these.
Can't you build the new alsa-driver with old kernel? Then, together with the new alsa-lib, the problem should go away.
I can't build either alsa-driver 1.0.14 or 1.0.15rc1 - they bomb out with:
CC [M] /tmp/alsa-driver-1.0.15rc1/misc/ac97_bus.o In file included from /tmp/alsa-driver-1.0.15rc1/misc/ac97_bus.c:1: /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:30: error: syntax error before "pm_message_t" /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:31: warning: function declaration isn't a prototype /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c: In function `ac97_bus_suspend': /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:34: error: `dev' undeclared (first use in this function) /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:34: error: (Each undeclared identifier is reported only once /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:34: error: for each function it appears in.) /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:35: error: `state' undeclared (first use in this function) /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c: In function `ac97_bus_resume': /tmp/alsa-driver-1.0.15rc1/misc/../alsa-kernel/ac97_bus.c:45: error: too few arguments to function make[4]: *** [/tmp/alsa-driver-1.0.15rc1/misc/ac97_bus.o] Error 1
However, even if I could build 1.0.14/15rc1, I'm not sure if they would help - as I think the important output from the configure script (alsa-driver 1.0.13 and above) is:
checking for new unlocked/compat_ioctl... no
and in include/config.h:
/* #undef CONFIG_SND_HAVE_NEW_IOCTL */
So, as far as I can tell, means that I have to use the snd-ioctl32 module, which has the problems I originally described.
Is this correct?
No, this is perfectly OK. The problem isn't that you use snd-ioctl32 module but that the driver is still old and it doesn't accept the new defined ioctls. The later version of alsa-driver uses the newer ioctls so that they don't conflict even on snd-ioctl32 module.
The right solution is to get the latest alsa-driver working on your system. I guess the build problem above is very specific to RedHat. Unfortunately, I can't help much because I have little clue about funny RedHat modifications. The error implies, however, some configure mismatch. Maybe showing the configure output would help a little bit to know what's happening there...
OK, I'll do a bit more poking about to see if I can get 1.0.15rc1 to build ...
Thanks
James Pearson
Configure output:
# ./configure --with-redhat=yes
The output looks OK to me. Does the patch (to alsa-driver tree) fix the problem?
Takashi
diff -r adfe4179d670 misc/ac97_bus.c --- a/misc/ac97_bus.c Fri Aug 31 12:22:35 2007 +0200 +++ b/misc/ac97_bus.c Wed Sep 05 18:09:42 2007 +0200 @@ -1,1 +1,3 @@ +#include <sound/driver.h> +#include <sound/core.h> #include "../alsa-kernel/ac97_bus.c"