Config Files
============

The config files defining the codec information are stored in
$LIB/hda-config/config directory.  The config files must have the
extension ".conf", and should start with two digit numbers to
represent the priority.  For example, "45-my-own.conf".

A config file contains the following lines:

  # COMMENTS
  VID:DID:SVID:SDID:REV:PVID:PSID MODULE [ARGS...]
  VID:DID:SVID:SDID:REV:PVID:PSID MODULE [ARGS...]
  ...

where
  - VID is the codec vendor id (16bit),
  - DID the codec device id (16bit),
  - SVID the codec subsystem vendor id (16bit),
  - SDID the codec subsystem device id (16bit),
  - REV the codec revision (32bit),
  - PVID the PCI subsystem vendor id (16bit),
  - PSID the PCI subsystem device id (16bit).

You can pass the hex number (without 0x) in each field, or "*" letter
as a wildcard meaning to match everything.  When the fields are
omitted, the rest fields are assumed to be wildcards.

You can specify the bitmask for each field by using a slash followed
by the mask.  For example, 12a0/fff0 matches the all values containing
0x12a0 in MSB 12bits and the LSB 8bits are ignored.

The MODULE field represents the module name to be loaded.  This must be
without *.so extension.  The modules are searched from the directory
$LIB/hda-config/modules.

The rest fields are additional arguments.  There are two standard
arguments handled in prior loading the module:

- preset=PRESET

  Specifies the preset (model) name for the given condition.
  What preset is available and how it influences depend on the
  module.

- init=INIT

  Specifies the additional initializations.  The file $INIT.init
  is loaded before processing the module, which is located also on
  $LIB/hda-config/config directory.  See the section below.

When the module can't initialize the hardware properly, the parser
proceeds to the next matching entry until all config files are
processed.


Init Files
==========

The init files (*.init) are for initializing the hardware
additionally, for example, setting up the default pin config verbs for
broken BIOS, or issuing some verbs that the module doesn't handle
properly.

An init file contains the following files:

  # COMMENTS
  pin NID VALUE
  ...
  verb NID VERB PARAM
  ...

The "pin" command specifies the default pin configuration to override.
The first argument is the pin widget NID to write, and the second the
pin config value in 32bit int.
Note that when this command is processed, the verbs will be
overwritten, and not reverted back even if the module loading fails.

The "verb" command specifies the additional verbs to execute.
