diff options
Diffstat (limited to 'Documentation/sound/alsa/HD-Audio.txt')
| -rw-r--r-- | Documentation/sound/alsa/HD-Audio.txt | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Documentation/sound/alsa/HD-Audio.txt b/Documentation/sound/alsa/HD-Audio.txt index 71ac995b1915..7b8a5f947d1d 100644 --- a/Documentation/sound/alsa/HD-Audio.txt +++ b/Documentation/sound/alsa/HD-Audio.txt | |||
| @@ -139,6 +139,10 @@ The driver checks PCI SSID and looks through the static configuration | |||
| 139 | table until any matching entry is found. If you have a new machine, | 139 | table until any matching entry is found. If you have a new machine, |
| 140 | you may see a message like below: | 140 | you may see a message like below: |
| 141 | ------------------------------------------------------------------------ | 141 | ------------------------------------------------------------------------ |
| 142 | hda_codec: ALC880: BIOS auto-probing. | ||
| 143 | ------------------------------------------------------------------------ | ||
| 144 | Meanwhile, in the earlier versions, you would see a message like: | ||
| 145 | ------------------------------------------------------------------------ | ||
| 142 | hda_codec: Unknown model for ALC880, trying auto-probe from BIOS... | 146 | hda_codec: Unknown model for ALC880, trying auto-probe from BIOS... |
| 143 | ------------------------------------------------------------------------ | 147 | ------------------------------------------------------------------------ |
| 144 | Even if you see such a message, DON'T PANIC. Take a deep breath and | 148 | Even if you see such a message, DON'T PANIC. Take a deep breath and |
| @@ -403,6 +407,66 @@ re-configure based on that state, run like below: | |||
| 403 | ------------------------------------------------------------------------ | 407 | ------------------------------------------------------------------------ |
| 404 | 408 | ||
| 405 | 409 | ||
| 410 | Early Patching | ||
| 411 | ~~~~~~~~~~~~~~ | ||
| 412 | When CONFIG_SND_HDA_PATCH_LOADER=y is set, you can pass a "patch" as a | ||
| 413 | firmware file for modifying the HD-audio setup before initializing the | ||
| 414 | codec. This can work basically like the reconfiguration via sysfs in | ||
| 415 | the above, but it does it before the first codec configuration. | ||
| 416 | |||
| 417 | A patch file is a plain text file which looks like below: | ||
| 418 | |||
| 419 | ------------------------------------------------------------------------ | ||
| 420 | [codec] | ||
| 421 | 0x12345678 0xabcd1234 2 | ||
| 422 | |||
| 423 | [model] | ||
| 424 | auto | ||
| 425 | |||
| 426 | [pincfg] | ||
| 427 | 0x12 0x411111f0 | ||
| 428 | |||
| 429 | [verb] | ||
| 430 | 0x20 0x500 0x03 | ||
| 431 | 0x20 0x400 0xff | ||
| 432 | |||
| 433 | [hint] | ||
| 434 | hp_detect = yes | ||
| 435 | ------------------------------------------------------------------------ | ||
| 436 | |||
| 437 | The file needs to have a line `[codec]`. The next line should contain | ||
| 438 | three numbers indicating the codec vendor-id (0x12345678 in the | ||
| 439 | example), the codec subsystem-id (0xabcd1234) and the address (2) of | ||
| 440 | the codec. The rest patch entries are applied to this specified codec | ||
| 441 | until another codec entry is given. | ||
| 442 | |||
| 443 | The `[model]` line allows to change the model name of the each codec. | ||
| 444 | In the example above, it will be changed to model=auto. | ||
| 445 | Note that this overrides the module option. | ||
| 446 | |||
| 447 | After the `[pincfg]` line, the contents are parsed as the initial | ||
| 448 | default pin-configurations just like `user_pin_configs` sysfs above. | ||
| 449 | The values can be shown in user_pin_configs sysfs file, too. | ||
| 450 | |||
| 451 | Similarly, the lines after `[verb]` are parsed as `init_verbs` | ||
| 452 | sysfs entries, and the lines after `[hint]` are parsed as `hints` | ||
| 453 | sysfs entries, respectively. | ||
| 454 | |||
| 455 | The hd-audio driver reads the file via request_firmware(). Thus, | ||
| 456 | a patch file has to be located on the appropriate firmware path, | ||
| 457 | typically, /lib/firmware. For example, when you pass the option | ||
| 458 | `patch=hda-init.fw`, the file /lib/firmware/hda-init-fw must be | ||
| 459 | present. | ||
| 460 | |||
| 461 | The patch module option is specific to each card instance, and you | ||
| 462 | need to give one file name for each instance, separated by commas. | ||
| 463 | For example, if you have two cards, one for an on-board analog and one | ||
| 464 | for an HDMI video board, you may pass patch option like below: | ||
| 465 | ------------------------------------------------------------------------ | ||
| 466 | options snd-hda-intel patch=on-board-patch,hdmi-patch | ||
| 467 | ------------------------------------------------------------------------ | ||
| 468 | |||
| 469 | |||
| 406 | Power-Saving | 470 | Power-Saving |
| 407 | ~~~~~~~~~~~~ | 471 | ~~~~~~~~~~~~ |
| 408 | The power-saving is a kind of auto-suspend of the device. When the | 472 | The power-saving is a kind of auto-suspend of the device. When the |
