- 15 6月, 2018 1 次提交
-
-
由 Jorge Sanjuan 提交于
Change build_connector_control() and get_connector_control_name() so they take `struct usb_mixer_interface` as input argument instead of `struct mixer_build`. This is preliminary work to add support for connectors control for UAC3 BADD devices. No functional change. Signed-off-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 13 6月, 2018 3 次提交
-
-
由 Jussi Laako 提交于
Remove explicitly listed Mytek devices covered by the more generic DSD detection method. Signed-off-by: NJussi Laako <jussi@sonarnerd.net> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Jussi Laako 提交于
Use more generic method to detect DSD capability of XMOS-based UAC2 implementations in order to support future devices without having to explicitly list every device separately. Signed-off-by: NJussi Laako <jussi@sonarnerd.net> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Jussi Laako 提交于
Add new mostly generic code with Mytek VID to support native DSD mode. This implementation should be easier to maintain when manufacturers release new products. Signed-off-by: NJussi Laako <jussi@sonarnerd.net> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 12 6月, 2018 1 次提交
-
-
由 Takashi Iwai 提交于
The commit 33193dca ("ALSA: usb-audio: Add a quirk for Nura's first gen headset") added a quirk for Nura headset with USB ID 0a12:1243, with a hope that it doesn't conflict with others. Unfortunately, other devices (e.g. Philips Wecall) with the very same ID got broken by this change, spewing an error like: usb 2-1.8.2: 2:1: cannot set freq 48000 to ep 0x3 Until we find a proper solution, fix the regression at first by disabling the added quirk entry. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199905 Fixes: 33193dca ("ALSA: usb-audio: Add a quirk for Nura's first gen headset") Reviewed-by: NMartin Peres <martin.peres@free.fr> Cc: <stable@vger.kernel.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 04 6月, 2018 1 次提交
-
-
由 Colin Ian King 提交于
The check on err is redundant as both the true and false paths end up on a break statement. Remove the redundant check. Detected by CoverityScan, CID#1268773 ("Identical code for different branches") Signed-off-by: NColin Ian King <colin.king@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 29 5月, 2018 1 次提交
-
-
由 Takashi Iwai 提交于
Currently, USB-audio driver allocates the PCM buffer via vmalloc(), as this serves merely as an intermediate buffer that is copied to each URB transfer buffer. This works well in general on x86, but on some archs this may result in cache coherency issues when mmap is used. OTOH, it works also on such arch unless mmap is used. This patch is a step for mitigating the inconvenience; a new module option "use_vmalloc" is provided so that user can choose to allocate the DMA coherent buffer instead of the existing vmalloc buffer. The drawback is that it'd be the standard dma_alloc_coherent() calls and the system would require contiguous pages on non-x86 archs. Note that it's a global option and not dynamically switchable since the buffer is pre-allocated at the probe time. In theory, it's possible to be switchable, but it'd be trickier and racier. As default use_vmalloc option is set to true, so that the old behavior is kept. For allowing the coherent mmap on ARM or MIPS, pass use_vmalloc=0 option explicitly. Reported-and-tested-by: NDaniel Danzberger <daniel@dd-wrt.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 28 5月, 2018 4 次提交
-
-
由 Takashi Iwai 提交于
Simplify the device management by replacing the lowlevel device object allocation with the card->private_data. Nowadays there is almost no advantage by the lowlevel device, and with card->private_data, the code becomes cleaner. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Avoid if ((err = ...) style and expand to multiple lines instead. No change in the end result, but just the beautification. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
... so that we can avoid the extra goto lines. Also beautify the code to follow the standard codex. No functional changes. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The stream direction in open and close callbacks can be retrieved from substream->direction, hence we don't have to stick with the unique PCM ops hard-coded for each direction. Rewrite the common open/close callback functions. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 24 5月, 2018 1 次提交
-
-
由 Takashi Iwai 提交于
Drop the superfluous #ifndef checks that had been put just for allowing building the alsa-driver kernel modules externally. Since the external build was discontinued years ago, let's clean up the old kludges. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 18 5月, 2018 1 次提交
-
-
由 Ruslan Bilovol 提交于
UAC3 channel map is created during interface parsing, and in some cases was not freed in failure paths. Reported-by: NDan Carpenter <dan.carpenter@oracle.com> Signed-off-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 17 5月, 2018 1 次提交
-
-
由 Takashi Iwai 提交于
retire_capture_urb() may print warning messages when the given URB doesn't align, and this may flood the system log easily. Put the rate limit to the message for avoiding it. Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1093485Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 15 5月, 2018 4 次提交
-
-
由 Jorge Sanjuan 提交于
Obtain the number of channels for the Input Terminal from the Logical Cluster Descriptor. This achieves a useful minimal parsing of this unit so it can be used in other units in the topology. Signed-off-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> Reviewed-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Tested-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Jorge Sanjuan 提交于
This adds support for the UAC3 insertion controls. The status is reported as a boolean value in the same way it used to do for UAC2. Hence, the presence of any connector in the response will make the control saying the jack is connected. The UAC2 support for this control has been moved to a dedicated control for connectors as both UAC2 and UAC3 follow a specific Control Request Parameter Block for this control. This parameter block for UAC3 could not be read in the same simplistic manner as in UAC2. This implementation is not requesting additional information from the HIGH CAPABILITY Connectors descriptor. Tested with an UAC3 device with UAC2 as legacy configuration. The connector status can be read with `amixer` and the interrupt is also caught with `alsactl monitor`. Signed-off-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> Reviewed-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Tested-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Jorge Sanjuan 提交于
This adds support for the MIXER UNIT in UAC3. All the information is obtained from the (HIGH CAPABILITY) Cluster's header. We don't read the rest of the logical cluster to obtain the channel config as that wont make any difference in the current mixer behaviour. The name of the mixer unit is not yet requested as there is not support for the UAC3 Class Specific String requests. Tested in an UAC3 device working as a HEADSET with a basic mixer unit (same as the one in the BADD spec) with no controls. Signed-off-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> Reviewed-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Tested-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Jorge Sanjuan 提交于
bmAtributes offset doesn't exist in the UAC3 CS_EP descriptor. Hence, checking for pitch control as if it was UAC2 doesn't make any sense. Use the defined UAC3 offsets instead. Fixes: 9a2fe9b8 ("ALSA: usb: initial USB Audio Device Class 3.0 support") Signed-off-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> Reviewed-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 14 5月, 2018 1 次提交
-
-
由 Federico Cuello 提交于
Currently it's not possible to set volume lower than 26% (it just mutes). Also fixes this warning: Warning! Unlikely big volume range (=9472), cval->res is probably wrong. [13] FU [PCM Playback Volume] ch = 2, val = -9473/-1/1 , and volume works fine for full range. Signed-off-by: NFederico Cuello <fedux@fedux.com.ar> Cc: <stable@vger.kernel.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 13 5月, 2018 2 次提交
-
-
由 Alberto Aguirre 提交于
Wait for Axe-Fx III to fully bootup before initializing card. Signed-off-by: NAlberto Aguirre <albaguirre@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Ruslan Bilovol 提交于
Recently released USB Audio Class 3.0 specification contains BADD (Basic Audio Device Definition) document which describes pre-defined UAC3 configurations. BADD support is mandatory for UAC3 devices, it should be implemented as a separate USB device configuration. As per BADD document, class-specific descriptors shall not be included in the Device’s Configuration descriptor ("inferred"), but host can guess them from BADD profile number, number of endpoints and their max packed sizes. This patch adds support of all BADD profiles from the spec Signed-off-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Tested-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 04 5月, 2018 5 次提交
-
-
由 Ruslan Bilovol 提交于
Functions like snd_usb_copy_string_desc() or get_term_name() don't actually need mixer_build state but can use snd_usb_audio structure instead to get usb device. This patch has no functional change but prepares to future UAC3 BADD profiles support which don't have class-specific descriptors so won't have mixer_build state. Signed-off-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Jorge Sanjuan 提交于
The control header needs to be read from buffer at this point only in the case of UAC1 protocol. Move it inside the switch case as other protocols such as the Basic Audio Device spec will have an empty buffer that is latter filled as inferred. Signed-off-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> [Ruslan: updated with recently added sanity checks] Signed-off-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Ruslan Bilovol 提交于
Offload snd_usb_parse_audio_interface() function which became quite long after adding UAC3 spec support. Move class-specific parts of uac3 parsing to separate function which now produce audioformat structure that is ready to be fed to snd_usb_add_audio_stream(). Signed-off-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Ruslan Bilovol 提交于
Offload snd_usb_parse_audio_interface() function which became quite long after adding UAC3 spec support. Move class-specific parts of uac1/2 parsing to separate function which now produce audioformat structure that is ready to be fed to snd_usb_add_audio_stream(). This also broke Blue Microphones workaround (which relies on audioformat decoded from previous altsetting) into two parts: prepare quirk flag analyzing previous altsetting then use it with current altsetting. Signed-off-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Ruslan Bilovol 提交于
Offload snd_usb_parse_audio_interface() function which became quite long after adding UAC3 spec support. Move audioformat allocation and initialization into separate function, this will make easier future refactoring. Attributes left in the original func because it'll be used for UAC3 BADD profiles suport in the future There is no functional change. Signed-off-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 03 5月, 2018 1 次提交
-
-
由 Takashi Iwai 提交于
Introduce a new macro for iterating over mixer element list for avoiding the open codes in many places. Also the open-coded container_of() and the forced cast to struct usb_mixer_elem_info are replaced with another simple macro, too. No functional changes but just readability improvement. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 02 5月, 2018 6 次提交
-
-
由 Takashi Iwai 提交于
Dell WD15 Dock with 0bda:4014 doesn't give any useful strings for the vendor and the product names. Name them more specifically via quirk, as well as the UCM profile name. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Historically USB-audio driver sets the card's longname field with the details of the device and the bus information. It's good per se, but not preferable when it's referred as the identifier for UCM profile. This patch adds a quirk profile_name field to override the card's longname string to a pre-defined one, so that one can create a unique and consistent ID string for the specific USB device via a quirk table to be used as a UCM profile name. The patch does a slight code refactoring to split out the functions to set shortname and longname fields as well. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
This patch adds "Keep Interface" control for each USB-audio device. The control element is with SND_CTL_IFACE_CARD, so that it won't appear on any sane mixer applications. For a device that is confirmed to work well with "keep-interface" mode, user can flip the control via amixer, e.g. % amixer -c1 cset iface=CARD,name='Keep Interface' on and save/restore the state via alsactl. The reason to provide this via control API is that the behavior must be pretty depending on the device (and the firmware in it), so it's not ideal to apply via module option. For a device that certainly works, we may set it statically via a quirk table entry. But a device like Dell WD15 dock behaves so differently depending on the firmware, and we can't set it statically. So leave this as a dynamic switch each user can adjust freely. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Introduce a new flag to struct snd_usb_audio for allowing the device to skip usb_set_interface() calls at changing or closing the stream. As of this patch, the flag is nowhere set, so it's just a place holder. The dynamic switching will be added in the following patch. A background information for this change: Dell WD15 dock with Realtek chip gives a very long pause at each time the driver changes the altset, which eventually happens at every PCM stream open/close and parameter change. As the long pause happens in each usb_set_interface() call, there is nothing we can do as long as it's called. The workaround is to reduce calling it as much as possible, and this flag indicates that behavior. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
This is a preliminary change for the upcoming quirk implementation. Currently USB-audio driver tries to call usb_set_interface() whenever the format change with interface/altset modification happens. In this patch, the check is replaced with the comparison of cur_altsetting and the targeted altsetting pointer, so that the driver may skip the unnecessary function calls. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
In the early commit adcdd0d5 ("ALSA: usb-audio: Skip volume controls triggers hangup on Dell USB Dock"), we add the mixer quirks for Dell dock to skip two mixer FU's for playback. This supposed that the device has always the proper initial volume, but it doesn't seem always correct. This patch adds the explicit initialization of the volumes to the fixed 0dB at the device probe time. Also, such a fixup is needed after the resume, so a new function is hooked to the resume callback as well. Bugzilla: http://bugzilla.suse.com/show_bug.cgi?id=1089467Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 25 4月, 2018 2 次提交
-
-
由 Souptick Joarder 提交于
Use new return type vm_fault_t for fault handler. For now, this is just documenting that the function returns a VM_FAULT value rather than an errno. Once all instances are converted, vm_fault_t will become a distinct type. Commit 1c8f4220 ("mm: change return type to vm_fault_t") Signed-off-by: NSouptick Joarder <jrdr.linux@gmail.com> Reviewed-by: NMatthew Wilcox <mawilcox@microsoft.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Michael Drake 提交于
The channel mapping is defined by bChRelationship, not bChPurpose. Fixes: 9a2fe9b8 ("ALSA: usb: initial USB Audio Device Class 3.0 support") Reviewed-by: NRuslan Bilovol <ruslan.bilovol@gmail.com> Signed-off-by: NMichael Drake <michael.drake@codethink.co.uk> Signed-off-by: NJorge Sanjuan <jorge.sanjuan@codethink.co.uk> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 24 4月, 2018 2 次提交
-
-
由 Takashi Iwai 提交于
The Dell Dock USB-audio device with 0bda:4014 is behaving notoriously bad, and we have already applied some workaround to avoid the firmware hiccup. Yet we still need to skip one thing, the Extension Unit at ID 4, which doesn't react correctly to the mixer ctl access. Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1090658 Cc: <stable@vger.kernel.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The UAC2 jack detection support introduced the bmControls checks in a couple of places, but they forgot the endian conversion; the bmControls of UAC2 terminal descriptor is __le16, not a byte like in UAC1. Fixes: 5a222e84 ("ALSA: usb-audio: UAC2 jack detection") Tested-by: NAndrew Chant <achant@google.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 23 4月, 2018 2 次提交
-
-
由 Takashi Iwai 提交于
The recent code refactoring made the argument for some helper functions to be the explicit UAC_CS_* and UAC2_CS_* value instead of 0-based offset. However, there was one place left forgotten, and it caused a regression on some devices appearing as the inconsistent mixer setup. This patch corrects the forgotten conversion. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199449 Fixes: 21e9b3e9 ("ALSA: usb-audio: fix uac control query argument") Tested-by: NNazar Mokrynskyi <nazar@mokrynskyi.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Daniel Mack 提交于
Based on a downstream patch from Harry ten Berge. Signed-off-by: NDaniel Mack <daniel@zonque.org> Reported-and-tested-by: wenyi@tianyu-wool.com Original-by: NHarry ten Berge <htenberge@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 19 4月, 2018 1 次提交
-
-
由 Alberto Aguirre 提交于
The Axe-Fx III implicit feedback end point and the data sink endpoint are in different interface descriptors. Add quirk to ensure a sync endpoint is properly configured. Signed-off-by: NAlberto Aguirre <albaguirre@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-