kern/123640: [patch] snd_cmi driver now supports "C-Media INC. USB Sound Device" a.k.a. CMI120

Juan José del Río juanjose at simpleoption.com
Tue May 13 20:00:13 UTC 2008


>Number:         123640
>Category:       kern
>Synopsis:       [patch] snd_cmi driver now supports "C-Media INC. USB Sound Device" a.k.a. CMI120
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 13 20:00:13 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Juan José del Río
>Release:        7.0-RELEASE
>Organization:
Simple Option S.L.
>Environment:
FreeBSD galileo.simpleoption.com 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Thu May  1 15:21:50 CEST 2008     root at galileo.simpleoption.com:/usr/src/sys/i386/compile/GENERIC  i386
>Description:
I plug my USB Speakers in FreeBSD and no pcm device is created.

Grep'd dump of usbdevs -v :

Controller /dev/usb1:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), ATI(0x0000), rev 1.00
 port 1 addr 2: full speed, power 500 mA, config 1, USB Sound Device(0x0103), C-Media INC.(0x0d8c), rev 0.10
 port 2 powered
>How-To-Repeat:
Plug in the speakers in a system using 7.0-RELEASE
>Fix:
I have patched sys/dev/sound/pci/cmi.c adding my DEVICE ID to the list of supported devices. The patch is attached to this PR.

Just load the patched module, and plug in the USB. If it's already plugged, unplug and plug it again.

Patch attached with submission follows:

--- cmi.c~	2008-05-13 21:35:37.000000000 +0200
+++ cmi.c	2008-05-13 21:35:04.000000000 +0200
@@ -60,6 +60,7 @@
 #define CMI8338B_PCI_ID   0x010113f6
 #define CMI8738_PCI_ID    0x011113f6
 #define CMI8738B_PCI_ID   0x011213f6
+#define CMI120_USB_ID     0x01030d8c
 
 /* Buffer size max is 64k for permitted DMA boundaries */
 #define CMI_DEFAULT_BUFSZ      16384
@@ -916,6 +917,9 @@
 	case CMI8738B_PCI_ID:
 		device_set_desc(dev, "CMedia CMI8738B");
 		return BUS_PROBE_DEFAULT;
+	case CMI120_USB_ID:
+	        device_set_desc(dev, "CMedia CMI120");
+	        return BUS_PROBE_DEFAULT;
 	default:
 		return ENXIO;
 	}


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list