ALC4080 - general discussion (driver support)

alsa-project/alsa-ucm-conf issue #541 was edited from perexg:
UCM cannot add basic functionalities when the driver does not expose them. I already explained situation in [kernel bugzilla](https://bugzilla.kernel.org/show_bug.cgi?id=218913).
**Note**
This issue is for the kernel driver related problems. If the driver works and something is missing in UCM configuration, please, create a new issue in this tracker. It may be difficult to distinguish the right place, but if the developers redirected you here, follow the instructions bellow.
**For issues like**
1. jack functionality assignment is unstable (jack functionality is not fixed - e.g. changes on warm reboot from windows) 2. low microphone volume (which cannot be controlled using native ALSA mixer controls) 3. sound is activated only after some magic plug/unplug sequence
**Further steps**
Try to analyze the audio driver using direct ALSA API. See [DEBUG.md](https://github.com/alsa-project/alsa-ucm-conf/blob/master/ucm2/DEBUG.md). Very nice report is in #528. Please, use it as a reference what to do.
Reverse engineering of the Windows driver. Capture USB communication and save it to a file which can be replayed by [wireshark](https://www.wireshark.org). Try to write an explanation including timing (what happened in given time slots).
Driver reports should go to [kernel bugzilla](https://bugzilla.kernel.org). Add a comment with a link here.
You may also push hardware vendors to create USB device which fully follows the USB audio specification, so the ALSA driver will work out-of-box (without "quirks").
**Documentation links**
The documentation is not complete. Realtek support is generally very limited to provide full specification to their codecs / audio chips those years. They are providing details only to hardware vendors with a contract. If you know more, please, let us know.
- [ALC4080 block scheme](https://bugzilla.kernel.org/attachment.cgi?id=306370) - [ALC4080 datasheet](https://bugzilla.kernel.org/attachment.cgi?id=307224)
**Some details**
ALC4080 is USB codec, thus it exposes functionality through the USB bus. The block scheme is nice to know internals, but look to the MCU paragraph in the datasheet:
``` 2.1.2. Micro Controller Unit - On-chip high-performance and low-power MCU - Ultra-low power consumption when MCU is at idle state - MCU controls connection to USB bus for re-enumeration without hot-plug - Internal programmable memory support for customized audio function - Watchdog control for MCU reset and interrupt - Configurable VID (Vendor ID), PID (Product ID), and serial number string ```
This means, that the internal firmware for this MCU unit can change the behaviour of audio hardware. Usually, the firmware is vendor specific.
The USB audio hardware should comply with the USB Audio specification (refer https://www.usb.org/). The control units parsed by the ALSA driver can be obtained using 'cat /proc/asound/cardX/usbmixer' command (replace X with the correct ALSA card number). Those units are mapped to the standard mixer controls.
My guess is that the firmware is not complaint with the USB audio specification and some functionality is controlled using specific USB handshake (data blocks).
Issue URL : https://github.com/alsa-project/alsa-ucm-conf/issues/541 Repository URL: https://github.com/alsa-project/alsa-ucm-conf
participants (1)
-
GitHub issues - edited