[alsa-devel] get rid of controls with snd_ctl_remove

Harald Radke harryrat at postnuklear.de
Fri Aug 29 14:54:42 CEST 2008


Hi there!

Please be patient with me, I am quite inexperienced with alsa programming, so 
this might be a dumb question:

We have a WM8750 working in our PDA, the codec is working so far but I want to 
remove some of the control since they aren't needed.

Instead of copying the wm8750.c file and adjusting it, I want to write another 
module which basically get rid of those controls, something like:

[...]

static const char* unused_controls[] = {"AAAA", "BBBB,"CCCC"};

        struct snd_kcontrol *ctl;

        list_for_each_entry(ctl, &card->controls, list)
          for(i=0; i <  ARRAY_SIZE(unused_controls); i++)
            if (!strcmp(unused_controls[i],ctl->id.name)) {
              down_write(&card->controls_rwsem);
              snd_ctl_remove(card,ctl);
              up_write(&card->controls_rwsem);
              break;
            }

unfortunatly this doesn't work (module segfaults...."of course" you will say 
*g*)

My question: is it possible at all and I am just not deep nuff in understanding 
the sound system or do I have to adjust the original code?

Thx

Harry


More information about the Alsa-devel mailing list