Bug 104841

Summary: No microphone on Creative SoundBlaster Omni Surround 5.1
Product: Drivers Reporter: Nazar Mokrynskyi (nazar)
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: NEW ---    
Severity: normal CC: superquad.vortex2, szg00000
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.3-rc1, 4.3-rc2, 4.3-rc3, 4.3-rc4 Subsystem:
Regression: Yes Bisected commit-id:

Description Nazar Mokrynskyi 2015-09-21 06:00:39 UTC
Using this USB sound card with Linux 4.2 everything works fine (at least with 4.2-rc8 which I have currently running), but with 4.3-rc1 and 4.3-rc2 I do not see Microphone/Line in inputs list, while outputs work fine and inputs works for built-in Intel HD card:
~> env LANG=C pactl list
...
Card #1
	Name: alsa_card.usb-Creative_Technology_Ltd_SB_Omni_Surround_5.1_000000Q6-00
	Driver: module-alsa-card.c
	Owner Module: 7
	Properties:
		alsa.card = "2"
		alsa.card_name = "SB Omni Surround 5.1"
		alsa.long_card_name = "Creative Technology Ltd SB Omni Surround 5.1 at usb-0000:00:14.0-6, full speed"
		alsa.driver_name = "snd_usb_audio"
		device.bus_path = "pci-0000:00:14.0-usb-0:6:1.0"
		sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0/sound/card2"
		udev.id = "usb-Creative_Technology_Ltd_SB_Omni_Surround_5.1_000000Q6-00"
		device.bus = "usb"
		device.vendor.id = "041e"
		device.vendor.name = "Creative Technology, Ltd"
		device.product.id = "322c"
		device.product.name = "SB Omni Surround 5.1"
		device.serial = "Creative_Technology_Ltd_SB_Omni_Surround_5.1_000000Q6"
		device.string = "2"
		device.description = "SB Omni Surround 5.1"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-usb"
	Profiles:
		output:analog-stereo: вихід Аналогове стерео (sinks: 1, sources: 0, priority: 6000, available: yes)
		output:analog-surround-21: вихід Аналоговий об'ємний 2.1 (sinks: 1, sources: 0, priority: 500, available: yes)
		output:analog-surround-41: вихід Аналоговий об'ємний 4.1 (sinks: 1, sources: 0, priority: 700, available: yes)
		output:analog-surround-50: вихід Аналоговий об'ємний 5.0 (sinks: 1, sources: 0, priority: 800, available: yes)
		output:analog-surround-51: вихід Аналоговий об'ємний 5.1 (sinks: 1, sources: 0, priority: 900, available: yes)
		output:iec958-stereo: вихід Цифрове стерео (IEC958) (sinks: 1, sources: 0, priority: 5500, available: yes)
		off: Вимкнено (sinks: 0, sources: 0, priority: 0, available: yes)
	Active Profile: output:analog-surround-41
	Ports:
		analog-output: Аналогове відтворення (priority: 9900, latency offset: 0 usec)
			Part of profile(s): output:analog-stereo, output:analog-surround-21, output:analog-surround-41, output:analog-surround-50, output:analog-surround-51
		iec958-stereo-output: Цифровий вихід (S/PDIF) (priority: 0, latency offset: 0 usec)
			Part of profile(s): output:iec958-stereo

