usb声卡的卡号不固定,跟usb的加载顺序有关,所以想了一种办法来固定usb声卡:把usb声卡卡号与usb口绑定。
仅仅改这里上层调用还是有问题,具体要看我上一篇文章
Index: kernel/sound/core/init.c
===================================================================
--- kernel/sound/core/init.c (revision 778)
+++ kernel/sound/core/init.c (working copy)
@@ -764,6 +764,32 @@
if (snd_BUG_ON(!card))
return -EINVAL;
+ printk("fan card number=%d shortname=%s longname=%s \n",card->number,card->shortname,card->longname);
+ if(strstr(card->longname,"usb-1.2")!=NULL)
+ {
+ card->number=0;
+ }
+ else if(strstr(card->longname,"usb-1.4")!=NULL)
+ {
+ card->number=1;
+ }
+ else if(strstr(card->longname,"usb-1.5")!=NULL)
+ {
+ card->number=2;
+ }
+ else if(strstr(card->longname,"usb-1.6")!=NULL)
+ {
+ card->number=3;
+ }
+ else if(strstr(card->longname,"usb-1.3")!=NULL)
+ {
+ card->number=4;
+ }
+ else
+ {
+ card->number+=4;
+ }
+ printk("fan changed card number =%d\n",card->number);
if (!card->registered) {
err = device_add(&card->card_dev);
@@ -917,6 +943,8 @@
}
if (card->components[0] != '\0')
strcat(card->components, " ");
+ printk("fan card components =%s",card->components[0]);
+ printk("fan new components =%s",component);
strcat(card->components, component);
return 0;
}