Automatically detecting (and applying) applicable audio hardware quirks on x86

Registered by Daniel T Chen

Problem statement: There are still too many sound hardwares that don't work OOTB with Ubuntu. As much as possible, we should prevent user prompting and make the user's local infrastructure gather and, if possible, detect and apply workarounds. (Future work could include automating the conversion of workarounds into patches, the filing of bugs using Launchpad, and the generating of git changesets to push upstream.)

Henceforth we refer to "the user's local infrastructure" as "the utility", which will include the use of existing upstream tools such as hda-verb.

Blueprint information

Status:
Not started
Approver:
Marjo F. Mercado
Priority:
Undefined
Drafter:
Daniel T Chen
Direction:
Needs approval
Assignee:
Daniel T Chen
Definition:
Discussion
Series goal:
Proposed for maverick
Implementation:
Not started
Milestone target:
milestone icon maverick-alpha-3

Related branches

Sprints

Whiteboard

Use cases:
Dan's laptop's internal microphone isn't working because of an incorrect VREF setting. The utility detects the unsupported PCI SSID and applies an hda-verb command. Dan is happy because his internal mic now works. (Optionally, an extra init-verb and reconfig command are written to sysfs.)

Jane's laptop's internal speakers don't mute when she inserts headphones into the jack. The utility detects the unsupported PCI SSID and applies a module quirk via sysfs. After rebooting, Jane is happy because her laptop's internal speakers mute when she inserts headphones.

Karen's laptop's internal speakers distort whenever she listens to music or watches video. The utility detects a missing 0 dB cap for her HDA codec SSID and applies an hda-verb command. Karen is happy because her sound is no longer distorted under normal playback conditions. (Optionally, a git changeset is generated for sound-2.6 master HEAD.)

John's laptop's sound seems to always disappear whenever he tries to play music or watch a video. The utility detects the broken controller and writes a module option to a module-init-tools configuration file that is effected on next reboot. John is happy because his sound no longer disappears whenever he tries to play music or watch videos.

David Henningsson, 2010-05-11:
Sounds good, a few questions:
1) How does this relate to the kernel-devicetree-quirks spec? Are we duplicating efforts here?
2) Is this "utility" supposed to look at an online hw database, and how do we put information in that database?

Dan, 2010-05-11:
1) Haven't sat in on discussion of said spec, so would be nice to get more info on it
2) No, it would only parse /proc/asound/card*/codec* for known issues. Storing known issues in a flat file would suffice.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.