From 1398804b467ce1057db65d1628b1b9e79e099c4b Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 15 Aug 2002 21:23:41 +0000 Subject: usb audio devices can use new alsa modules snd-usb-audio --- pciusb.c | 4 +++- usb.c | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pciusb.c b/pciusb.c index 010da59..31953b8 100644 --- a/pciusb.c +++ b/pciusb.c @@ -122,7 +122,9 @@ extern int pciusb_find_modules(struct pciusb_entries *entries, const char *fpciu p = buf + offset + 1; q = strchr(p, '\t'); } - e->module = strcmp(p, "unknown") ? strndup(p,q-p-1) : NULL; + if (!e->module || (e->module && strcmp(e->module, "snd-usb-audio"))) + e->module = strcmp(p, "unknown") ? strndup(p,q-p-1) : NULL; + ifree(e->text); /* usb.c set it so that we display something when usbtable doesn't refer that hw*/ e->text = strndup(q+2, strlen(q)-4); if (e->subvendor != 0xffff && e->subdevice != 0xffff && diff --git a/usb.c b/usb.c index 73c5a8a..75712b4 100644 --- a/usb.c +++ b/usb.c @@ -67,6 +67,9 @@ extern struct pciusb_entries usb_probe(void) { int class_, sub, prot = 0; if (sscanf(buf, "I: If#=%*2d Alt=%*2d #EPs=%*2d Cls=%02x(%*5c) Sub=%02x Prot=%02x", &class_, &sub, &prot) == 3) { e->class_ = (class_ * 0x100 + sub) * 0x100 + prot; + if (e->class_ == (0x1*0x100+ 0x01)) /* USB_AUDIO_CLASS*0x100 + USB_SUBCLASS_AUDIO_CONTROL*/ + e->module = "snd-usb-audio"; + } else { fprintf(stderr, "%s %d: unknown ``I'' line\n", proc_usb_path, line); } -- cgit v1.2.1