Card #2
	Name: alsa_card.pci-0000_00_1b.0
	Driver: module-alsa-card.c
	Owner Module: 8
	Properties:
		alsa.card = "1"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xf7b10000 irq 37"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card1"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "8c20"
		device.product.name = "8 Series/C220 Series Chipset High Definition Audio Controller"
		device.form_factor = "internal"
		device.string = "1"
		device.description = "Вбудоване аудіо"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	Profiles:
		input:analog-stereo: вхід Аналогове стерео (sinks: 0, sources: 1, priority: 60, available: yes)
		output:analog-stereo: вихід Аналогове стерео (sinks: 1, sources: 0, priority: 6000, available: yes)
		output:analog-stereo+input:analog-stereo: Аналогове двобічне стерео (sinks: 1, sources: 1, priority: 6060, available: yes)
		output:iec958-stereo: вихід Цифрове стерео (IEC958) (sinks: 1, sources: 0, priority: 5500, available: yes)
		output:iec958-stereo+input:analog-stereo: вихід Цифрове стерео (IEC958) + вхід Аналогове стерео (sinks: 1, sources: 1, priority: 5560, available: yes)
		off: Вимкнено (sinks: 0, sources: 0, priority: 0, available: yes)
	Active Profile: output:iec958-stereo+input:analog-stereo
	Ports:
		analog-input-internal-mic: Вбудований мікрофон (priority: 8900, latency offset: 0 usec)
			Properties:
				device.icon_name = "audio-input-microphone"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:iec958-stereo+input:analog-stereo
		analog-input-mic: Мікрофон (priority: 8700, latency offset: 0 usec, not available)
			Properties:
				device.icon_name = "audio-input-microphone"
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:iec958-stereo+input:analog-stereo
		analog-input-linein: Лінійний вхід (priority: 8100, latency offset: 0 usec, not available)
			Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:iec958-stereo+input:analog-stereo
		analog-output-lineout: Лінійний вихід (priority: 9900, latency offset: 0 usec, not available)
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
		analog-output-speaker: Гучномовці (priority: 10000, latency offset: 0 usec)
			Properties:
				device.icon_name = "audio-speakers"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
		analog-output-headphones: Аналогові навушники (priority: 9000, latency offset: 0 usec, not available)
			Properties:
				device.icon_name = "audio-headphones"
			Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
		iec958-stereo-output: Цифровий вихід (S/PDIF) (priority: 0, latency offset: 0 usec)
			Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:analog-stereo
Comment 1 Nazar Mokrynskyi 2015-09-29 05:52:52 UTC
Still an issue with 4.3.0-rc3
Comment 3 Nazar Mokrynskyi 2015-10-02 10:37:25 UTC
Indeed it is not device 1 anymore.
Linux 4.2:
card 2: S51 [SB Omni Surround 5.1], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Linux 4.3-rc3:
card 2: S51 [SB Omni Surround 5.1], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

Now with http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=b7744e5004b7dbd36bbb0ed7d211e7da3f5feb1b (config file) it stopped working, obviously.

With udev rule removed I can see Microphone, Line in and Digital input S/PDIF (it doesn't have digital input physically, just output, but it works like Microphone input).

I've edited config by adding 2 blocks for inputs - for 4.2- and 4.3+ separately.
I can send patch to PulseAudio mailing list to make it work on both 4.2- and 4.3+ kernels.

Interesting commit is https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/usb?id=5ee20bc792467d7d612157e0a9962765aa943b08, it mentions exception for one sound card, and, probably, might add another for discussed in this topic, but in my opinion kernel should not contain such workarounds for userspace software, especially if we can handle both cases nicely in PulseAudio himself.
Comment 4 Raymond 2015-10-07 13:32:32 UTC
most application (e.g. pulseaudio) expect analog playback device and analog capture device are device zero ( same device number)

this is a bug fix if the the usb audio use same device for  analog playback device and analog capture device 

when there are more than one playback devices
Comment 5 Raymond 2015-10-07 13:35:55 UTC
do the three playback devices support same format, rate and channels ?

do playback device and capture device not support same format and rates ?
Comment 6 Nazar Mokrynskyi 2015-10-10 23:38:05 UTC
Here is I think all relevant output of pactl list: http://pastebin.com/gbnYHwNj
I'm currently using kernel 4.3.0-rc4 (output was taken as is without special profile for this sound card).
Among automatically detected profiles there is output:analog-stereo+input:iec958-stereo, while I'm sure there is no such input available physically on this sound card.
What more information needed here?
Comment 7 Raymond 2015-10-11 00:59:06 UTC
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1384952

the capture device of u7 is also device 1 before that patch


and PCM capture volume/switch which was not supported by pulseaudio


are there any change in playback devices ?after the internal order was changed
Comment 8 Nazar Mokrynskyi 2015-10-11 01:04:57 UTC
Playback is fine.
> and PCM capture volume/switch which was not supported by pulseaudio
Can you explain what does this mean?
I'm on PulseAudio 7 already.