summaryrefslogtreecommitdiff
path: root/sound/pci/hda
AgeCommit message (Collapse)Author
2014-07-15ALSA: hda - Fix broken PM due to incomplete i915 initializationTakashi Iwai
When the initialization of Intel HDMI controller fails due to missing i915 kernel symbols (e.g. HD-audio is built in while i915 is module), the driver discontinues the probe. However, since the probe was done asynchronously, the driver object still remains, thus the relevant PM ops are still called at suspend/resume. This results in the bad access to the incomplete audio card object, eventually leads to Oops or stall at PM. This patch adds the missing checks of chip->init_failed flag at each PM callback in order to fix the problem above. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=79561 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-07-14ALSA: hda - Revert stream assignment order for Intel controllersTakashi Iwai
We got a regression report for 3.15.x kernels, and this turned out to be triggered by the fix for stream assignment order. On reporter's machine with Intel controller (8086:1e20) + VIA VT1802 codec, the first playback slot can't work with speaker outputs. But the original commit was actually a fix for AMD controllers where no proper GCAP value is returned, we shouldn't revert the whole commit. Instead, in this patch, a new flag is introduced to determine the stream assignment order, and follow the old behavior for Intel controllers. Fixes: dcb32ecd9a53 ('ALSA: hda - Do not assign streams in reverse order') Reported-and-tested-by: Steven Newbury <steve@snewbury.org.uk> Cc: <stable@vger.kernel.org> [v3.15+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-07-08ALSA: hda - Add new GPU codec ID 0x10de0070 to snd-hdaAaron Plattner
Vendor ID 0x10de0070 is used by a yet-to-be-named GPU chip. Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-07-07ALSA: hda: Fix build warningThierry Reding
The hda_tegra_disable_clocks() function is only used by the suspend and resume code, so it needs to be included in the #ifdef CONFIG_PM_SLEEP block to prevent the following warning: CC sound/pci/hda/hda_tegra.o sound/pci/hda/hda_tegra.c:238:13: warning: 'hda_tegra_disable_clocks' defined but not used [-Wunused-function] static void hda_tegra_disable_clocks(struct hda_tegra *data) ^ Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-07-04ALSA: hda - restore BCLK M/N value as per CDCLK for HSW/BDW display HDA ↵Mengdong Lin
controller For HSW/BDW display HD-A controller, hda_set_bclk() is defined to set BCLK by programming the M/N values as per the core display clock (CDCLK) queried from i915 display driver. And the audio driver will also set BCLK in azx_first_init() since the display driver can turn off the shared power in boot phase if only eDP is connected and M/N values will be lost and must be reprogrammed. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-27ALSA: hda - Add a fixup for Thinkpad T540pTakashi Iwai
The similar fixup as T440 is needed for supporting the dock on T540. Reported-by: Jim Minter <jminter@redhat.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-27ALSA: hda - Add another headset pin quirk for some Dell machinesDavid Henningsson
Another quirk to make the headset mic work on some new Dell machines. Cc: Hui Wang <hui.wang@canonical.com> BugLink: https://bugs.launchpad.net/bugs/1297581 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-26ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display controllerMengdong Lin
For Intel Haswell/Broadwell display HD-A controller, the 24MHz HD-A link BCLK is converted from Core Display Clock (CDCLK): BCLK = CDCLK * M / N And there are two registers EM4 and EM5 to program M, N value respectively. The EM4/EM5 values will be lost and when the display power well is disabled. BIOS programs CDCLK selected by OEM and EM4/EM5, but BIOS has no idea about display power well on/off at runtime. So the M/N can be wrong if non-default CDCLK is used when the audio controller resumes, which results in an invalid BCLK and abnormal audio playback rate. So this patch saves and restores valid M/N values on controller suspend/resume. And 'struct hda_intel' is defined to contain standard HD-A 'struct azx' and Intel specific fields, as Takashi suggested. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-25ALSA: hda - Adjust speaker HPF and add LED support for HP Spectre 13Takashi Iwai
HP Spectre 13 has the IDT 92HD95 codec, and BIOS seems to set the default high-pass filter in some "safer" range, which results in the very soft tone from the built-in speakers in contrast to Windows. Also, the mute LED control is missing, since 92HD95 codec still has no HP-specific fixups for GPIO setups. This patch adds these missing features: the HPF is adjusted by the vendor-specific verb, and the LED is set up from a DMI string (but with the default polarity = 0 assumption due to the incomplete BIOS on the given machine). Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=74841 Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-24ALSA: hda - Make the pin quirk tables use the SND_HDA_PIN_QUIRK macroDavid Henningsson
This is cosmetical - it makes the pin quirk table look better. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-24ALSA: hda - Make a SND_HDA_PIN_QUIRK macroDavid Henningsson
This is cosmetical - it makes the new pin quirk table look better. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-24ALSA: hda - Add pin quirk for Dell XPS 15David Henningsson
Two bug reporters with Dell XPS 15 report that they need to use the dell-headset-multi model to get the headset mic working. The two bug reporters have different PCI SSID (1028:05fd and 1028:05fe) but this pin quirk matches both. BugLink: https://bugs.launchpad.net/bugs/1331915 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-23ALSA: hda - hdmi: call overridden init on resumePierre Ossman
We need to call the proper init function in case it has been overridden, as it might restore things that the generic routing doesn't know anything about. E.g. AMD cards have special verbs that need resetting. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=77901 Fixes: 5a61358433b1 ('ALSA: hda - hdmi: Add ATI/AMD multi-channel audio support') Signed-off-by: Pierre Ossman <pierre@ossman.eu> Cc: <stable@vger.kernel.org> [v3.13+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-23ALSA: hda - Fix usage of "model" module parameterDavid Henningsson
A recent refactoring broke the possibility to manually specify model name as a module parameter. This patch restores the desired functionality. Fixes: c21c8cf77f47 ('ALSA: hda - Add fixup_forced flag') Reported-by: Kent Baxley <kent.baxley@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-16drm/i915, HD-audio: Don't continue probing when nomodeset is givenTakashi Iwai
When a machine is booted with nomodeset option, i915 driver skips the whole initialization. Meanwhile, HD-audio tries to bind wth i915 just by request_symbol() without knowing that the initialization was skipped, and eventually it hits WARN_ON() in i915_request_power_well() and i915_release_power_well() wrongly but still continues probing, even though it doesn't work at all. In this patch, both functions are changed to return an error in case of uninitialized state instead of WARN_ON(), so that HD-audio driver can give up HDMI controller initialization at the right time. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: <stable@vger.kernel.org> [3.15] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-13ALSA: hda/realtek - Add more entry for enable HP mute ledKailang Yang
More HP machine need mute led support. Signed-off-by: Kailang Yang <kailang@realtek.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-13ALSA: hda - Add quirk for external mic on Lifebook U904David Henningsson
According to the bug reporter (Данило Шеган), the external mic starts to work and has proper jack detection if only pin 0x19 is marked properly as an external headset mic. AlsaInfo at https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1328587/+attachment/4128991/+files/AlsaInfo.txt Cc: stable@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1328587 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-13ALSA: hda - fix a fixup value for codec alc293 in the pin_quirk tableHui Wang
The fixup value for codec alc293 was set to ALC269_FIXUP_DELL1_MIC_NO_PRESENCE by a mistake, if we don't fix it, the Dock mic will be overwriten by the headset mic, this will make the Dock mic can't work. Cc: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-12ALSA: hda - verify pin:converter connection on unsol event for HSW and VLVMengdong Lin
This patch will verify the pin's coverter selection for an active stream when an unsol event reports this pin becomes available again after a display mode change or hot-plug event. For Haswell+ and Valleyview: display mode change or hot-plug can change the transcoder:port connection and make all the involved audio pins share the 1st converter. So the stream using 1st convertor will flow to multiple pins but active streams using other converters will fail. This workaround is to assure the pin selects the right conveter and an assigned converter is not shared by other unused pins. Signed-off-by: Mengdong Lin <mengdong.lin@intel.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-10ALSA: hda - Add quirk for ABit AA8XEDavid Henningsson
Bios does not set up the pin config default correctly (everything is set to zero). Reporter claims that 6stack-dig and 6stack-automute solve the problem. Alsa-info at http://www.alsa-project.org/db/?f=376c0804cbdde90bcd2cb94799407cb1cacf5d05 BugLink: https://bugs.launchpad.net/bugs/1319291 Reported-by: Stefano Statuti <stefano.statuti@hotmail.it> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-09Revert "ALSA: hda - mask buggy stream DMA0 for Broadwell display controller"Libin Yang
This reverts commit 7189eb9b8f7962474956196c301676470542f253. It will use LPIB to get the DMA position on Broadwell HDMI Audio. Signed-off-by: Libin Yang <libin.yang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-09ALSA: hda - using POS_FIX_LPIB on Broadwell HDMI AudioLibin Yang
Broadwell HDMI can't use position buffer reliably, force to use LPIB Signed-off-by: Libin Yang <libin.yang@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-06ALSA: hda/realtek - Add support of ALC667 codecKailang Yang
New codec suooprt of ALC667. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-06ALSA: hda/realtek - Add more codec renameKailang Yang
Some vendor has special bonding options. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-06ALSA: hda/realtek - New vendor ID for ALC233Kailang Yang
This is compatible with ALC255. It is use for Lenovo. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-06ALSA: hda - add two new pin tablesHui Wang
These two new pin tables can fix headset mic problems for several new Dell machines. And also delete some machines from old quirk table since the existing pin talbes already cover them. Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-05ALSA: hda/realtek - Add support of ALC891 codecKailang Yang
New codec support for ALC891. Signed-off-by: Kailang Yang <kailang@realtek.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-03Merge branch 'for-linus' into for-nextTakashi Iwai
Just to catch up a few small fixes for HD-audio and DMA engine.
2014-06-02ALSA: hda/realtek - Fix COEF widget NID for ALC260 replacer fixupTakashi Iwai
The conversion to a fixup table for Replacer model with ALC260 in commit 20f7d928 took the wrong widget NID for COEF setups. Namely, NID 0x1a should have been used instead of NID 0x20, which is the common node for all Realtek codecs but ALC260. Fixes: 20f7d928fa6e ('ALSA: hda/realtek - Replace ALC260 model=replacer with the auto-parser') Cc: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-06-02ALSA: hda/realtek - Correction of fixup codes for PB V7900 laptopRonan Marquet
Correcion of wrong fixup entries add in commit ca8f0424 to replace static model quirk for PB V7900 laptop (will model). [note: the removal of ALC260_FIXUP_HP_PIN_0F chain is also needed as a part of the fix; otherwise the pin is set up wrongly as a headphone, and user-space (PulseAudio) may be wrongly trying to detect the jack state -- tiwai] Fixes: ca8f04247eaa ('ALSA: hda/realtek - Add the fixup codes for ALC260 model=will') Signed-off-by: Ronan Marquet <ronan.marquet@orange.fr> Cc: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-30ALSA: hda/analog - Fix silent output on ASUS A8JNTakashi Iwai
ASUS A8JN with AD1986A codec seems following the normal EAPD in the normal order (0 = off, 1 = on) unlike other machines with AD1986A. Apply the workaround used for Toshiba laptop that showed the same problem. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=75041 Cc: <stable@vger.kernel.org> [3.11+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-29ALSA: hda - move some alc662 family machines to hda_pin_quirk tableHui Wang
Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-29ALSA: hda - move some alc269 family machines to hda_pin_quirk tableHui Wang
Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-29Revert "ALSA: hda - drop def association and sequence from pinconf comparing"Hui Wang
This reverts commit c687200b9d4ef60042a50f7d942cfef120cc7bf1. Dropping the def association and sequence from pinconf comparing is a bit risky, It will introduce a greater risk of catching unwanted machines. And in addition, so far no BIOS experts give us an explicit answer whether it makes senses to compare these two fields or not. For safety reason, we revert this commit. Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-27Merge branch 'topic/firewire' into for-nextTakashi Iwai
This is a merge of big firewire audio stack updates by Takashi Sakamoto.
2014-05-27ALSA: hda: fix tegra buildArnd Bergmann
When CONFIG_PM is disabled, the CONFIG_SND_HDA_POWER_SAVE_DEFAULT symbol does not get defined, which causes a build error for the hda-tegra driver: hda/hda_tegra.c:80:25: error: 'CONFIG_SND_HDA_POWER_SAVE_DEFAULT' undeclared here (not in a function) static int power_save = CONFIG_SND_HDA_POWER_SAVE_DEFAULT; ^ /git/arm-soc/sound/pci/hda/hda_tegra.c:235:13: warning: 'hda_tegra_disable_clocks' defined but not used [-Wunused-function] static void hda_tegra_disable_clocks(struct hda_tegra *data) ^ This works around the problem by not referencing that macro when CONFIG_PM is disabled. Instead, we assume that it's disabled unconditionally and cannot be enabled at runtime. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Cc: Dylan Reid <dgreid@chromium.org> Cc: Stephen Warren <swarren@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-26ALSA: hda - Pop noises fix for XPS13 9333Gabriele Mazzotta
When headphones are plugged in, force AFG and node 0x02 ("Headphone Playback Volume") to D0 to avoid pop noises. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=76611 Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-26ALSA: hda - add an instance to use snd_hda_pick_pin_fixupHui Wang
Just two members in the alc269_pin_fixup_tbl[] can cover more than 10 Dell laptop models. Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-26ALSA: hda - drop def association and sequence from pinconf comparingHui Wang
A lot a machine have the same codec, but they have different default pinconf setting just because the def association and sequence is different, as a result they can't share a hda_pintbl[], to overcome it, we don't compare def association and sequence in the pinconf matching. Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-26ALSA: hda - get subvendor from codec rather than pci_devHui Wang
It is safer for non-pci situation. Signed-off-by: Hui Wang <hui.wang@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-26ALSA: hda - Add a new quirk match based on default pin configurationDavid Henningsson
Normally, we match on pci ssid only. This works but needs new code for every machine. To catch more machines in the same quirk, let's add a new type of quirk, where we match on 1) PCI Subvendor ID (i e, not device, just vendor) 2) Codec ID 3) Pin configuration default If all these three match, we could be reasonably certain that the quirk should apply to the machine even though it might not be the exact same device. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-26ALSA: hda - Add fixup_forced flagDavid Henningsson
The "fixup_forced" flag will indicate whether a specific fixup (or nofixup) has been set by the user, to override the driver's default. This flag will help future patches. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-23ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsetsTakashi Iwai
The recent Intel H97/Z97 chipsets need the similar setups like other Intel chipsets for snooping, etc. Especially without snooping, the audio playback stutters or gets corrupted. This fix patch just adds the corresponding PCI ID entry with the proper flags. Reported-and-tested-by: Arthur Borsboom <arthurborsboom@gmail.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-22ALSA: Replace DEFINE_PCI_DEVICE_TABLE macro useBenoit Taine
We should prefer `const struct pci_device_id` over `DEFINE_PCI_DEVICE_TABLE` to meet kernel coding style guidelines. This issue was reported by checkpatch. A simplified version of the semantic patch that makes this change is as follows (http://coccinelle.lip6.fr/): // <smpl> @@ identifier i; declarer name DEFINE_PCI_DEVICE_TABLE; initializer z; @@ - DEFINE_PCI_DEVICE_TABLE(i) + const struct pci_device_id i[] = z; // </smpl> It has been tested by compilation. Signed-off-by: Benoit Taine <benoit.taine@lip6.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-21ALSA: hda/realtek - Add support headset mode for ALC233Kailang Yang
Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-21ALSA: hda - fix format type mismatch in sound/pci/hda/patch_sigmatel.cToralf Förster
Signed-off-by: Toralf Förster <toralf.foerster@gmx.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-21ALSA: hda - Disable AA-mix on Sony Vaio S13Takashi Iwai
The analog-loopback causes the speaker noises even if it's set to zero volume. As a simple workaround, just get rid of the loopback mixer. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=873704 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-21ALSA: hda - White noise fix for XPS13 9333Gabriele Mazzotta
Disable the AA-loopback path to get rid of the constant white noise that can be heard when headphones are used. Signed-off-by: Gabriele Mazzotta <gabriele.mzt@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-20ALSA: hda/tegra - Fix MODULE_DEVICE_TABLE typo.Dylan Reid
I missed a rename during the review process. Fix the MODULE_DEVICE_TABLE to match the structure. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-20ALSA: hda - Add driver for Tegra SoC HDADylan Reid
This adds a driver for the HDA block in Tegra SoCs. The HDA bus is used to communicate with the HDMI codec on Tegra124. Most of the code is re-used from the Intel/PCI HDA driver. It brings over only two of the module params, power_save and probe_mask. Signed-off-by: Dylan Reid <dgreid@chromium.org> Reviewed-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>