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.