• Jonathan Woithe's avatar
    [ALSA] HDA/Realtek: multiple input mux definitions and pin mode additions · a1e8d2da
    Jonathan Woithe authored
    The following patch relative to CVS from 20060324 adds the following
    features to the Realtek HDA codec.
    
    1) Define two new pin modes: ALC_PIN_DIR_IN_NOMICBIAS and
       ALC_PIN_DIR_INOUT_NOMICBIAS.  These can be used with jack mode switch
       definitions in mixers to prevent the user being offered the mic bias
       options if the hardware doesn't support it.
    
    2) Add the ability to have different input mux definitions for different
       ADCs.  This is needed because the ALC260 chip uses different mux layouts
       for the two onboard ADCs.  A new field (num_mux_defs) was added to the
       alc_spec and alc_config_preset structures to support this.
    
    3) Adjust numerous comments to make them consistent with the above changes.
    
    4) Utilise the new multi-mux definition functionality for the ALC260 fujitsu
       model to allow recording of the mixer output.
    
    5) Utilise the new multi-mux definition functionality for the ALC260 test
       model to make the mux selections a little less confusing.
    
    6) Allow the headphone jack of the ALC260 acer model to be retasked in
       the mixer.
    
    6) Utilise the new multi-mux definition functionality for the ALC260 acer
       model to give access to the mixer output and the retasked headphone
       jack.
    
    At this stage the *_NOMICBIAS modes are not used.  We have reports that the
    "Line" jack of at least some Acer models doesn't pass the bias out, and we
    also know that NIDs 0x0f and 0x10 don't seem to accept the mic bias requests
    at all.  However, I feel we need to collect more evidence on both counts
    before committing to the use of *_NOMICBIAS.  In the case of the Acers, it's
    not clear whether this issue (probably caused by the inclusion of DC
    blocking capacitors) affects all Acer models or just a small number.  With
    the issue with NIDs 0x0f and 0x10 it's unclear whether this is a hardware
    bug which will be addressed in later chip revisions or if it's an
    intentional restriction.  The datasheet makes no mention of the restriction
    so at this stage I'm inclined to consider it a hardware bug.  Comments in
    the source reflect this reasoning.
    
    On a similar theme, the headphone jack of the Fujitsu S7020 also doesn't
    appear to pass mic bias voltage.  I'm still investigating this however.
    
    With the ability to retask the headphone jack, owners of ALC260-based Acer
    laptops should now be able to record 4 channels of audio if they desire. The
    multiple mux definitions allow this jack to be presented from both ADCs
    (since this mux input is one of those which differs between the muxes).
    
    This patch has been tested on a Fujitsu S7020 laptop and appears to behave
    itself both for the "test" and "fujitsu" models.  Definitions using only a
    single mux specification also work.  Other ALC chips should be fine but I
    cannot test these myself.  The "auto" modes should also continue to function
    but again I have not verified this.
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    a1e8d2da
patch_realtek.c 195 KB