aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
Commit message (Collapse)AuthorAge
...
* ALSA: hda - Add a block_report flag to jacksDavid Henningsson2013-11-07
| | | | | | | | If the jack should not be reported to userspace (e g, because it is in some transitional state), one can set this flag. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Delay HDMI presence reports while waiting for ELD informationTakashi Iwai2013-11-07
| | | | | | | | | | | | | There is a small gap between the jack detection unsolicited event and the time the ELD is updated. When user-space queries the HDMI ELD immediately after receiving the notification, it might fail because of this gap. For avoiding such a problem, this patch tries to delay the HDMI jack detect notification until ELD information is fully updated. The workaround is imperfect, but good enough as a starting point. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Another Dell headset quirkDavid Henningsson2013-11-07
| | | | | | | | This machine has a multi-function headset jack. BugLink: https://bugs.launchpad.net/bugs/1248856 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add pincfg fixup for ASUS W5ATakashi Iwai2013-11-07
| | | | | | | | | BIOS on ASUS W5A laptop with ALC880 codec doesn't provide any pin configurations, so we have to set up all pins manually. Reported-and-tested-by: nb <nb@dagami.org> Cc: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add support for CX20952Takashi Iwai2013-11-07
| | | | | | | | It's a superset of the existing CX2075x codecs, so we can reuse the existing parser code. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: lx6464es: Fix pointer cast compile warningsTakashi Iwai2013-11-06
| | | | | | | | | | | The warnings are really harmless but annoying. Since they are only about debug prints, and it's at most 32bit DMA, let's just cast to unsigned long. sound/pci/lx6464es/lx6464es.c:457:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] sound/pci/lx6464es/lx_core.c:1195:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: HDA - Limit mic boost and add mute LED for an HP machineDavid Henningsson2013-11-06
| | | | | | | | | This machine has a mute LED as well as a noisy internal mic. Hence it needs quirks for both limiting the mic boost as well as enabling the LED. BugLink: https://bugs.launchpad.net/bugs/1248476 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Make sure mute LEDs stay on during runtime suspend (Realtek)David Henningsson2013-11-06
| | | | | | | | | | | | | | | Some HP machines with Realtek codecs have mute LEDs connected to VREF pins. However when these go into runtime suspend, the pin powers down and its pin control is disabled, thus disabling the LED too. This patch fixes that issue by making sure that the pin stays in D0 with correct pin control. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/1248465 Tested-by: Franz Hsieh <franz.hsieh@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: ctxfi: Use WARN_ON() instead of BUG_ON()Takashi Iwai2013-11-06
| | | | | | | BUG_ON() is rather useless for debugging as it leads to panic(). Use WARN_ON() and handle the error cases accordingly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: intel8x0: Fix chmap applicationTakashi Iwai2013-11-06
| | | | | | | | The playback chmap for multi-channel stream hasn't been properly added to intel8x0 devices due to the wrong condition. Reported-by: Raymond Yau <superquad.vortex2@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Apply GPIO setup for MacBooks with CS4208Takashi Iwai2013-11-06
| | | | | | | | | Apply the existing GPIO0 fixup as default for MacBooks with CS4208 codec. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64401 Cc: <stable@vger.kernel.org> [v3.12+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Name Haswell HDMI controllers betterTakashi Iwai2013-11-05
| | | | | | | "HDA Intel MID" is no correct name for Haswell HDMI controllers. Give them a better name, "HDA Intel HDMI". Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Force buffer alignment for Haswell HDMI controllersTakashi Iwai2013-11-05
| | | | | | | | | | | | | | | Haswell HDMI audio controllers seem to get stuck when unaligned buffer size is used. Let's enable the buffer alignment for the corresponding entries. Since AZX_DCAPS_INTEL_PCH contains AZX_DCAPS_BUFSIZE that disables the buffer alignment forcibly, define AZX_DCAPS_INTEL_HASWELL and put the necessary AZX_DCAPS bits there. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=60769 Reported-by: Alexander E. Patrakov <patrakov@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Enable Thinkpad mute/micmute LEDs for RealtekDavid Henningsson2013-11-05
| | | | | | | | | Same as we already have for Conexant. Right now it's only enabled for one machine. Tested-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda: add device IDs for AMD Evergreen/Northern Islands HDMIClemens Ladisch2013-11-05
| | | | | | | | | | | | | | | The device IDs of the AMD Cypress/Juniper/Redwood/Cedar/Cayman/Antilles/ Barts/Turks/Caicos HDMI HDA controllers weren't added explicitly because the generic entry works, but it made the device appearing as "Generic", and people are confused as if it's no proper HDMI controller. Add them so that the name shows up properly as "ATI HDMI" instead of "Generic". According to Takashi's tests and the lack of complaints, these devices work fine without disabling snooping. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Introduce the bitmask for excluding output volumeTakashi Iwai2013-11-05
| | | | | | | | | | | | | | | Add a bitmask to hda_gen_spec indicating NIDs to exclude from the possible volume controls. That is, when the bit is set, the NID corresponding to the bit won't be picked as an output volume control any longer. Basically this is just a band-aid for working around the issue found with CS4208 codec, where only the headphone pin has a volume AMP with different dB steps. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=60811 Cc: <stable@vger.kernel.org> [v3.12+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add sanity check of vmaster slave dB stepsTakashi Iwai2013-11-05
| | | | | | | Check whether all vmaster slaves have the same dB steps. Otherwise the behavior would become inconsistent. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Fix possible zero-divisionTakashi Iwai2013-11-05
| | | | | | | | Check the TLV db scale result before actually dividing in vmaster slave init code. Also mask TLV_DB_SCALE_MUTE bit so that the right value is obtained even if this bit is set by the codec driver. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Enable SPDIF for Acer TravelMate 6293Takashi Iwai2013-11-04
| | | | | | | | | BIOS on Acer TravelMate 6293 doesn't set up the SPDIF output pin correctly as default, so enable it via a fixup entry. Reported-and-tested-by: Hagen Heiduck <heiduck.suse@fmail.postpro.net> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add Device IDs for Intel Wildcat Point-LP PCHJames Ralston2013-11-04
| | | | | | | This patch adds the HD Audio Device IDs for the Intel Wildcat Point-LP PCH. Signed-off-by: James Ralston <james.d.ralston@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - rename function not_share_unassigned_cvt()Mengdong Lin2013-11-04
| | | | | | | | | The function name not_share_unassigned_cvt() is opposite to what it does. This patch renames it to intel_not_share_assigned_cvt(), and addes comments to explain why some Intel display codecs need this workaround. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - hdmi: Disallow unsupported 2ch remapping on NVIDIA codecsAnssi Hannula2013-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | NVIDIA HDMI codecs do not seem to follow the Audio Sample Packet (ASP) channel mapping (as set by verb F32h per HDA specification 7.3.3.41) when playing back 2-channel audio (CEA CA 0x00). Basically this means that specifying swapped channels for stereo audio (FR,FL) does not take effect, and e.g. this command plays back on the wrong channel: speaker-test -c2 -Dhdmi:CARD=NVidia,DEV=0 -m FR,FL -s1 Multichannel audio is not affected. This issue has been confirmed to exist on codec 0x10de0015 by me and on 0x10de0040 by Juho Teperi. Disable 2ch FL/FR channel swapping on all NVIDIA HDMI codecs that use the standard HDA channel mapping system. Since this is a very minor functionality loss, we err on the side of disabling it for newer codecs as well until any future testing confirms that this issue has been fixed. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi> Helped-by: Juho Teperi <juho.teperi@iki.fi> Cc: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - not choose assigned converters for unused pins of ValleyviewMengdong Lin2013-11-01
| | | | | | | | | | | | | For Valleyview display codec, if an unused pin chooses an assgined converter selected by a used pin, playback on the unused pin can also give sound to the output device of the used pin. It's because data flows from the same convertor to the display port of the used pin. This issue is same as Haswell. So this patch avoids using assinged convertors for unused pins. The related function haswell_config_cvts() is renamed for code reuse. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: hda - Add extra chmap for 2.1 outputs on ASUS laptopsTakashi Iwai2013-10-30
| | | | | | | | | ASUS N56VZ and N76VZ laptops have a bass speaker but its output comes only from the right channel. This patch adds the extra chmap specific to these models. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=846531 Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'for-linus' into for-nextTakashi Iwai2013-10-30
|\
| * ALSA: hda - Add a fixup for ASUS N76VZTakashi Iwai2013-10-30
| | | | | | | | | | | | | | | | | | ASUS N76VZ needs the same fixup as N56VZ for supporting the boost speaker. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=846529 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Disable AA-loopback on ALC283 ChromebookTakashi Iwai2013-10-30
| | | | | | | | | | | | | | | | | | | | ALC283-based Chromebook suffers from occasional white noise, and it turned out that this comes from AA-loopback. Disable this output path by just clearing mixer_nid, then the generic parser will skip the creation of AA-loopback path. Reported-and-tested-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: lola: Fix uninitialized variable access in error messageTakashi Iwai2013-10-29
| | | | | | | | | | | | | | | | | | | | The FUNCTION_TYPE parameter isn't associated with any NID, thus showing the uninitialized nid in the error message is simply nonsense. Spotted by coverity CID 145068. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: ice1724: Fix uninitialized variable accessTakashi Iwai2013-10-29
| | | | | | | | | | | | Spotted by coverity CIDs 751505 and 751506. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: rme96: Return error code in PCM copy opsTakashi Iwai2013-10-29
| | | | | | | | | | | | | | | | | | Just pass the error code returned from copy_from_user_toio() and copy_to_user_fromio() helpers. Spotted by coverity CID 114119. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: ali5451: Drop unused variableTakashi Iwai2013-10-29
| | | | | | | | | | | | | | | | | | The variable runtime is never used, and this might be even a source of NULL-dereference. Nothing better than killing it. Spotted by coverity CID 100862. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: ad1889: Fix right attenuation proc outputTakashi Iwai2013-10-29
| | | | | | | | | | | | | | | | The right attenuation bits aren't needed to be shifted. Spotted by coverity CID 11427. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: Use strlcpy() instead of strncpy()Takashi Iwai2013-10-29
| | | | | | | | | | | | | | We tend to make stupid mistakes with strncpy(). Let's take a safer one, strlcpy(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Remove locally dead codesTakashi Iwai2013-10-29
| | | | | | | | | | | | Reported by coverity. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add a fallthru commentTakashi Iwai2013-10-29
| | | | | | | | | | | | ... to improve the readability. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Fix possible NULL dereference in snd_hda_get_pin_label()Takashi Iwai2013-10-29
| | | | | | | | | | | | | | | | | | Fix a possible NULL access of indexp in fill_audio_out_name() called from snd_hda_get_pin_label(). Spotted by coverity CID 402035. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Sync EAPD with vmaster on AD1984A ThinkpadsTakashi Iwai2013-10-25
| | | | | | | | | | | | | | | | As EAPD on NID 0x12 (speaker pin) is used as the master amp on Thinkpads with AD1984A codec, we can hook this to vmaster for saving a bit more power at master mute state. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'for-linus' into for-nextTakashi Iwai2013-10-25
|\|
| * ALSA: hda - Fix silent headphone on Thinkpads with AD1984A codecTakashi Iwai2013-10-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AD1984A codec has a couple of pins with EAPD controls, and the generic codec driver tries to turn each of them on/off depending on the pin active state. However, Thinkpads seem to use EAPD of the speaker pin as a master EAPD for controlling the mute of all outputs, including the headphone. This results in the dead headphone output via the headphone plugging because it mutes the speaker and turns off EAPD. The fix is to simply add spec->gen.keep_on_eapd flag. [This is a regression fix on 3.12 where we moved the AD codec parser to the generic parser. 3.11 and earlier didn't show this problem because still static quirks have been used.] Reported-and-tested-by: Vito Caputo <vcaputo@gnugeneration.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add missing initial vmaster hook at build_controls callbackTakashi Iwai2013-10-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The generic parser has a support of vmaster hook, but this is initialized only in the init callback with the check of the presence of the corresponding kctl. However, since kctl is NULL at the very first init callback that is called before build_controls callback, the vmaster hook sync is skipped there. Eventually this leads to the uninitialized state depending on the hook implementation. This patch adds a simple workaround, just calling the sync function explicitly at build_controls callback. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix unbalanced runtime PM refcount after S3/S4Takashi Iwai2013-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | When a machine goes to S3/S4 after power-save is enabled, the runtime PM refcount might be incorrectly decreased because the power-down triggered soon after resume assumes that the controller was already powered up, and issues the pm_notify down. This patch fixes the incorrect pm_notify call simply by checking the current value properly. Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge tag 'asoc-v3.13' of ↵Takashi Iwai2013-10-25
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next ASoC: Updates for v3.13 - Further work on the dmaengine helpers, including support for configuring the parameters for DMA by reading the capabilities of the DMA controller which removes some guesswork and magic numbers fromm drivers. - A refresh of the documentation. - Conversions of many drivers to direct regmap API usage in order to allow the ASoC level register I/O code to be removed, this will hopefully be completed by v3.14. - Support for using async register I/O in DAPM, reducing the time taken to implement power transitions on systems that support it.
| * ALSA: hdsp - info leak in snd_hdsp_hwdep_ioctl()Dan Carpenter2013-10-16
| | | | | | | | | | | | | | | | In GCC the sizeof(hdsp_version) is 8 because there is a 2 byte hole at the end of the struct after ->firmware_rev. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix inverted internal mic not indicated on some machinesDavid Henningsson2013-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The create_bind_cap_vol_ctl does not create any control indicating that an inverted dmic is present. Therefore, create multiple capture volumes in this scenario, so we always have some indication that the internal mic is inverted. This happens on the Lenovo Ideapad U310 as well as the Lenovo Yoga 13 (both are based on the CX20590 codec), but the fix is generic and could be needed for other codecs/machines too. Thanks to Szymon Acedański for the pointer and a draft patch. BugLink: https://bugs.launchpad.net/bugs/1239392 BugLink: https://bugs.launchpad.net/bugs/1227491 Reported-by: Szymon Acedański <accek@mimuw.edu.pl> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Sony VAIO Pro 13 (haswell) now has a working headset jackDavid Henningsson2013-10-11
| | | | | | | | | | | | | | | | Just got the positive confirmation from a tester: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1227093/comments/28 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add a headset mic model for ALC269 and friendsDavid Henningsson2013-10-11
| | | | | | | | | | | | | | | | Using the headset mic model will cause the headset mic to be labeled "headset mic" instead of just "mic". Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix microphone for Sony VAIO Pro 13 (Haswell model)David Henningsson2013-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The external mic showed up with a precense detect of "always present", essentially disabling the internal mic. Therefore turn off presence detection for this pin. Note: The external mic seems not yet working, but an internal mic is certainly better than no mic at all. Cc: stable@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1227093 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add fixup for ASUS N56VZTakashi Iwai2013-10-08
| | | | | | | | | | | | | | | | | | ASUS N56VZ needs a fixup for the bass speaker pin, which was already provided via model=asus-mode4. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=841645 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - hdmi: Re-setup pin and infoframe on plug-in on all codecsAnssi Hannula2013-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hdmi_setup_audio_infoframe() does not set up pin and infoframe if there is no connected sink. If a sink is connected while audio playback is already in progress, the pin and infoframe will not be properly set up, causing no audio or wrongly mapped audio. On Intel Haswell codecs the hdmi_setup_audio_infoframe() is already called again from hdmi_present_sense() when an ELD appears because transcoder:port mapping may have changed. Make the call non-Haswell-specific so that audio will be properly set up if the playback was started before a sink was connected. Tested on non-Haswell Intel HDMI codec by plugging sink in during playback. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - hdmi: Disable ramp-up/down for non-PCM on AMD codecsAnssi Hannula2013-10-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Recent AMD HDMI codecs (revision ID 3 and later, 0x100300 as reported by procfs codec#0) have a configurable ramp-up/down functionality. The documentation ( http://www.x.org/docs/AMD/AMD_HDA_verbs_v2.pdf ) specifies that 180 ("180/256 =~ 0.7") is recommended for PCM and 0 for non-PCM. Apply the recommended values according to provided S/PDIF AES0 settings since ramp-up/down does not make sense for non-PCM. v2: adapted to hdmi_ops infrastructure * More note from Anssi: actually, re-reading mails reveals that Olivier didn't find the expected difference with this setting, except for "maybe slightly slower startup with AES0=6" (i.e. value 0, which is unexpected). So maybe a) it makes too unnoticiable a difference, or b) only affects certain hardware (card and/or sink), or c) ramp-up/down is only triggered with the MUTE bit of ATI_VERB_SET_MULTICHANNEL_xx which is also rev3+ specific, but is not presently used by the driver, or something else. So there's a significant chance setting ramp rate is useless for us ATM, but probably does not do actual harm either. Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi> Tested-by: Olivier Langlois <olivier@trillion01.com> # v1 Signed-off-by: Takashi Iwai <tiwai@suse.de>