aboutsummaryrefslogtreecommitdiff
path: root/sound/pci
AgeCommit message (Collapse)AuthorFilesLines
2013-01-15ALSA: hda/ca0132 - Use snd_hda_set_pin_ctl() helper againTakashi Iwai1-16/+10
The recent update of ca0132 driver replaced the pinctl setup to the direct write via snd_hda_codec_write() again. This should be covered by snd_hda_set_pin_ctl() to be safer. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15Revert "ALSA: hda - Add firmware caching to CA0132 codec"Takashi Iwai1-22/+6
This reverts commit c3b4eea26208b8e247ece9d3a9ec8b2eab48c464. Since the recent firmware loader code supports caching at S3/S4 by itself, we don't have to handle f/w caching in the driver. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Fix potential init errors and update module descriptionIan Minett1-6/+8
Handle a potential dma_engine alloc error and fix the possible use of an uninitialized status variable in dspxfr_one_seg(). Also correct the initial sampling rate for Mic 1. Update the module description. Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Shuffle to group together related codeIan Minett1-76/+76
Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Code shuffle to group similar functions.Ian Minett1-187/+188
Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Add tuning controlsIan Minett1-0/+289
This patch adds the controls used for tuning the DSP effects. Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Add unsol handler for DSP and jack detectionIan Minett1-0/+142
This patch adds the unsolicited response handler for incoming DSP responses and jack detection reporting, and routines for reading the incoming DSP response. Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Add PCM enhancementsIan Minett1-13/+118
Remove the playback PCM open callback. PCM stream setup and cleanup functions are added for use by PCM callbacks. Delay stream cleanup if effects are on, to allow time for any effects tail to finish. Add the analog capture PCM callbacks. Change the max channels of analog playback to 6. Add two new PCMs: AMic2 and What-U-Hear. Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Add DSP mixer controls and helpersIan Minett1-288/+544
This patch adds the kcontrols for the DSP effects, playback and recording source selection. ca0132_is_vnode_effective() checks whether virtual node settings have taken effect. The control change helpers ca0132_pe_switch_set(), ca0132_voicefx_set() and ca0132_cvoice_switch_set() are added to toggle playback / capture DSP effects, ca0132_voicefx_info(), _get() and _put() are added for input path DSP effect value access. The volume helpers are updated to volume_info(), _get() and _set() to use the virtual nodes. The redundant headphone and speaker switches and ct_extension function are removed. Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Init chip, DSP effects and mixer settingsIan Minett1-32/+700
This patch adds the framework to set effect parameters: ca0132_effects_set() and ca0132_setup_defaults() are general functions for parameter setting and initializing to default values. dspio_set_param() and dspio_set_uint_param() are lower-level fns to simplify setting individual DSP parameters via an SCP buffer transfer to the firmware. The CA0132 chip parameter init code is added in ca0132_init_params(). In chipio_[write,read]_data(), the current chip address is auto-incremented if no error has occurred. ca0132_select_out() selects the current output. If autodetect is enabled, use headphones (if jack detected) or speakers (if no jack). ca0132_select_mic() selects the current mic in. If autodetect is enabled, use exterior mic (if jack detected) or built-in mic (if no jack). Init digital mic and switch between dmic and amic with ca0132_init_dmic(), ca0132_set_dmic(). amic2 is initialized in ca0132_init_analog_mic2(). Finally, add verb tables for configuring DSP firmware. Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/ca0132: Add new definitions and structs for DSPIan Minett1-3/+442
This patch adds definitions and structs used for configuring DSP effects, virtual nodes, effect tuning controls, and mixer control helpers. The effect structs are also initialized. Signed-off-by: Ian Minett <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda - fix OOPS in hda_mark_cmd_cache_dirtyDavid Henningsson1-1/+1
Obvious copy-paste error. Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/hdmi - Work around "alsactl restore" errorsTakashi Iwai1-1/+1
When "alsactl restore" is performed on HDMI codecs, it tries to restore the channel map value since the channel map controls are writable. But hdmi_chmap_ctl_put() returns -EBADFD when no PCM stream is assigned yet, and this results in an error message from alsactl. Although the error is harmless, it's certainly ugly and can be regarded as a regression. As a workaround, this patch changes the return code in such a case to be zero for making others happy. (A slight excuse is: when the chmap is changed through the proper alsa-lib API, the PCM status is checked there anyway, so we don't have to be too strict in the kernel side.) Cc: <[email protected]> [v3.7+] Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/sigmatel - Remove superfluous fields from sigmatel_specTakashi Iwai1-1/+0
Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/sigmatel - Move w/a for HP Mini 110 LED to fixup tableTakashi Iwai1-7/+5
Instead of checking the codec SSID in find_mute_led_cfg() for HP Mini 110, set the proper spec->default_polairty in the fixup table. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda/sigmatel - Remove PCI id check in find_mute_led_cfg()Takashi Iwai1-43/+40
The PCI vendor ID check in find_mute_led_cfg() is now superfluous because the function is called in the fixup table entries of HP machines. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda - Use standard fixup table for IDT92HD83xxxTakashi Iwai1-150/+248
Finally all codecs in patch_sigmatel.c have been converted to use the standard fixup helpers. This change also includes trivial cleanups like the call of common setup for GPIO LED or the removal of unused function. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda - Use standard fixup table for IDT92HD73xxTakashi Iwai1-113/+218
This one is rather a simple conversion. The fixups for Dell machines are implemented by fixup functions in the end. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda - Use standard fixup table for IDT92HD71BxxTakashi Iwai1-169/+312
This time, the only intrusive changes are for HP machines. As the mute LED fixup and the bass speaker switch are required only for HP machines, we can move these checks into the fixup entries; the former is applied generically to all HP machines while the latter for only certain models. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda - Check pincap while parsing the configurationTakashi Iwai1-0/+25
Sometimes (or rather often) BIOS sets the pin default configurations obviously wrongly. Looking through these failures, one common pattern is to enable some dead pins that are usually marked as speaker pins. In such a case, we can skip them if the pins don't have the output capability. In this patch, add a check for the valid pin cap bit for each parsed pin, and filter out when it's invalid. The fix was originally suggested by Raymond Yau. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda - Use standard fixup table for STAC927xTakashi Iwai1-120/+235
This conversion is a bit tricky. Since STAC927x may take two different volume-knob initialization values depending on the model, a new flag, spec->volknob_init, is introduced to indicate whether it's the standard volume-knob initialization or not. Also, Dell BIOS model is now directly mapped onto the fixup table instead of parsing in the function. This resulted in a new model ref, STAC_927X_DELL_BIOS_SPDIF, which is a chained entry. Also, for reducing the fixups, virtual entries like STAC_927X_DELL_DMIC and STAC_D965_VERBS are introduced. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-15ALSA: hda - Use standard fixup table for STAC922xTakashi Iwai1-171/+312
Rather straightforward conversion, except for ones for Intel Mac. As Intel Mac have only unique codec SSIDs, we need to remap the fixup again for the codec SSID and call the new fixup there. Also, we can reduce model enums like STAC_MACMINI, which are model aliases for backward compatibility, since they can be pointed directly via hda_model_fixup table. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-14ALSA: hda - Use standard fixup table for STAC9205Takashi Iwai1-83/+154
Signed-off-by: Takashi Iwai <[email protected]>
2013-01-14ALSA: hda - Use standard fixup table for STAC9872Takashi Iwai1-21/+28
Now for STAC9872. It has a small fixup table, fortunately. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-14ALSA: hda - Use standard fixup table for STAC925xTakashi Iwai1-85/+141
Similar like the previous commit, convert patch_stac925x() to use the standard fixup table. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-14ALSA: hda - Use standard fixup table for STAC9200Takashi Iwai1-104/+265
Convert patch_stac9200() to use the standard fixup table instead of manual switch-case with board_config. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-14Merge branch 'test/hda-gen-parser' into test/hda-migrateTakashi Iwai2-1/+18
* test/hda-gen-parser: ALSA: hda - Add capture_switch_hook to generic parser
2013-01-14ALSA: hda - Add capture_switch_hook to generic parserTakashi Iwai2-1/+18
Add a hook for the capture mixer switch. This will be used by IDT codecs for controlling the mic-mute LED. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Use generic parser for VIA codec driverTakashi Iwai2-2405/+206
Yet another step forward. As all features for VIA codecs have been implemented in the generic driver, we can move on to migrate the VIA codec parser, too. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Add generic parser support to Analog Device codec driverTakashi Iwai2-624/+292
This patch adds the support for the generic auto-parser to AD codec driver. For AD1988, the old code is replaced simply with the new generic parser. For other codecs, new model "auto" is added and directed to use the generic parser. No fixup codes have been implemented yet as of now. Eventually we'd replace each static quirk with the generic parser + fixup. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Rearrange for dropping static quirk codes in Coexant driverTakashi Iwai1-43/+57
Just shuffle the codes and add ifdefs for testing to drop the static quirk codes from patch_conexant.c. By commenting out ENABLE_CXT_STATIC_QUIRKS define at the beginning of the file, you can disable the whole static codes. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Use generic parser in Conexant codec driverTakashi Iwai2-1253/+62
... and drop most of own parser code. It doesn't replace any present static quirks, though. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Use generic parser for Cirrus codec driverTakashi Iwai2-1189/+99
This time, the target is Cirrus codec. Its parser is a subset of generic parser, so we can migrate fully with it now. The only tricky part is the handling of SPDIF automute. Cirrus driver sets the SPDIF out plug over the headphone. As a workaround, set spec->gen.master_mute for toggling the headphone (and other) mute. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Use generic parser for CA0110 codecTakashi Iwai2-473/+16
CA0110 codec is a fairly straightforward hardware implementation, and we can use the generic parser almost as is. Just set spec->multi_cap_vol flag to follow the current behavior. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Use generic codec parser for C-Media codecsTakashi Iwai2-118/+47
Replace the old parser code for C-Media auto-parser with the latest generic parser. For compatibility reason, the static bindings are still left, but they could be cleaned up in future. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Remove superfluous kconfig dependsTakashi Iwai1-3/+0
Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Allow user to give hints for codec parser behaviorTakashi Iwai2-0/+73
Through the hints via sysfs or patch, user can set specific behavior flags for the generic parser now. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Add snd_hda_get_int_hint() helper functionTakashi Iwai3-18/+31
It'll be used in hda_generic.c, too. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Protect user-defined arrays via mutexTakashi Iwai4-21/+65
The pincfgs, init_verbs and hints set by sysfs or patch might be changed dynamically on the fly, thus we need to protect it. Add a simple protection via a mutex. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda/realtek - Generic mute LED implementation for HP laptopsTakashi Iwai1-28/+48
As David Henningsson recently suggested, some HP laptops use an unused mic pin for controlling a mute LED, and this information is provided via DMI string "HP_Mute_LED_X_Y" string. This patch adds the generic support for such cases, as we've already done in patch_sigmatel.c. This is applied generically to all devices with ID 0x103c. But as we don't know whether the device 103c:1586 really contains HP_Mute_LED_X_Y DMI string, still keep the static setup for this device using the mic2 pin 0x19. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda/realtek - Fix the timing for some fixupsTakashi Iwai1-3/+3
Some fixups such as setting the flags influencing on the parser behavior should be applied before actually parsing the tree. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda/realtek - Add a fixup for FSC S7020 laptopTakashi Iwai1-0/+17
Try to recover from the regression: set the HP amp for the speaker and add the hp jack mode enum as default. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Add output jack mode enum controlsTakashi Iwai2-0/+111
Add the enum controls for changing the headphone amp bits of output jacks, such as "Headphone Jack Mode". This feature isn't enabled as default, so far, unless spec->add_out_jack_modes flag is set. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Update automute / automic upon jack retaskingTakashi Iwai1-0/+6
When a multi-io jack is switched to another direction, call the automute and autoswitch update functions, as this jack won't be used as the headphone or the mic jack that may turn off others. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Add a new fixup type to override pinctl valuesTakashi Iwai3-9/+25
Add a new fixup type, HDA_FIXUP_PINCTLS, for overriding the pinctl values of the given pins. It takes the same array of struct pintbl like HDA_FIXUP_PINS, but each entry contains the pinctl value instead of the pin default config value. This patch also replaces the corresponding codes in patch_realtek.c. Without this change, the direct call of verbs may be overridden again by the later call of pinctl restoration by the driver. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda/realtek - Read the cached pinctl value in fixupsTakashi Iwai1-6/+3
... instead of reading the value from the codec at each time. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda/realtek - Drop aliases for old fixupsTakashi Iwai1-269/+252
Now the whole codebase has been changed from the earlier kernels, it makes little sense to keep these aliases. Simply replace with the official names. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Avoid auto-mute or auto-mic of retasked jacksTakashi Iwai1-1/+8
When a jack is retasked as a different direction (e.g. a mic jack is used as a CLFE output), such a jack shouldn't be counted as the target for the automatic jack switching. Skip the automute or the autoswitch when the current pinctl direction is different from what we suppose. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - Manage current pinctl values in generic parserTakashi Iwai1-52/+85
Use the new pin target accessors for managing the current pinctl values in the generic parser. The pinctl values of all active pins are once determined at the initialization phase, and stored via snd_hda_codec_set_pin_target(). This will be referred again in the codec init or resume phase to set the actual pinctl. This value is kept while the auto-mute. When a line-out or a speaker pin is muted by auto-mute, the driver simply disables the pin, but it doesn't touch the cached pinctl target value. Upon unmute, this value is used to restore the original pinctl in return. Signed-off-by: Takashi Iwai <[email protected]>
2013-01-12ALSA: hda - More strict correction of invalid pinctl bitsTakashi Iwai2-14/+54
Check more strictly about the validity of pinctl values in snd_hda_set_pin_ctl() and correct the wrong bits automatically. Also provide the helper function to correct pinctl bits to codec drivers. This automatically fixes the invalid pinctl writes that are found in a few Realtek fixups for NID 0x0f amp like ASUS A6Rp. Signed-off-by: Takashi Iwai <[email protected]>