aboutsummaryrefslogtreecommitdiff
path: root/sound/pci
AgeCommit message (Collapse)AuthorFilesLines
2013-04-07ALSA: hda/realtek - Add a quirk for AC700 Chromebook.Dylan Reid1-1/+17
Correct pin configs for the Acer AC700. Most importantly indicate that SPDIF is connected, it routes to HDMI out. Similar to Aspire models, chain in the DMIC fixup and allow it to be applied to this codec (ALC269VB) as well. Signed-off-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-05ALSA: hda/cirrus - Add a quirk for Stumpy ChromeBox.Dylan Reid1-1/+18
The Stumpy ChromeBox needs its pin configs fixed up. Signed-off-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-05ALSA: hda/ca0132 - Update latency based on DSP state.Dylan Reid1-2/+53
The DSP in the CA0132 codec adds a variable latency to audio depending on what processing is being done. Add a new patch op to return that latency for capture and playback streams. The latency is determined by which blocks are enabled and knowing how much latency is added by each block. Signed-off-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-05ALSA: hda - Introduce get_delay codec PCM opsTakashi Iwai2-4/+17
Add a new codec PCM ops, get_delay(), to obtain the codec/stream- specific PCM delay count. When it's NULL, nothing changes. This new feature was requested for CA0132, which has significant delays in the path depending on the running DSP code. Signed-off-by: Takashi Iwai <[email protected]>
2013-04-05ALSA: hda/generic - fix uninitialized variableJiri Slaby1-1/+1
changed is not initialized in path_power_down_sync, but it is expected to be false in case no change happened in the loop. So set it to false. Signed-off-by: Jiri Slaby <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-04Revert "ALSA: hda - Allow power_save_controller option override DCAPS"Takashi Iwai1-4/+2
This reverts commit 6ab317419c62850a71e2adfd1573e5ee87d8774f. The commit [6ab317419c: ALSA: hda - Allow power_save_controller option override DCAPS] changed the behavior of power_save_controller so that it can override the driver capability. This assumed that this option is rarely changed dynamically unlike power_save option. Too naive. It turned out that the user-space power-management tool tries to set power_save_controller option to 1 together with power_save option without knowing what's actually doing. This enabled forcibly the runtime PM of the controller, which is known to be broken om many chips thus disabled as default. So, the only sane fix is to revert this commit again. It was intended to ease debugging/testing for runtime PM enablement, but obviously we need another way for it. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=56171 Reported-and-tested-by: Nikita Tsukanov <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-04ALSA: hda - fix typo in proc outputDavid Henningsson1-1/+1
Rename "Digitial In" to "Digital In". This function is only used for proc output, so should not cause any problems to change. Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-04ALSA: hda - Enabling Realtek ALC 671 codecRainer Koenig1-1/+3
* Added the device ID to the modalias list and assinged ALC662 patches for it * Added 4 port support for the device ID 0671 in alc662_parse_auto_config Signed-off-by: Rainer Koenig <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-03Merge branch 'for-linus' into for-nextTakashi Iwai2-2/+2
Back-merge for cleaning up usb-audio code the recent commit modified, and further UAC2 autoclock patches.
2013-04-02ALSA: hda - bug fix on HDMI ELD debug messageMengdong Lin1-1/+1
This patch let ELD debug message show 'pin_eld->monitor_present' which reflects the real pin response to verb GET_PIN_SENSE. 'eld->monitor_present' should not be used here because 'eld' is a temp structure now and so its "monitor_present" is not set. Signed-off-by: Mengdong Lin <[email protected]> Acked-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-02ALSA: hda - bug fix on return value when getting HDMI ELD infoMengdong Lin1-1/+1
In function snd_hdmi_get_eld(), the variable 'ret' should be initialized to 0. Otherwise it will be returned uninitialized as non-zero after ELD info is got successfully. Thus hdmi_present_sense() will always assume ELD info is invalid by mistake, and /proc file system cannot show the proper ELD info. Signed-off-by: Mengdong Lin <[email protected]> Cc: [email protected] Acked-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-04-02ALSA: hda/ca0132 - Delay HP amp turnon.Chih-Chung Chang1-4/+23
Turing on the headphone amp interferes with the impedance measurement used to detect a TRRS style headset microphone. Delay the HP turn on until 500ms after the jack is detected, allowing the mic detection state machine to run to completion. Signed-off-by: Chih-Chung Chang <[email protected]> Signed-off-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-22ALSA: hda - VIA prefers side surrounds over HPTakashi Iwai1-0/+20
The recent fix for the independent HP reduced the availability of the side surround output, because there are only 4 DACs for 7.1 and a HP outputs. Adjust the badness tables for VIA so that 7.1 outputs are activated for the cost of missing independent HP. Once when we implement the dynamic DAC switching to multiple outputs, this conflicts will be eased in future... Signed-off-by: Takashi Iwai <[email protected]>
2013-03-22ALSA: hda - Lower the badness for independent HP penaltyTakashi Iwai1-1/+1
The lack of independent HP mode shouldn't be too bad, but currently its badness is set a bit too high. Let's lower it. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-22ALSA: hda - Allow codec drivers to give own badness tablesTakashi Iwai2-14/+29
The standard badness values don't seem to fit to all preferences. Some configuration prefer the side output over the headphone, some want the speaker over the surround, etc. This patch moves the badness table pointers into hda_gen_spec, so that the codec driver can override them. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-22Merge branch 'for-linus' into for-nextTakashi Iwai4-26/+158
Merge back for-linus branch for the badness table adjustment for VIA codecs * for-linus: ALSA: hda - Fix DAC assignment for independent HP ALSA: hda - Fix abuse of snd_hda_lock_devices() for DSP loader ALSA: hda - Fix typo in checking IEC958 emphasis bit ALSA: snd-usb: mixer: ignore -EINVAL in snd_usb_mixer_controls() ALSA: snd-usb: mixer: propagate errors up the call chain ALSA: usb: Parse UAC2 extension unit like for UAC1 ALSA: hda - Fix yet missing GPIO/EAPD setup in cirrus driver
2013-03-21ALSA: hda - Fix DAC assignment for independent HPTakashi Iwai1-0/+46
The generic parser should evaluate the availability of the independent HP when specified. Otherwise a DAC without the direct connection to the corresponding pin may be assigned for the HP, but the driver doesn't check it at all. The problem was actually seen on some machines with VT1708s or equivalent codec, where DAC0 is assigned to HP although it can be connected only via aamix. This patch adds the badness evaluation for the independent HP to make it working properly. Reported-by: Lydia Wang <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-21ALSA: hda - Enable "Headset Mic" name for some Dell Latitude devicesDavid Henningsson1-1/+5
Now that we have a "Headset Mic" name, let's use it for some devices we know for sure has a headset mic jack. Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-21ALSA: hda - Introduce "Headset Mic" nameDavid Henningsson2-2/+24
Headset mic jacks, i e TRRS style jacks with Headphone Left, Headphone Right, Mic and GND signals, are becoming increasingly common and are now being shipped by several manufacturers. Unfortunately, the HDA specification does not give us any hint of whether a Mic pin belongs to such a jack or not, but it would still be helpful for the user to know (especially if there is one TRS Mic jack and one TRRS headset jack). This new fixup causes the first (non-dock, non-internal) mic to be a headset mic jack. The algorithm can be later refined if needed. Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-20ALSA: hda - Fix abuse of snd_hda_lock_devices() for DSP loaderTakashi Iwai1-23/+109
The current DSP loader code abuses snd_hda_lock_devices() for ensuring the DSP loader not conflicting with the other normal operations. But this trick obviously doesn't work for the PM resume since the streams are kept opened there where snd_hda_lock_devices() returns -EBUSY. That means we need another lock mechanism instead of abuse. This patch provides the new lock state to azx_dev. Theoretically it's possible that the DSP loader conflicts with the stream that has been already assigned for another PCM. If it's running, the DSP loader should simply fail. If not -- it's the case for PM resume --, we should assign this stream temporarily to the DSP loader, and take it back to the PCM after finishing DSP loading. If the PCM is operated during the DSP loading, it should get an error, too. Reported-and-tested-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-20ALSA: hda - Fix typo in checking IEC958 emphasis bitTakashi Iwai1-1/+1
There is a typo in convert_to_spdif_status() about checking the emphasis IEC958 status bit. It should check the given value instead of the resultant value. Reported-by: Martin Weishart <[email protected]> Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-18ALSA: hda - Fix yet missing GPIO/EAPD setup in cirrus driverTakashi Iwai1-2/+2
I forgot to update spec->gpio_data in the automute hook, so it will be overridden at the init sequence, thus the machine is still silent when no headphone jack is plugged at boot time. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-18treewide: Fix typos in printk and commentMasanari Iida1-1/+1
Signed-off-by: Masanari Iida <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
2013-03-18ALSA: hda - Add GPIO-based LED support on HP desktop machinesTakashi Iwai1-0/+63
The new HP desktop machines have Realtek codecs and their LEDs are controlled via GPIO as for many laptop models. Add similar hooks as well as in patch_sigmatel.c for controlling LEDs. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-18ALSA: hda - Make the resume of digital beep setup properTakashi Iwai1-1/+1
The verb to set up the digital beep via AC_VERB_SET_DIGI_CONVERT_2 should be executed at resume as well. Use the cached write for it being performed automatically at resume. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-18ALSA: hda - Fix power-saving during playing beep soundTakashi Iwai2-11/+27
While playing the digital beep tone, the codec shouldn't be turned off. This patch adds proper snd_hda_power_up()/down() calls at each time when the beep is played or off. Also, this fixes automatically an unnecessary codec power-up at detaching the beep device when the beep isn't being played. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-18ALSA: hda - Move beep attach/detach calls in hda_generic.cTakashi Iwai6-128/+72
Instead of calling snd_hda_attach_beep_device() and snd_hda_detach_beep_device() in each codec driver, move them to the generic parser. The codec driver just needs to set spec->beep_nid for activating the digital beep. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-18Merge branch 'for-linus' into for-nextTakashi Iwai8-33/+94
Back-merged for refactoring beep stuff.
2013-03-18ALSA: hda/cirrus - Fix the digital beep registrationTakashi Iwai1-4/+4
The argument passed to snd_hda_attach_beep_device() is a widget NID while spec->beep_amp holds the composed value for amp controls. Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-18ALSA: hda - Fix missing beep detach in patch_conexant.cTakashi Iwai1-1/+7
This leaks the beep input device after module unload, which leads to Oops. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=55321 Signed-off-by: Takashi Iwai <[email protected]>
2013-03-15ALSA: hda - Fix missing EAPD/GPIO setup for Cirrus codecsTakashi Iwai1-0/+4
During the transition to the generic parser, the hook to the codec specific automute function was forgotten. This resulted in the silent output on some MacBooks. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-15ALSA: hda/ca0132 - Remove extra setting of dsp_state.Dylan Reid1-9/+6
spec->dsp_state is initialized to DSP_DOWNLOAD_INIT, no need to reset and check it in ca0132_download_dsp(). Signed-off-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-15ALSA: hda/ca0132 - Check download state of DSP.Dylan Reid1-2/+3
Instead of using the dspload_is_loaded() function, check the dsp_state that is kept in the spec. The dspload_is_loaded() function returns true if the DSP transfer was never started. This false-positive leads to multiple second delays when ca0132_setup_efaults() times out on each write. Signed-off-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-15ALSA: hda/ca0132 - Check if dspload_image succeeded.Dylan Reid1-2/+6
If dspload_image() fails, it was ignored and dspload_wait_loaded() was still called. dsp_loaded should never be set to true in this case, skip it. The check in dspload_wait_loaded() return true if the DSP is loaded or if it never started. Signed-off-by: Dylan Reid <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-14ALSA: hda - Disable IDT eapd_switch if there are no internal speakersDavid Henningsson1-0/+29
If there are no internal speakers, we should not turn the eapd switch off, because it might be necessary to keep high for Headphone. BugLink: https://bugs.launchpad.net/bugs/1155016 Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-13ALSA: hda - Don't apply EAPD power filter as defaultTakashi Iwai4-8/+11
So far, the driver doesn't power down the widget at going down to D3 when the widget node has an EAPD capability and EAPD is actually set on all codecs unless codec->power_filter is set explicitly. This caused a problem on some Conexant codecs, leading to click noises, and we set it as NULL there. But it is very unlikely that the problem hits only these codecs. Looking back at the development history, this workaround for EAPD was introduced just for some laptops with STAC9200 codec, then we applied it blindly for all. Now, since it's revealed to have an ill effect, we should disable this workaround per default and apply only for the known requiring systems. The EAPD workaround is implemented now as snd_hda_codec_eapd_power_filter(), and this has to be set explicitly by the codec driver when needed. As of now, only patch_stac9200() sets this one. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-13ALSA: hda - Allow unlimited pins and converters in patch_hdmi.cTakashi Iwai1-81/+117
Use the dynamic array allocations for pins, converters and PCM arrays instead of the fixed size arrays. The modern HDMI codecs get more and more pins, and we don't know the sensitive limit. Most of the patch are spent for the straight conversions from the fixed array access to snd_array helpers. Signed-off-by: Takashi Iwai <[email protected]>
2013-03-13ALSA: hda - Drop explicit memset() by reallocation with __GFP_ZEROTakashi Iwai1-3/+1
Signed-off-by: Takashi Iwai <[email protected]>
2013-03-12ALSA: hda - Fix snd_hda_get_num_raw_conns() to return a correct valueTakashi Iwai1-10/+14
In the connection list expansion in hda_codec.c and hda_proc.c, the value returned from snd_hda_get_num_raw_conns() is used as the array size to store the connection list. However, the function returns simply a raw value of the AC_PAR_CONNLIST_LEN parameter, and the widget list with ranges isn't considered there. Thus it may return a smaller size than the actual list, which results in -ENOSPC in snd_hda_get_raw_conections(). This patch fixes the bug by parsing the connection list correctly also for snd_hda_get_num_raw_conns(). Reported-and-tested-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-12ALSA: asihpi - fix potential NULL pointer dereferenceWei Yongjun1-1/+2
The dereference should be moved below the NULL test. Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-12ALSA: add/change some comments describing function return valuesYacine Belkadi2-8/+18
script/kernel-doc reports the following type of warnings (when run in verbose mode): Warning(sound/core/init.c:152): No description found for return value of 'snd_card_create' To fix that: - add missing descriptions of function return values - use "Return:" sections to describe those return values Along the way: - complete some descriptions - fix some typos Signed-off-by: Yacine Belkadi <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hdspm - Enable new TCO ALSA controlsAdrian Knoth1-1/+5
Expose the newly added TCO LTC and sync check functions to userspace. Signed-off-by: Adrian Knoth <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hdspm - Add ALSA controls to read the TCO LTC stateAdrian Knoth1-0/+106
This patch adds new ALSA controls to query the LTC state from userspace. Signed-off-by: Adrian Knoth <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hdspm - Also check for TCO sync statesAdrian Knoth1-0/+42
This patch prepares snd_hdspm_get_sync_check() to also check the TCO sync state. The added feature will be exposed to the user in a later commit. Signed-off-by: Adrian Knoth <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hdspm - Remove duplicate code from ALSA controlsAdrian Knoth1-124/+22
Considerably shorten the code by using a macro. Though this won't lower the binary size, it makes the source more readable. Signed-off-by: Adrian Knoth <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hdspm - Provide ALSA control to disable 96K framesAdrian Knoth1-0/+1
For 96kHz, MADI allows to multiplex the samples (SMUX) or to use a dedicated 96K mode. The RME cards default to 96K mode, but since not all external MADI equipment supports this, provide a switch to users that changes the on-wire protocol to SMUX. Signed-off-by: Adrian Knoth <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hdspm - Allow the TCO and SYNC-IN to be used in slave modeAdrian Knoth1-14/+51
When using the additional Time Code Option module in slave mode or the SYNC-In wordclock connector, the sample rate needs to be returned by hdspm_external_sample_rate(). Since this sample rate may contain any value with 1Hz granularity, we need to round it to a common rate as done by the OSX driver. [Fixed missing function declarations by tiwai] Signed-off-by: Adrian Knoth <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hdspm - Refactor sample rate acquisitionAdrian Knoth1-3/+13
This commit introduces hdspm_get_pll_freq() to avoid code duplication. Reading the sample rate from the DDS register will be required by upcoming code. Signed-off-by: Adrian Knoth <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-11ALSA: hda - Don't re-initialize shared hp/mic pinctlTakashi Iwai1-1/+2
When a headphone pin is set up as a shared hp/mic pin, we rather want to keep it as a headphone primarily as default, but the driver overrides it always as a mic pin, just because the input controls are created after outputs. Add a check of pin NID and skip the re-initialization of pinctl for such a shared hp/mic pin. Reported-by: Jonathan Woithe <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2013-03-07ALSA: hda - Avoid automatic pin-ctl update for hp/mic when jack ctl existsTakashi Iwai2-21/+25
When the headphone mic jack enum control is created (via explicitly specification by user), it doesn't make much sense to change the I/O direction dynamically per capture source change, since the I/O direction is rather controlled over the enum ctl. This also reduces the implicit dependency between the capture source and the hp mic jack enum ctls, which might confuse a program accessing the whole control elements at once like alsactl. In addition, this patch introduces update_hp_automute_hook() function to call the proper hook function. It's just to remove the open codes in multiple places in hda_generic.c. Signed-off-by: Takashi Iwai <[email protected]>