-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi,
I guess I won't try it then. Hopefully this gets resolved at some stage. I don't mind another alsa workaround anyways since there is already one. I have to reload the alsa drivers for my Terratec DMX XFire 1024 after the initial load at boottime. Otherwise I only get heavily distorted sound. After reloading it's ok. I started a thread with a question about that a while ago. AFAIR the terratec Cards doesn't get initialized properly the first time. The second time it works. So I just create the missing devices after the reload. It could be worse ;) CU and thanks again, Richard On Friday 03 January 2003 14:07, Georgi Georgiev wrote: > On Fri, Jan 03, 2003 at 01:24:08PM +0100, Richard Stevens wrote: > > and put them in my rc.local script. That does the job as a workaround. > > I'll also try the patch later. Hopefully it works with my 2.4.20 kernel. > > Jaroslav, do you know if the patch got rejected completely or only > > delayed? Any information from the kernel masters about the subject? > > I just tried the patch and I use vanilla 2.4.20 kernel. Only the fourth > chunk is not appliable, bacause it seems sort of applied already. The > function register_sound_special that is in the kernel looks a lot like the > alsa patch wants it to look like. The part that is not applied is the > shortcut with the unknown devices - the kernel source prefers a long switch > statement, rather than using goto. > > There is also the part with the switch statement. > > The kernel source has changed like > - switch (unit & 15) { > + switch (unit) { > > and the alsa patch suggests > > - switch (unit & 15) { > + switch (chain) { > > where chain is assigned a value of unit % SOUND_STEP a few lines before > that. The name of the device with minor 2 became hardcoded as midi00 (again > rejection of a part of the alsa patch). > > That's about it. The rest of the fourth chunk is applied (more or less) and > the rest of the patch is not applied at all. > > I applied the patch almost manually, and for the curious, here is my diff. > You'd need to patch -R, but do read until the end first. > > --- /usr/src/linux/drivers/sound/sound_core.c.bak 2003-01-03 > 20:48:46.000000000 +0900 +++ /usr/src/linux/drivers/sound/sound_core.c > 2003-01-03 21:47:59.000000000 +0900 @@ -173,10 +173,10 @@ > return r; > } > > - if (r == low) > + if (r < SOUND_STEP) > sprintf (name_buf, "%s", name); > else > - sprintf (name_buf, "%s%d", name, (r - low) / SOUND_STEP); > + sprintf (name_buf, "%s%d", name, r / SOUND_STEP); > s->de = devfs_register (devfs_handle, name_buf, > DEVFS_FL_NONE, SOUND_MAJOR, s->unit_minor, > S_IFCHR | mode, fops, NULL); > @@ -217,7 +217,7 @@ > * 15 *16 unused > */ > > -static struct sound_unit *chains[16]; > +static struct sound_unit *chains[SOUND_STEP]; > > /** > * register_sound_special - register a special sound node > @@ -233,7 +233,7 @@ > { > char *name; > > - switch (unit) { > + switch (unit & 15) { > case 0: > name = "mixer"; > break; > @@ -382,7 +382,7 @@ > > void unregister_sound_special(int unit) > { > - sound_remove_unit(&chains[unit&15], unit); > + sound_remove_unit(&chains[unit % SOUND_STEP], unit); > } > > EXPORT_SYMBOL(unregister_sound_special); > @@ -480,7 +480,7 @@ > int soundcore_open(struct inode *inode, struct file *file) > { > int chain; > - int unit=MINOR(inode->i_rdev); > + int unit = MINOR(inode->i_rdev); > struct sound_unit *s; > struct file_operations *new_fops = NULL; > > > The /dev/sound devices are created as expected with this patch. > I could do "modprobe -r snd-pcm-oss", but once I decided to do > "modprobe -r snd-cmipci" next I got a segfault, and "modprobe -r > snd-emu10k1" (right after that) froze the modprobe process. > > # lsmod | grep ^snd > snd-cmipci 0 0 (deleted) > snd-opl3-lib 6628 0 [snd-cmipci] > snd-mpu401-uart 3120 0 [snd-cmipci] > snd-emu10k1 0 0 (deleted) > snd-ac97-codec 30436 0 [snd-emu10k1] > snd-pcm 60576 0 [snd-cmipci snd-emu10k1] > snd-timer 11080 0 [snd-opl3-lib snd-pcm] > snd-rawmidi 13824 0 [snd-mpu401-uart snd-emu10k1] > snd-util-mem 1392 0 [snd-emu10k1] > snd-hwdep 4256 0 [snd-opl3-lib snd-emu10k1] > snd-seq-device 4268 0 [snd-opl3-lib snd-emu10k1 snd-rawmidi] > snd 27980 0 [snd-cmipci snd-opl3-lib snd-mpu401-uart > snd-emu10k1 snd-ac97-codec snd-pcm snd-timer snd-rawmidi snd-util-mem > snd-hwdep snd-seq-device] > > The directory /dev/sound has disappeared already. > > I hope someone posts a more soffisticated patch soon. This was simply my > attempt to "make it compile" but it obviously doesn't work :( -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+FZBjWQvEMJfcXlQRArZuAKCbzYonxR41tYOvb422xDjSX1garwCdGX6U Ut7AgieCROzn6tDnYlYEWmo= =NiLp -----END PGP SIGNATURE----- ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Alsa-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-user