emu10k1_audio_open?? 2.5.2 problem
gcc -D__KERNEL__ -I/usr/src/linux-2.5.2/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.5.2/include/linux/modversions.h -c -o audio.o audio.caudio.c: In function `emu10k1_audio_open':
audio.c:1101: invalid operands to binary &
make[3]: *** [audio.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.5.2/drivers/sound/emu10k1' make[2]: *** [_modsubdir_emu10k1] Error 2
make[2]: Leaving directory `/usr/src/linux-2.5.2/drivers/sound' make[1]: *** [_modsubdir_sound] Error 2
make[1]: Leaving directory `/usr/src/linux-2.5.2/drivers'
make: *** [_mod_drivers] Error 2
What to do?
Thanks,
Frank
Quoted 15 lines · On Tue, 15 Jan 2002 07:14:24 -0700 Frank Jacobberger <[email protected]> wrote:
gcc -D__KERNEL__ -I/usr/src/linux-2.5.2/include -Wall
(quoted diff) +0
-3-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include
/usr/src/linux-2.5.2/include/linux/modversions.h-c -o audio.oaudio.caudio.c: In function `emu10k1_audio_open':
audio.c:1101: invalid operands to binary &
make[3]: *** [audio.o] Error 1
make[3]: Leaving directory `/usr/src/linux-2.5.2/drivers/sound/emu10k1' make[2]: *** [_modsubdir_emu10k1] Error 2
make[2]: Leaving directory `/usr/src/linux-2.5.2/drivers/sound' make[1]: *** [_modsubdir_sound] Error 2
make[1]: Leaving directory `/usr/src/linux-2.5.2/drivers'
make: *** [_mod_drivers] Error 2
Quoted 1 line
What to do?
I've already contributed patch for 2.5 kernels to fix this. There are problems with 'MINOR' function. Look in attach for the patch.
Signature · 2 lines
Nikita Gergel System Administrator Moscow, Russia YAUZA-Telecom
drivers/sound/emu10k1/audio.c Wed Jan 9 10:00:00 2002 renamed from linux/drivers/sound/emu10k1/audio.c Tue Oct 9 21:53:00 2001 +2 -2
@@ -1098,7 +1098,7 @@ static int emu10k1_audio_open(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int emu_minor = minor(inode->i_rdev); struct emu10k1_card *card = NULL; struct list_head *entry; struct emu10k1_wavedevice *wave_dev;
@@ -1110,7 +1110,7 @@ list_for_each(entry, &emu10k1_devs) { card = list_entry(entry, struct emu10k1_card, list); - if (!((card->audio_dev ^ minor) & ~0xf) || !((card->audio_dev1 ^ minor) & ~0xf)) + if (!((card->audio_dev ^ emu_minor) & ~0xf) || !((card->audio_dev1 ^ emu_minor) & ~0xf))
goto match;
}
@@ -1206,7 +1206,7 @@
woinst->buffer.fragment_size = 0; woinst->buffer.ossfragshift = 0; woinst->buffer.numfrags = 0;
- woinst->device = (card->audio_dev1 == minor);
+ woinst->device = (card->audio_dev1 == emu_minor);
woinst->timer.state = TIMER_STATE_UNINSTALLED; woinst->num_voices = 1;
for (i = 0; i < WAVEOUT_MAXVOICES; i++) {
drivers/sound/emu10k1/midi.c Wed Jan 9 10:00:00 2002 renamed from linux/drivers/sound/emu10k1/midi.c Tue Oct 9 21:53:00 2001 +2 -2
@@ -87,7 +87,7 @@ static int emu10k1_midi_open(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int emu_minor = minor(inode->i_rdev); struct emu10k1_card *card = NULL; struct emu10k1_mididevice *midi_dev; struct list_head *entry;
@@ -98,7 +98,7 @@ list_for_each(entry, &emu10k1_devs) { card = list_entry(entry, struct emu10k1_card, list); - if (card->midi_dev == minor) + if (card->midi_dev == emu_minor) goto match; }
drivers/sound/emu10k1/mixer.c Wed Jan 9 10:00:00 2002 renamed from linux/drivers/sound/emu10k1/mixer.c Tue Oct 9 21:53:00 2001 +2 -2
@@ -640,7 +640,7 @@ static int emu10k1_mixer_open(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int emu_minor = minor(inode->i_rdev); struct emu10k1_card *card = NULL; struct list_head *entry;
@@ -649,7 +649,7 @@ list_for_each(entry, &emu10k1_devs) { card = list_entry(entry, struct emu10k1_card, list); - if (card->ac97.dev_mixer == minor) + if (card->ac97.dev_mixer == emu_minor) goto match; }