All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: alsa - 0.9.8 (and today's cvs - 16.11.2003) interwave problem.
  2003-11-17 16:04 alsa - 0.9.8 (and today's cvs - 16.11.2003) interwave problem Nima Ghassemi
@ 2003-11-16 17:35 ` Jaroslav Kysela
  2003-11-17  1:40   ` Paul Hanly (Hotmail)
                     ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Jaroslav Kysela @ 2003-11-16 17:35 UTC (permalink / raw)
  To: Nima Ghassemi; +Cc: alsa-devel

On Mon, 17 Nov 2003, Nima Ghassemi wrote:

> hi,
>
> there's some problem which I tracked down to
>
> ~alsa-driver/sound/core/control.c
>
> int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol)
> {
>         snd_ctl_elem_id_t id;
>         unsigned int idx;
>
>     snd_runtime_check(card != NULL && kcontrol != NULL, return -EINVAL);
>         snd_assert(kcontrol->info != NULL, return -EINVAL);
>         id = kcontrol->id;
>         down_write(&card->controls_rwsem);
>     if (_ctl_find_id(card, &id)) {
>                 up_write(&card->controls_rwsem);
>                 snd_ctl_free_one(kcontrol);
>                 return -EBUSY;
>     }
> [...]
>
> the problem lies in _ctl_find_id (card, &id). by commenting the if-block
> out, everything (as well
> as the sound-card) works perfectly (as far as I could test it...).

Can you add some printk's to determine which id is causing the problem so
we can fix it? Thanks.

						Jaroslav

-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs


-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: alsa - 0.9.8 (and today's cvs - 16.11.2003) interwave problem.
  2003-11-16 17:35 ` Jaroslav Kysela
@ 2003-11-17  1:40   ` Paul Hanly (Hotmail)
       [not found]   ` <3FB9E24B.5000602@web.de>
  2003-11-18  9:18   ` Nima Ghassemi
  2 siblings, 0 replies; 5+ messages in thread
From: Paul Hanly (Hotmail) @ 2003-11-17  1:40 UTC (permalink / raw)
  To: Jaroslav Kysela, Nima Ghassemi; +Cc: alsa-devel

I don't know if this is related but under Mdk 9.1 I also get problems with
core:

[root@localhost alsa-driver-0.9.8]# modprobe snd-au8820
/lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o: unresolved symbol
_snd_magic_kcalloc
/lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o: unresolved symbol
snd_hidden_vfree
/lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o: unresolved symbol
snd_magic_kfree
/lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o: unresolved symbol
snd_hidden_kfree
/lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o: unresolved symbol
snd_memory_info_done
/lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o: unresolved symbol
snd_memory_info_init
/lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o: unresolved symbol
snd_hidden_vmalloc
modprobe: insmod /lib/modules/2.4.21-0.13mdk/kernel/sound/acore/snd.o failed
modprobe: insmod snd-au8820 failed

If I:
urpmi kernel-source
it tells me everything is already installed.
If I modprobe or insmod kernel-source it can't find the module
kernel-source.
Please tell me I don't have to recompile the kernel!!!

Cheers
Paul

----- Original Message ----- 
From: "Jaroslav Kysela" <perex@suse.cz>
To: "Nima Ghassemi" <ngn928@web.de>
Cc: <alsa-devel@lists.sourceforge.net>
Sent: Monday, November 17, 2003 4:35 AM
Subject: Re: [Alsa-devel] alsa - 0.9.8 (and today's cvs - 16.11.2003)
interwave problem.


> On Mon, 17 Nov 2003, Nima Ghassemi wrote:
>
> > hi,
> >
> > there's some problem which I tracked down to
> >
> > ~alsa-driver/sound/core/control.c
> >
> > int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol)
> > {
> >         snd_ctl_elem_id_t id;
> >         unsigned int idx;
> >
> >     snd_runtime_check(card != NULL && kcontrol != NULL, return -EINVAL);
> >         snd_assert(kcontrol->info != NULL, return -EINVAL);
> >         id = kcontrol->id;
> >         down_write(&card->controls_rwsem);
> >     if (_ctl_find_id(card, &id)) {
> >                 up_write(&card->controls_rwsem);
> >                 snd_ctl_free_one(kcontrol);
> >                 return -EBUSY;
> >     }
> > [...]
> >
> > the problem lies in _ctl_find_id (card, &id). by commenting the if-block
> > out, everything (as well
> > as the sound-card) works perfectly (as far as I could test it...).
>
> Can you add some printk's to determine which id is causing the problem so
> we can fix it? Thanks.
>
> Jaroslav
>
> -----
> Jaroslav Kysela <perex@suse.cz>
> Linux Kernel Sound Maintainer
> ALSA Project, SuSE Labs
>
>
> -------------------------------------------------------
> This SF. Net email is sponsored by: GoToMyPC
> GoToMyPC is the fast, easy and secure way to access your computer from
> any Web browser or wireless device. Click here to Try it Free!
> https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/alsa-devel
>


-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: alsa - 0.9.8 (and today's cvs - 16.11.2003) interwave problem.
       [not found]     ` <Pine.LNX.4.53.0311171022090.16992@pnote.perex-int.cz>
@ 2003-11-17 10:19       ` Nima Ghassemi
  0 siblings, 0 replies; 5+ messages in thread
From: Nima Ghassemi @ 2003-11-17 10:19 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: alsa-devel

Well...

still the same...
here's the output again:

Nov 17 11:16:34 sipiyou kernel: >id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Switch' 
id->name= 'Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Volume' 
id->name= 'Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Switch' id->name= 'Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Bypass' id->name= 'Capture Volume'
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id return NULL
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Switch' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Volume' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Switch' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Volume' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Switch' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Volume' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Switch' id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Bypass' id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Capture Volume' 
id->name= 'Capture Source'
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id return NULL
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Switch' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Volume' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Switch' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Volume' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Switch' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Volume' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Switch' id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Bypass' id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Capture Volume' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Capture Source' 
id->name= 'Mic Boost'
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id return NULL
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Switch' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Volume' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Switch' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Volume' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Switch' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Volume' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Switch' id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Bypass' id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Capture Volume' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Capture Source' 
id->name= 'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mic Boost' id->name= 
'Loopback Capture Switch'
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id return NULL
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Switch' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Volume' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Switch' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Line Playback Volume' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Switch' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Aux Playback Volume' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Switch' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Playback Volume' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Switch' id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mono Output Playback 
Bypass' id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Capture Volume' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Capture Source' 
id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Mic Boost' id->name= 
'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'Loopback Capture 
Switch' id->name= 'Loopback Capture Volume'
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id return NULL
Nov 17 11:16:34 sipiyou kernel: snd-mixer-4231 ok
Nov 17 11:16:34 sipiyou kernel: pcm-chan returns 2
Nov 17 11:16:34 sipiyou kernel: capture = 0 , interwave =1
Nov 17 11:16:34 sipiyou kernel: pcm_dev = 1 channels = 2
Nov 17 11:16:34 sipiyou kernel: snd-pcm-new ok
Nov 17 11:16:34 sipiyou kernel: snd-pcm-set ops ok
Nov 17 11:16:34 sipiyou kernel: snd-pcm-lib-preallocated ok
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 17 11:16:34 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Switch' 
id->name= 'PCM Playback Volume'
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, 
&card->controls)-loop start
Nov 17 11:16:34 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 17 11:16:34 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 17 11:16:34 sipiyou kernel: kctl->id.name = 'PCM Playback Volume' 
id->name= 'PCM Playback Volume'
Nov 17 11:16:34 sipiyou kernel: kctl->id.index = 0 id->index = 0
Nov 17 11:16:34 sipiyou kernel: kctl->id.index + kctl->count <= (?) 1 
id->index = 0
Nov 17 11:16:34 sipiyou kernel: list_for_each(list, &card->controls) 
exit _ctl_find_id
Nov 17 11:16:34 sipiyou kernel: bug here id=0 2
Nov 17 11:16:34 sipiyou kernel: xxxx card = -454434304, kctl = -584178112
Nov 17 11:16:34 sipiyou kernel: pcm-new returns -16
Nov 17 11:16:34 sipiyou kernel: InterWave soundcard not found or device busy

>On Tue, 18 Nov 2003, Nima Ghassemi wrote:
>
>  
>
>>Hi Jaroslav!
>>
>>here we go:
>>I added some printk's to these routines:
>>    
>>
>
>Thanks. Please, try this patch:
>
>Index: gus_pcm.c
>===================================================================
>RCS file: /cvsroot/alsa/alsa-kernel/isa/gus/gus_pcm.c,v
>retrieving revision 1.15
>diff -u -r1.15 gus_pcm.c
>--- gus_pcm.c	1 Mar 2003 19:04:29 -0000	1.15
>+++ gus_pcm.c	17 Nov 2003 09:25:09 -0000
>@@ -813,6 +813,15 @@
> 	.put = snd_gf1_pcm_volume_put
> };
>
>+static snd_kcontrol_new_t snd_gf1_pcm_volume_control1 =
>+{
>+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
>+	.name = "GPCM Playback Volume",
>+	.info = snd_gf1_pcm_volume_info,
>+	.get = snd_gf1_pcm_volume_get,
>+	.put = snd_gf1_pcm_volume_put
>+};
>+
> static snd_pcm_ops_t snd_gf1_pcm_playback_ops = {
> 	.open =		snd_gf1_pcm_playback_open,
> 	.close =	snd_gf1_pcm_playback_close,
>@@ -880,6 +889,10 @@
> 	strcat(pcm->name, " (synth)");
> 	gus->pcm = pcm;
>
>+	if (gus->codec_flag)
>+		kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control1, gus);
>+	else
>+		kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control, gus);
> 	if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_gf1_pcm_volume_control, gus))) < 0)
> 		return err;
> 	kctl->id.index = control_index;
>
>						Jaroslav
>
>-----
>Jaroslav Kysela <perex@suse.cz>
>Linux Kernel Sound Maintainer
>ALSA Project, SuSE Labs
>  
>



