Bug 664586
Summary: | ALSA - backport the recent USB audio driver from upstream (to fix low audio volume issue, new hw enablement) | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Matthew Mosesohn <mmosesoh> | ||||
Component: | kernel | Assignee: | Jaroslav Kysela <jkysela> | ||||
Status: | CLOSED ERRATA | QA Contact: | Desktop QE <desktop-qa-list> | ||||
Severity: | urgent | Docs Contact: | |||||
Priority: | urgent | ||||||
Version: | 6.1 | CC: | ajb, atodorov, cww, jhunt, jwest, kzhang, lpoetter, msanders, pbunyan, rnelson, syeghiay, tpelka, twillber | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | kernel-2.6.32-330.el6 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2013-02-21 05:50:31 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 637248, 727267, 747123, 782183, 828194, 840683 | ||||||
Attachments: |
|
This request was evaluated by Red Hat Product Management for inclusion in the current release of Red Hat Enterprise Linux. Because the affected component is not scheduled to be updated in the current release, Red Hat is unfortunately unable to address this request at this time. Red Hat invites you to ask your support representative to propose this request, if appropriate and relevant, in the next release of Red Hat Enterprise Linux. If you would like it considered as an exception in the current release, please ask your support representative. Possibly related to bug #679122 (or vice versa). Can this be acked for 6.3? Is there a patch yet? PA doesn't apply any default volumes, it will just inherit what the lower level ALSA bits defaulted to. Reassigning. And note, that the defaults really depend on the hw used, so we'd need information about the hw in question (such as the lsusb/lspci output of it) before anything can be done. Anyway, this is really more Jaroslav turf rather than mine, so I'll leave anything further to him. This request was not resolved in time for the current release. Red Hat invites you to ask your support representative to propose this request, if still desired, for consideration in the next release of Red Hat Enterprise Linux. The Speaker volume and Master volume should be initialized/restored using 'alsactl restore 1' (1 is the card number to be initialized). This command in called from the udev rules. About the attached alsa-info.sh: The command tries to set the Speaker volume to sane -20dB value if Master controls are not present and to 0dB if Master is present. According dump: Simple mixer control 'Speaker',0 Capabilities: pvolume pswitch pswitch-joined Playback channels: Front Left - Front Right Limits: Playback 0 - 44 Mono: Front Left: Playback 0 [0%] [0.00dB] [on] Front Right: Playback 0 [0%] [0.00dB] [on] The 0% means 0dB for the user space mixer layer. This information is obtained from the driver which computes these values according the USB specification. Unfortunately, many USB devices have trouble to follow these specs. There is bunch of dB related changes in the recent ALSA USB driver: http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=c3a3e040f01457d2ea4f199f75ca205401001a3b http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=59bb7f0eebe69aa32a5c7917a23a7da1c5667d73 http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=38b65190c6ab0be8ce7cff69e734ca5b5e7fa309 http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commitdiff;h=9fcd0ab130579d9742538340edda3225f2b49a3e So, there are two options - backport the recent ALSA Audio USB driver or backport the above changes to the RHEL 6 kernel. To be in sync and to support more recent hw, I would propose to backport the whole USB driver. This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux release for currently deployed products. This request is not yet committed for inclusion in a release. Backported commits: ALSA: snd-usb-us122l: add support for US-144 ALSA: snd-usb-us122l: corrent error number for not probing US-144 on ehci-hcd sound: usb-audio: allow switching altsetting on Roland USB MIDI devices sound: usb: make the USB MIDI module more independent sound: usxxx: cleanup chip field sound: usb-audio: add Roland UA-1G support ALSA: sound: usbmidi: Use hweight16 ALSA: usb - Fix mixer map for Hercules Gamesurround Muse Pocket LT ALSA: snd-usb-us122l: add product IDs of US-122MKII and US-144MKII sound: add Edirol UA-101 support sound: usb-audio: use vmalloc buffer helper functions ALSA: usb-audio - Added functionality for E-mu 0404USB/0202USB/TrackerPre ALSA: usb-audio: make buffer pointer based on bytes instead on frames ALSA: usb-audio: relax urb data align. restriction HVR-950Q and HVR-850 only ALSA: usb-audio: use usbquirk.h for detection of HVR-950Q/850 ALSA: usbmixer - add possibility to remap dB values ALSA: usb-audio: reduce MIDI packet size to work around broken firmware ALSA: USB MIDI support for Access Music VirusTI ALSA: usbmixer - introduce /proc/asound/card#/usbmixer file ALSA: usbmixer - add usb_id value to usbmixer proc file ALSA: usbmixer - use MAX_ID_ELEMS where possible ALSA: usbaudio Mbox support, output only ALSA: usbaudio: parse USB descriptors with structs ALSA: usbaudio: introduce new types for audio class v2 ALSA: usbaudio: implement basic set of class v2.0 parser ALSA: usbmixer: bail out early when parsing audio class v2 descriptors ALSA: usbaudio: consolidate header files ALSA: usb/audio.h: Fix field order ALSA: usbaudio - remove debug "SAMPLE BYTES" printk line ALSA: sound/usb/caiaq/midi.h: Checkpatch cleanup ALSA: usbaudio: Fix wrong bitrate for Creative Creative VF0470 Live Cam ALSA: ua101: add Edirol UA-1000 support ALSA: usb/caiaq: Add support for Traktor Kontrol X1 ALSA: usb-audio: move ua101 driver ALSA: usb-audio: header file cleanups ALSA: usb-audio: refactor code ALSA: usb-mixer: factor out quirks ALSA: usb-audio: rename substream format field to altset_idx ALSA: usb-audio: use a format bitmask per alternate setting ALSA: usb-audio: support multiple formats with audio class v2 devices ALSA: usb-audio: add support for samplerate setting on v2 devices sound: linux/usb/audio.h: split header ALSA: usb: fix usb build error when PM is not enabled ALSA: usb-mixer: use defines from audio.h ALSA: usbmixer: rename usbmixer.[ch] -> mixer.[ch] ALSA: usb-mixer: parse descriptors with structs ALSA: usb-mixer: Add support for Audio Class v2.0 ALSA: usbaudio: Add basic support for M-Audio Fast Track Ultra series ALSA: usb - use of kmalloc/kfree requires the include of slab.h ALSA: usb pcm: use of kmalloc requires the include of slab.h ALSA: usb - update gfp/slab.h includes ALSA: usb/mixer - use get_iface_desc() rather than direct structure ALSA: sound/usb: fix UAC1 regression include/linux/usb/audio.h: add __attribute__((packed)) ALSA: sound/usb: add preliminary support for UAC2 interrupts USB: include/usb/*.h checkpatch cleanup ALSA: usb-audio: fix selector unit string index accessor sound: fixup for usb_buffer_alloc/free rename ALSA: usb-audio: add support for Akai MPD16 ALSA: usb/caiaq: fix Traktor Kontrol X1 ABS_HAT2X axis ALSA: usb-audio: parse more format descriptors with structs ALSA: usb-audio: fix return values ALSA: usb-audio: parse UAC2 endpoint descriptors correctly ALSA: usb-audio: add support for UAC2 pitch control ALSA: usb-audio: fix feature unit parser for UAC2 ALSA: snd-usb-caiaq: Restore 'Control vinyl' input mode on A4DJ ALSA: snd-usb-caiaq: Simplify single case to an 'if' ALSA: Revert "ALSA: snd-usb-caiaq: Set default input mode of A4DJ" ALSA: snd-usb-caiaq: Bump version number to 1.3.21 ALSA: usb-audio: UAC2: clean up parsing of bmaControls include/linux/usb/audio-v2.h: add more UAC2 details ALSA: usb-audio: support partially write-protected UAC2 controls ALSA: usb-audio: parse clock topology of UAC2 devices ALSA: usb-audio: unify constants from specification ALSA: usb-audio: add UAC2 sepecific Feature Unit controls ALSA: usb-audio: clean up find_audio_control_unit() ALSA: usb-audio: export UAC2 clock selectors as mixer controls ALSA: usb-audio: add check for faulty clock in parse_audio_format_rates_v2() ALSA: usb-audio: fix control messages for USB_RECIP_INTERFACE ALSA: usb-audio: parse UAC2 sample rate ranges correctly ALSA: usb-audio: fix UAC2 control value queries ALSA: usb/endpoint, fix dangling pointer use ALSA: usb-audio - Add volume resolution quirk for some Logitech webcams ALSA: usb-audio: clean up includes in clock.c ALSA: usb-audio: unify UAC macros and struct names ALSA: usb-midi: whitespace fixes ALSA: usb-audio: move and add some comments ALSA: usb-audio: simplify control interface access ALSA: usb - Fix compile error with CONFIG_SND_DEBUG_VERBOSE=y ALSA: usb-audio: silence a superfluous warning fix comnment/printk typos concerning "empty" ALSA: usb - Correct audio problem for Hauppage HVR-850 and others rel. to urb data align ALSA: sound/usb/format: silence uninitialized variable warnings ALSA: usb: USB3 SuperSpeed sound support ALSA: usb-audio: Assume first control interface is for audio ALSA: usb-audio: fix detection of vendor-specific device protocol settings ALSA: usb - Release capture substream URBs properly ALSA: usb-audio: add Edirol PCR-1 PCM support ALSA: usb-audio: add Roland A-PRO support ALSA: usb-audio: add BOSS ME-25 support ALSA: usb-audio: fix Fast Track Ultra (8R) 44.1 sample rates ALSA: snd-usb-caiaq: drop version number ALSA: snd-usb-caiaq: Add support for Traktor Kontrol S4 ALSA: usb-audio: add more Yamaha USB MIDI devices ALSA: usb-audio - Fix an unused-variable compile warning ALSA: usb/mixer: remove bogus cast ALSA: sound/usb/usx2y: simplify conditional ALSA: usb-audio: add Novation Launchpad support ALSA: usb - Creative USB X-Fi volume knob support ALSA: usb-audio: automatically detect feedback format ALSA: usb - driver neglects kmalloc return value check and may deref NULL ALSA: usb-audio - Support for Power/Status LED on Creative USB X-Fi S51 sound: fixed typos ALSA: usb-audio: use enum control info helper ALSA: usb-audio: add Edirol SD-90 PCM support ALSA: snd-usb-us122l: Fix MIDI output ALSA: snd-usb-us122l: Fix missing NULL checks ALSA: usb/6fire - Driver for TerraTec DMX 6Fire USB ALSA: usb-audio: add Cakewalk UM-1G support ALSA: usbaudio - Enable the E-MU 0204 USB ALSA: snd-usb-caiaq: Add support for Traktor Audio 2 ALSA: usb-audio: add support for Native Instruments MK2 devices ALSA: usb-audio: reconstruct some dispatcher functions to use switch-case ALSA: usb-audio: fix oops due to cleanup race when disconnecting ALSA: usb-audio - Add volume range check and warn if it too big ALSA: usb-audio - Add "cval->res = 384" quirk for Logitech Webcam C600 ALSA: usbaudio: fix suspend/resume ALSA: usbaudio: implement USB autosuspend ALSA: usb - Remove trailing spaces from USB card name strings ALSA: usb-audio - Support for Boss JS-8 Jam Station ALSA: usb-audio: define another USB ID for a buggy USB MIDI cable ALSA: usb-audio: Add quirks for Audio Kontrol 6 ALSA: usb-audio - Don't expose broken dB ranges ALSA: usb-audio - Terratec Aureon 7.1 USB ID as C-Media cm6206 quirks ALSA: usb-audio: make hwc_debug a noop in case HW_CONST_DEBUG is not set ALSA: usb-audio: include format.h in format.c ALSA: usb-audio: remove invalid extra mixers for Komplete Audio 6 ALSA: usb-audio: Add quirk for KORG PANDORA PX5D MIDI interface ALSA: usb-audio: add quirks for Roland GR-55 ALSA: usb-audio: assume valid clock ALSA: usb-audio: handle "Fast Track Ultra" with USB_DEVICE_VENDOR_SPEC() ALSA: usb-audio - Add support for USB X-Fi S51 Pro ALSA: usb-audio: move assignment of chip->ctrl_intf ALSA: usb-audio: rework add_control_to_empty() ALSA: usb-audio: export snd_usb_feature_unit_ctl ALSA: usb-audio: add new quirk type QUIRK_AUDIO_STANDARD_MIXER ALSA: usb-audio: more control quirks for M-Audio FastTrack devices ALSA: usb - turn off de-emphasis in s/pdif for cm6206 ALSA: usb-audio: replace "void *" with more specific pointers ALSA: usb-audio - Add quirks for M-Audio Fast Track Pro and Quattro ALSA: usb-audio - Add quirk for Roland / BOSS BR-800 ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6 ALSA: snd-usb: avoid dividing by zero on invalid input ALSA: snd-usb: operate on given mixer interface only ALSA: usb-audio - add quirk for Keith McMillen StringPort ALSA: snd-usb: Fix uninitialized variable usage ALSA: snd-usb-caiaq: Fix keymap for RigKontrol3 ALSA: usb-audio - Add quirk for BOSS Micro BR-80 ALSA: snd-usb-caiaq: Correct offset fields of outbound iso_frame_desc ALSA: snd_usb_caiaq: track submitted output urbs ALSA: usb-audio - Fix missing mixer dB information ALSA: usb-audio - Check the dB-range validity in the later read, too ALSA: usb-audio: add Starr Labs USB MIDI support ALSA: usb: refine delay information with USB frame counter ALSA: snd-usb: re-order the Makefile ALSA: snd-usb: re-order code ALSA: snd-usb: move code from urb.c to endpoint.c ALSA: usb-audio: Added support for Roland UM-ONE midi-usb interface ALSA: usb-audio - clear chip->probing on error exit ALSA: usb-audio: Check for possible chip NULL pointer before clearing probing flag ALSA: usb-audio: increase control transfer timeout ALSA: snd-usb-caiaq: Fix NULL dereference in input.c ALSA: snd-usb-caiaq: Add support for Maschine ALSA: usb-audio - Fix possible access over audio_feature_info[] array ALSA: usb-audio - Fix the missing volume quirks at delayed init ALSA: snd_usb_audio: add Logitech HD Webcam c510 to quirk-384 ALSA: usb-audio: Use kmemdup rather than duplicating its implementation ALSA: usb-audio - Support for Roland GAIA SH-01 Synthesizer ALSA: snd-usb: added VOX ToneLab ST midi handling ALSA: usb-audio: add Yamaha MOX6/MOX8 support USB: convert sound/* to use module_usb_driver() ALSA: usb-audio: fix possible hang and overflow in parse_uac2_sample_rate_range() ALSA: snd-usb-us122l: Delete calls to preempt_disable ALSA: usb-audio - Avoid flood of frame-active debug messages ALSA: usb-audio: add Edirol UM-3G support ALSA: usb-audio: avoid integer overflow in create_fixed_stream_quirk() ALSA: snd-usb-caiaq: Fix the return of XRUN ALSA: usx2y: Fix typo in usbusx2yaudio.c and usx2yhwdeppcm.c ALSA: usb-audio - Fix build error by consitification of rate list ALSA: snd-usb: add snd_usb_audio-wide mutex ALSA: snd-usb: implement new endpoint streaming model ALSA: snd-usb: switch over to new endpoint streaming logic ALSA: snd-usb: remove old streaming logic ALSA: snd-usb: add support for implicit feedback ALSA: snd-usb: add some documentation ALSA: usb: Remove unused variable ALSA: usb: Fix fill_max flag set ALSA: usb: Remove obsoleted fields from struct snd_usb_substream ALSA: snd-usb-audio: Skip un-parseable mixer units instead of erroring ALSA: snd-usb-audio: Replace mixer for Electrix Ebox-44 ALSA: snd-usb: remove refactorization left-overs ALSA: usb-audio: Unify M-Audio Fast Track Ultra and Ebox-44 mixer quirks. ALSA: usb-audio: Rename and export mixer_vol_tlv ALSA: usb-audio: Add TLV to M-Audio Fast Track Ultra controls ALSA: usb-audio: Rename Fast Track Ultra mixer quirk functions ALSA: usb-audio: M-Audio Fast Track Ultra: Add effect controls ALSA: usb-audio: Add missing error checks in snd_ebox44_create_mixer() ALSA: usb-audio: sound/usb/endpoint.c: suppress warning ALSA: snd-usb: fix some typos in endpoint.c documentation ALSA: usb-audio: Fix comment ALSA: usb-audio - Call get_min_max_*() after determining the name string ALSA: snd-usb: fix stream info output in /proc ALSA: usb-audio: fix rate_list memory leak ALSA: usb-audio: Fix substream assignments ALSA: snd-usb: fix sync pipe check ALSA: snd-usb: make snd_usb_substream_capture_trigger static ALSA: usb-audio: Use a table of mixer controls ALSA: usb-audio: Convert table to preferred C99 format ALSA: snd_usb_audio: ignore ctrl errors on QuickCam E3500 ALSA: snd_usb_audio: ignore ctrl errors on QuickCam Pro for Notebooks ALSA: usb-audio: add BOSS GT-100 support ALSA: usb-audio: Fix the first PCM interface assignment ALSA: snd-usb: move calls to usb_set_interface ALSA: snd-usb-caiaq: initialize card pointer ALSA: snd-usb: fix clock source validity index ALSA: usb-audio: Fix scheduling-while-atomic bug in PCM capture stream ALSA: usb-audio: Remove obsoleted fields in struct snd_usb_substream ALSA: snd-usb: Fix URB cancellation at stream start ALSA: snd-usb: use list_for_each_safe for endpoint resources ALSA: snd-usb: restore delay information ALSA: snd-usb: fix calls to next_packet_size ALSA: snd-usb: fix cross-interface streaming devices ALSA: USB: Support for (original) Xbox Communicator ALSA: snd-usb: Add quirks for Playback Designs devices ALSA: usb-audio: Fix bogus error messages for delay accounting ALSA: usb-audio: set period_bytes in substream. ALSA: usb-audio: Don't require hw_params in endpoint. ALSA: usb-audio: Move configuration to prepare. ALSA: usb-audio: Avoid unnecessary EP setups in prepare ALSA: snd-usb-6fire: remove driver version information ALSA: 6fire - Add support of digital-thru mixer ALSA: snd-usb-6fire: add tlv to controls ALSA: snd-usb-6fire: add individual volume control for analog channels ALSA: snd-usb-6fire: add mute control for analog outputs ALSA: snd-usb-6fire: add analog input volume control ALSA: 6fire - Improve firmware loader ALSA: 6fire: use the kernel's built-in bit reverse table ALSA: 6fire: Don't leak firmware in error path ALSA: 6fire: Fix double-free bug in usb6fire_fw_ezusb_upload() ALSA: 6fire: don't use custom hex_to_bin() ALSA: 6fire: use NULL instead of 0 for pointer assignment ALSA: print small buffers via %*ph[C] ALSA: usb - disable broken hw volume for Tenx TP6911 ALSA: USB: 6fire: signedness bug in usb6fire_pcm_prepare() ALSA: 6fire - Fix pcm rate assignment ALSA: 6fire - Add support for S32_LE format ALSA: 6fire - Fix signedness bug ALSA: ua101: remove experimental status ALSA: 6fire - Update kernel configuration ALSA: snd-usb-6fire: Select missing SND_VMASTER option in Kconfig ALSA: ua101: fix crash when unplugging ALSA: usb - use old usb_buffer_alloc()/usb_buffer_free() fcns ALSA: core, oxygen, virtuoso: add an enum control info helper sound: pcm: add vmalloc buffer helper functions sound: ua101: use vmalloc buffer helper functions ALSA: pcm - Call pgprot_noncached() for vmalloc'ed buffers USB: Add endpoint usage definitions to ch9.h RHEL: Enable ALSA "TerraTec DMX 6Fire USB" and "Edirol UA-101/UA-1000" drivers Patch(es) available on kernel-2.6.32-330.el6 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2013-0496.html |
Created attachment 469850 [details] alsa-info output Description of problem: If you attach a USB headset, PulseAudio gives it a very low volume. gnome-sound-properties seems unable to raise this volume effectively higher. The only way to get the volume up is to use alsamixer -Dhw -c1 and raise the master volume from there. This, of course, does not persist across reboots. Version-Release number of selected component (if applicable): pulseaudio-0.9.21-13.el6.x86_64 How reproducible: Always Steps to Reproduce: 1. Plug in any USB headset 2. Attempt to use a soft phone application such as Twinkle and see how low your audio is 3. Look at alsamixer -Dhw -c1 and raise the volume up Actual results: The volume is set very low. Expected results: The default volume should be configured to a reasonable level. Additional info: Changing /etc/pulse/default.pa to flat-volumes = no doesn't fix this. You could save the settings with alsactl store, but this doesn't help. If you install pavumixer (from Fedora), you can configure these volume levels as well. Attached is the output of alsa-info from an affected system.