diff options
Diffstat (limited to 'Documentation/sound/alsa/HD-Audio.txt')
-rw-r--r-- | Documentation/sound/alsa/HD-Audio.txt | 47 |
1 files changed, 42 insertions, 5 deletions
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt index 6325bec06a72..bdafdbd32561 100644 --- a/Documentation/sound/alsa/HD-Audio.txt +++ b/Documentation/sound/alsa/HD-Audio.txt | |||
@@ -119,10 +119,18 @@ the codec slots 0 and 1 no matter what the hardware reports. | |||
119 | 119 | ||
120 | Interrupt Handling | 120 | Interrupt Handling |
121 | ~~~~~~~~~~~~~~~~~~ | 121 | ~~~~~~~~~~~~~~~~~~ |
122 | In rare but some cases, the interrupt isn't properly handled as | 122 | HD-audio driver uses MSI as default (if available) since 2.6.33 |
123 | default. You would notice this by the DMA transfer error reported by | 123 | kernel as MSI works better on some machines, and in general, it's |
124 | ALSA PCM core, for example. Using MSI might help in such a case. | 124 | better for performance. However, Nvidia controllers showed bad |
125 | Pass `enable_msi=1` option for enabling MSI. | 125 | regressions with MSI (especially in a combination with AMD chipset), |
126 | thus we disabled MSI for them. | ||
127 | |||
128 | There seem also still other devices that don't work with MSI. If you | ||
129 | see a regression wrt the sound quality (stuttering, etc) or a lock-up | ||
130 | in the recent kernel, try to pass `enable_msi=0` option to disable | ||
131 | MSI. If it works, you can add the known bad device to the blacklist | ||
132 | defined in hda_intel.c. In such a case, please report and give the | ||
133 | patch back to the upstream developer. | ||
126 | 134 | ||
127 | 135 | ||
128 | HD-AUDIO CODEC | 136 | HD-AUDIO CODEC |
@@ -196,7 +204,6 @@ generic parser regardless of the codec. Usually the codec-specific | |||
196 | parser is much better than the generic parser (as now). Thus this | 204 | parser is much better than the generic parser (as now). Thus this |
197 | option is more about the debugging purpose. | 205 | option is more about the debugging purpose. |
198 | 206 | ||
199 | |||
200 | Speaker and Headphone Output | 207 | Speaker and Headphone Output |
201 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 208 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
202 | One of the most frequent (and obvious) bugs with HD-audio is the | 209 | One of the most frequent (and obvious) bugs with HD-audio is the |
@@ -452,6 +459,33 @@ Similarly, the lines after `[verb]` are parsed as `init_verbs` | |||
452 | sysfs entries, and the lines after `[hint]` are parsed as `hints` | 459 | sysfs entries, and the lines after `[hint]` are parsed as `hints` |
453 | sysfs entries, respectively. | 460 | sysfs entries, respectively. |
454 | 461 | ||
462 | Another example to override the codec vendor id from 0x12345678 to | ||
463 | 0xdeadbeef is like below: | ||
464 | ------------------------------------------------------------------------ | ||
465 | [codec] | ||
466 | 0x12345678 0xabcd1234 2 | ||
467 | |||
468 | [vendor_id] | ||
469 | 0xdeadbeef | ||
470 | ------------------------------------------------------------------------ | ||
471 | |||
472 | In the similar way, you can override the codec subsystem_id via | ||
473 | `[subsystem_id]`, the revision id via `[revision_id]` line. | ||
474 | Also, the codec chip name can be rewritten via `[chip_name]` line. | ||
475 | ------------------------------------------------------------------------ | ||
476 | [codec] | ||
477 | 0x12345678 0xabcd1234 2 | ||
478 | |||
479 | [subsystem_id] | ||
480 | 0xffff1111 | ||
481 | |||
482 | [revision_id] | ||
483 | 0x10 | ||
484 | |||
485 | [chip_name] | ||
486 | My-own NEWS-0002 | ||
487 | ------------------------------------------------------------------------ | ||
488 | |||
455 | The hd-audio driver reads the file via request_firmware(). Thus, | 489 | The hd-audio driver reads the file via request_firmware(). Thus, |
456 | a patch file has to be located on the appropriate firmware path, | 490 | a patch file has to be located on the appropriate firmware path, |
457 | typically, /lib/firmware. For example, when you pass the option | 491 | typically, /lib/firmware. For example, when you pass the option |
@@ -565,6 +599,9 @@ probing, the proc file is available, so you can get the raw codec | |||
565 | information before modified by the driver. Of course, the driver | 599 | information before modified by the driver. Of course, the driver |
566 | isn't usable with `probe_only=1`. But you can continue the | 600 | isn't usable with `probe_only=1`. But you can continue the |
567 | configuration via hwdep sysfs file if hda-reconfig option is enabled. | 601 | configuration via hwdep sysfs file if hda-reconfig option is enabled. |
602 | Using `probe_only` mask 2 skips the reset of HDA codecs (use | ||
603 | `probe_only=3` as module option). The hwdep interface can be used | ||
604 | to determine the BIOS codec initialization. | ||
568 | 605 | ||
569 | 606 | ||
570 | hda-verb | 607 | hda-verb |