-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl

^ permalink raw reply	[flat|nested] 5+ messages in thread

* alsa - 0.9.8 (and today's cvs - 16.11.2003) interwave problem.
@ 2003-11-17 16:04 Nima Ghassemi
  2003-11-16 17:35 ` Jaroslav Kysela
  0 siblings, 1 reply; 5+ messages in thread
From: Nima Ghassemi @ 2003-11-17 16:04 UTC (permalink / raw)
  To: alsa-devel

hi,

there's some problem which I tracked down to

~alsa-driver/sound/core/control.c

int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol)
{
        snd_ctl_elem_id_t id;
        unsigned int idx;

    snd_runtime_check(card != NULL && kcontrol != NULL, return -EINVAL);
        snd_assert(kcontrol->info != NULL, return -EINVAL);
        id = kcontrol->id;
        down_write(&card->controls_rwsem);
    if (_ctl_find_id(card, &id)) {
                up_write(&card->controls_rwsem);
                snd_ctl_free_one(kcontrol);
                return -EBUSY;
    }
[...]

the problem lies in _ctl_find_id (card, &id). by commenting the if-block 
out, everything (as well
as the sound-card) works perfectly (as far as I could test it...).

this is the error-message I get when I leave eveything as it is:
----------------------------------------
root@sipiyou :/tmp/alsa/alsa-driver> modprobe snd-interwave
/lib/modules/2.4.22/kernel/sound/isa/gus/snd-interwave.o: init_module: 
No such device
Hint: insmod errors can be caused by incorrect module parameters, 
including invalid IO or IRQ parameters
/lib/modules/2.4.22/kernel/sound/isa/gus/snd-interwave.o: insmod 
/lib/modules/2.4.22/kernel/sound/isa/gus/snd-interwave.o failed
/lib/modules/2.4.22/kernel/sound/isa/gus/snd-interwave.o: insmod 
snd-interwave failed
----------------------------------------
/etc/modules.conf:
options snd-interwave index=0 id="GusPnP" enable=1 port=0x220 irq=11 
dma1=5 dma2=7

this is my config:
- devfs
- kernel 2.4.22
- amd interwave (ultrasound pnp)


Nima.


-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: alsa - 0.9.8 (and today's cvs - 16.11.2003) interwave problem.
  2003-11-16 17:35 ` Jaroslav Kysela
  2003-11-17  1:40   ` Paul Hanly (Hotmail)
       [not found]   ` <3FB9E24B.5000602@web.de>
@ 2003-11-18  9:18   ` Nima Ghassemi
  2 siblings, 0 replies; 5+ messages in thread
From: Nima Ghassemi @ 2003-11-18  9:18 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: alsa-devel

Hi Jaroslav!

here we go:
I added some printk's to these routines:
----------------------------------------------------------------------
int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol)
{
        snd_ctl_elem_id_t id;
        unsigned int idx;
        unsigned int dummy;

        printk ("_snd_ctl_add called (/sound/core/control.c)\n");
        snd_runtime_check(card != NULL && kcontrol != NULL, return -EINVAL);
        snd_assert(kcontrol->info != NULL, return -EINVAL);
        id = kcontrol->id;
        printk ("_snd_ctl_add:: kcontrol->id == %d\n",id);
    down_write(&card->controls_rwsem);
        if (_ctl_find_id(card, &id)) {
          printk ("bug here id=%d %d\n",id,-EBUSY);
                up_write(&card->controls_rwsem);
        snd_ctl_free_one(kcontrol);
                return -EBUSY;
                }
        if (card->last_numid > 0x80000000 && card->last_numid +
kcontrol->count < 0x80000000) {
                up_write(&card->controls_rwsem);
                snd_ctl_free_one(kcontrol);
                return -ENOMEM; /* FIXME: find a hole */
        }
        list_add_tail(&kcontrol->list, &card->controls);
           card->controls_count += kcontrol->count;
        kcontrol->id.numid = card->last_numid + 1;
        card->last_numid += kcontrol->count;
        up_write(&card->controls_rwsem);
        for (idx = 0; idx < kcontrol->count; idx++, id.index++, id.numid++)
                snd_ctl_notify(card, SNDRV_CTL_EVENT_MASK_ADD, &id);
    return 0;
}
----------------------------------------------------------------------
static snd_kcontrol_t *_ctl_find_id(snd_card_t * card, snd_ctl_elem_id_t
*id)
{
        struct list_head *list;
        snd_kcontrol_t *kctl;

        printk ("_ctl_find_id called (/sound/core/control.c)\n");
        snd_runtime_check(card != NULL && id != NULL, return NULL);
        if (id->numid != 0) {
          printk ("return _ctl_find_numid, id->numid != 0 , but
id->numid is = %X\n",id->numid);
                return _ctl_find_numid(card, id->numid);
        }
        list_for_each(list, &card->controls) {
          printk ("list_for_each(list, &card->controls)-loop start\n");
                kctl = snd_kcontrol(list);
                printk ("kctl->id.face = %X, id->iface =
%X\n",kctl->id.iface,id->iface);
                if (kctl->id.iface != id->iface) {
                        continue;
                }
                printk ("kctl->id.device = %X id->device=
%X\n",kctl->id.device,id->device);
                if (kctl->id.device != id->device) {
                  printk ("id.device not ok\n");
                        continue;
                }
                printk ("kctl->id.subdevice = %X
id->subdevice=%X\n",kctl->id.subdevice,id->subdevice);
                if (kctl->id.subdevice != id->subdevice) {
                        continue;
                }
                printk ("kctl->id.name = '%s' id->name=
'%s'\n",kctl->id.name,id->name);
                if (strncmp(kctl->id.name, id->name,
sizeof(kctl->id.name))) {
                        continue;
                }
                printk ("kctl->id.index = %X id->index =
%X\n",kctl->id.index,id->index);
                if (kctl->id.index > id->index) {
                        continue;
                }
                printk ("kctl->id.index + kctl->count <= (?) %X
id->index = %X\n",kctl->id.index+kctl->count,id->index);
                if (kctl->id.index + kctl->count <= id->index) {
                        continue;
                }
                printk ("list_for_each(list, &card->controls) exit
_ctl_find_id\n");
                return kctl;
        }
        printk ("_ctl_find_id return NULL\n");

        return NULL;
}
------------------------------------------------------------------------------------------
this is my syslog-output:

what bugs me is that the very first syslog message is crippled.

are there any problems with gcc 3.2.3 ?! (or with glibc 2.3.2)

Nov 18 10:05:41 sipiyou kernel: >id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Switch'
id->name= 'Capture Volume'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Volume'
id->name= 'Capture Volume'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Switch' id->name= 'Capture Volume'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Bypass' id->name= 'Capture Volume'
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id return NULL
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Switch'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Volume'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Switch'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Volume'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Switch'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Volume'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Switch' id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Bypass' id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Capture Volume'
id->name= 'Capture Source'
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id return NULL
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Switch'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Volume'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Switch'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Volume'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Switch'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Volume'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Switch' id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Bypass' id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Capture Volume'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Capture Source'
id->name= 'Mic Boost'
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id return NULL
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Switch'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Volume'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Switch'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Volume'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Switch'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Playback Volume'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Switch' id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Bypass' id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Capture Volume'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Capture Source'
id->name= 'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Mic Boost' id->name=
'Loopback Capture Switch'
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id return NULL
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 18 10:05:41 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Switch'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'PCM Playback Volume'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Switch'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:41 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:41 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:41 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:41 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:41 sipiyou kernel: kctl->id.name = 'Line Playback Volume'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Aux Playback Switch'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Aux Playback Volume'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Mono Playback Switch'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Mono Playback Volume'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Switch' id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Mono Output Playback
Bypass' id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Capture Volume'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Capture Source'
id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Mic Boost' id->name=
'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'Loopback Capture
Switch' id->name= 'Loopback Capture Volume'
Nov 18 10:05:42 sipiyou kernel: _ctl_find_id return NULL
Nov 18 10:05:42 sipiyou kernel: snd-mixer-4231 ok
Nov 18 10:05:42 sipiyou kernel: pcm-chan returns 2
Nov 18 10:05:42 sipiyou kernel: capture = 0 , interwave =1
Nov 18 10:05:42 sipiyou kernel: pcm_dev = 1 channels = 2
Nov 18 10:05:42 sipiyou kernel: snd-pcm-new ok
Nov 18 10:05:42 sipiyou kernel: snd-pcm-set ops ok
Nov 18 10:05:42 sipiyou kernel: snd-pcm-lib-preallocated ok
Nov 18 10:05:42 sipiyou kernel: _snd_ctl_add called (/sound/core/control.c)
Nov 18 10:05:42 sipiyou kernel: _snd_ctl_add:: kcontrol->id == 0
Nov 18 10:05:42 sipiyou kernel: _ctl_find_id called (/sound/core/control.c)
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'PCM Playback Switch'
id->name= 'PCM Playback Volume'
Nov 18 10:05:42 sipiyou kernel: list_for_each(list,
&card->controls)-loop start
Nov 18 10:05:42 sipiyou kernel: kctl->id.face = 2, id->iface = 2
Nov 18 10:05:42 sipiyou kernel: kctl->id.device = 0 id->device= 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.subdevice = 0 id->subdevice=0
Nov 18 10:05:42 sipiyou kernel: kctl->id.name = 'PCM Playback Volume'
id->name= 'PCM Playback Volume'
Nov 18 10:05:42 sipiyou kernel: kctl->id.index = 0 id->index = 0
Nov 18 10:05:42 sipiyou kernel: kctl->id.index + kctl->count <= (?) 1
id->index = 0
Nov 18 10:05:42 sipiyou kernel: list_for_each(list, &card->controls)
exit _ctl_find_id
Nov 18 10:05:42 sipiyou kernel: bug here id=0 2
Nov 18 10:05:42 sipiyou kernel: bitch card = -454433792, kctl = -551828960
Nov 18 10:05:42 sipiyou kernel: pcm-new returns -16
Nov 18 10:05:42 sipiyou kernel: InterWave soundcard not found or device busy
--------------------------------------------------------------------------------

I did in the meanwhile another test with the latest 4F-OSS stuff
(ftp://www.se.opensound.com/pub/oss/linux/oss398b-linux-v2x.tar.gz).
They're having the same problem with the interwave card (error message
is almost the
same which says that the card is not found or busy...).
Did they copy the alsa-engine and are now charging money for it ?

Nima.


>On Mon, 17 Nov 2003, Nima Ghassemi wrote:
>
>  
>
>>hi,
>>
>>there's some problem which I tracked down to
>>
>>~alsa-driver/sound/core/control.c
>>
>>int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol)
>>{
>>        snd_ctl_elem_id_t id;
>>        unsigned int idx;
>>
>>    snd_runtime_check(card != NULL && kcontrol != NULL, return -EINVAL);
>>        snd_assert(kcontrol->info != NULL, return -EINVAL);
>>        id = kcontrol->id;
>>        down_write(&card->controls_rwsem);
>>    if (_ctl_find_id(card, &id)) {
>>                up_write(&card->controls_rwsem);
>>                snd_ctl_free_one(kcontrol);
>>                return -EBUSY;
>>    }
>>[...]
>>
>>the problem lies in _ctl_find_id (card, &id). by commenting the if-block
>>out, everything (as well
>>as the sound-card) works perfectly (as far as I could test it...).
>>    
>>
>
>Can you add some printk's to determine which id is causing the problem so
>we can fix it? Thanks.
>
>						Jaroslav
>
>-----
>Jaroslav Kysela <perex@suse.cz>
>Linux Kernel Sound Maintainer
>ALSA Project, SuSE Labs
>
>
>-------------------------------------------------------
>This SF. Net email is sponsored by: GoToMyPC
>GoToMyPC is the fast, easy and secure way to access your computer from
>any Web browser or wireless device. Click here to Try it Free!
>https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl
>_______________________________________________
>Alsa-devel mailing list
>Alsa-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/alsa-devel
>  
>




-------------------------------------------------------
This SF. Net email is sponsored by: GoToMyPC
GoToMyPC is the fast, easy and secure way to access your computer from
any Web browser or wireless device. Click here to Try it Free!
https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-11-18  9:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-17 16:04 alsa - 0.9.8 (and today's cvs - 16.11.2003) interwave problem Nima Ghassemi
2003-11-16 17:35 ` Jaroslav Kysela
2003-11-17  1:40   ` Paul Hanly (Hotmail)
     [not found]   ` <3FB9E24B.5000602@web.de>
     [not found]     ` <Pine.LNX.4.53.0311171022090.16992@pnote.perex-int.cz>
2003-11-17 10:19       ` Nima Ghassemi
2003-11-18  9:18   ` Nima Ghassemi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.