summaryrefslogtreecommitdiff
path: root/sound/pci
AgeCommit message (Collapse)Author
2012-04-26ALSA: HDA: set max_channel only based on LPCM capabilitySumit Bhattacharya
Set maximum supported channels of HDA driver based on the LPCM channel capability of the HDMI device. This is needed because user space decides number of PCM channels to be sent to kernel based on this information. Bug 960940 Change-Id: I59ae3b7d47dcf26f697bfb0877ca24556f0ab1fa Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/94831 Reviewed-on: http://git-master/r/98783 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Scott Peterson <speterson@nvidia.com> Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
2012-04-24hdmi: Set INJECT_NULL_SAMPLE only for stereo streamsSayak Ghosh Choudhury
Bug 953210 Change-Id: Id40b3fe90174a2a8c9a6faf3f35f61d9f7eeb642 Signed-off-by: Sayak Ghosh Choudhury <sayakc@nvidia.com> Reviewed-on: http://git-master/r/98477 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-03-23ALSA: HDA: Return -ENODEV if hdmi_pcm_open() failsSumit Bhattacharya
Return -ENODEV instead of -EAGAIN if hdmi_pcm_open() fails. There is a chance of user space getting hung while trying to open pcm device if -EAGAIN is returned. Bug 949659 Change-Id: If4ff4078d8e0d882859ac97742e7d48d2e6c230c Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/91819 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Scott Peterson <speterson@nvidia.com> Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
2012-03-23ALSA:hda: add alsa control for query of deviceSayak Ghosh Choudhury
alsa control is added to facilitate querying dts decode capability of connected device. dts decode capability of the connected device is updated in the ELD buffer. That information is updated in the ALSA control structure. In addition to that, the code is amended to handle other pass through decoder mode support. Bug 943017 Change-Id: If8da7dfb24be3b86592191f5586b70492282b438 Signed-off-by: Sayak Ghosh Choudhury <sayakc@nvidia.com> Reviewed-on: http://git-master/r/91813 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Scott Peterson <speterson@nvidia.com>
2012-03-09arm: tegra: hda: Improve resume timeScottPeterson
Improve the resume time of the HD Audio driver by replacing selected msleep() functions with mdelay(). msleep() return times are not deterministic. Signed-off-by: ScottPeterson <speterson@nvidia.com> Reviewed-on: http://git-master/r/86896 (cherry picked from commit eccbe7983d1b010cc60b49bfb13d041b3a0957d3) Change-Id: I261ba51e7f8414bca50076ae73473114a308645c Reviewed-on: http://git-master/r/88090 Reviewed-by: Scott Peterson <speterson@nvidia.com> Tested-by: Scott Peterson <speterson@nvidia.com>
2012-03-02ALSA: HDA: Don't power up hda codec from resumeSumit Bhattacharya
Remove snd_hda_power_up()/snd_hda_power_down() sequence from HDA codec resume since it add around 90ms delay. This code was not essential for HDA driver to work properly after suspend-resume cycle. Bug 932606 Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/80040 (cherry picked from commit 2ed8667c2bdfd4c8cbe371530b066b537aa9ae62) Change-Id: I0ffb120eb0a54f6c4e20aaf96c5ac2d0f5ab6949 Reviewed-on: http://git-master/r/87188 Tested-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-by: Scott Peterson <speterson@nvidia.com>
2012-03-02ALSA: HDA: Prevent delay in opening hdmi pcmSumit Bhattacharya
When monitor is plugged in instead of reading the complete ELD buffer only read the relavant bytes required to update pcm info. Go through the complete ELD buffer once LPCM sad ELD information is updated in ELD structure. This is required to reduce the delay in getting a valid PCM information which in turn delays opening of HDMI PCM stream. Also if a valid LPCM SAD ELD information is not available when hdmi_pcm_open is called then instead of looping inside hdmi_pcm_open return error to unblock other operations. User space should retry to open HDA PCM device after some time. Bug 931930 Bug 913739 Bug 906076 Change-Id: Iaaef3f0e361ae406c92605b056bd4dff9c2b7856 Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/83143 Reviewed-by: Scott Peterson <speterson@nvidia.com>
2012-02-13ALSA:hda: add alsa control for query of deviceSayak Ghosh Choudhury
alsa control is added to facilitate querying ac3 decode capability of connected device. ac3 decode capability of the connected device is updated in the ELD buffer. That information is updated in the ALSA control structure. Bug 909141 Bug 904553 Bug 920831 Change-Id: I81af196fc5dd85c5c87691393cf2f079611f9b47 Signed-off-by: Sayak Ghosh Choudhury <sayakc@nvidia.com> Reviewed-on: http://git-master/r/83067 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Scott Peterson <speterson@nvidia.com> Reviewed-by: Sumit Bhattacharya <sumitb@nvidia.com>
2012-02-09ALSA: hda - Fix silent outputs from docking-station jacks of Dell laptopsTakashi Iwai
commit b4ead019afc201f71c39cd0dfcaafed4a97b3dd2 upstream. The recent change of the power-widget handling for IDT codecs caused the silent output from the docking-station line-out jack. This was partially fixed by the commit f2cbba7602383cd9cdd21f0a5d0b8bd1aad47b33 "ALSA: hda - Fix the lost power-setup of seconary pins after PM resume". But the line-out on the docking-station is still silent when booted with the jack plugged even by this fix. The remainig bug is that the power-widget is set off in stac92xx_init() because the pins in cfg->line_out_pins[] aren't checked there properly but only hp_pins[] are checked in is_nid_hp_pin(). This patch fixes the problem by checking both HP and line-out pins and leaving the power-map correctly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42637 Change-Id: Ic0147c9a2f9067c6ec2277dbaebd714fdbd9daaa Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/79647 Reviewed-by: Automatic_Commit_Validation_User
2012-02-09commit b3a81520bd37a28f77cb0f7002086fb14061824d upstream.Takashi Iwai
The very same problem is seen on Haier W18 laptop with ALC861 as seen on ASUS A6Rp, which was fixed by the commit 3b25eb69. Now we just need to add a new SSID entry pointing to the same fixup. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42656 Change-Id: I3aa7e2b665fd04d3ffccee77d91798dd082a84e1 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/79662 Reviewed-by: Automatic_Commit_Validation_User
2012-02-09commit 3b25eb690e8c7424eecffe1458c02b87b32aa001 upstream.Takashi Iwai
The refactoring of Realtek codec driver in 3.2 kernel caused a regression for ASUS A6Rp laptop; it doesn't give any output. The reason was that this machine has a secret master mute (or EAPD) control via NID 0x0f VREF. Setting VREF50 on this node makes the sound working again. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42588 Change-Id: I62fd76bc3d3bc6321da52341531d32dbd1292edd Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/79661 Reviewed-by: Automatic_Commit_Validation_User
2012-01-24Merge branch 'linux-3.1.y' into android-tegra-nv-3.1Varun Wadekar
Linux 3.1.10 Change-Id: I465d184c492e8041dd0cd90f2cb70fde17ba7118 Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
2012-01-20ALSA: HDA: Fix MODPOST errorsSumit Bhattacharya
Bug 923312 Change-Id: I7c68f261989d2ca1ef7b273b7d41a519bc91c868 Reviewed-on: http://git-master/r/75700 Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com> Reviewed-by: Scott Peterson <speterson@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/76466 Reviewed-by: Automatic_Commit_Validation_User
2012-01-19ALSA: HDA: change hd-audio as freezable workqueueHaley Teng
bug 921335 Change-Id: Ie5810536f1693a93c365a8cd9a51e4e9906d8c1a Signed-off-by: Haley Teng <hteng@nvidia.com> Reviewed-on: http://git-master/r/74904 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com> Reviewed-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-by: Nitin Kumbhar <nkumbhar@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-on: http://git-master/r/75546 Tested-by: Varun Wadekar <vwadekar@nvidia.com>
2012-01-18ALSA: hda - Fix the lost power-setup of seconary pins after PM resumeTakashi Iwai
commit f2cbba7602383cd9cdd21f0a5d0b8bd1aad47b33 upstream. When multiple headphone or other detectable output pins are present, the power-map has to be updated after resume appropriately, but the current driver doesn't check all pins but only the first pin (since it's enough to check it for the mute-behavior). This resulted in the silent output from the secondary outputs after PM resume. This patch fixes the problem by checking all pins at (re-)init time. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740347 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-18ALSA: hda - Fix the detection of "Loopback Mixing" control for VIA codecsTakashi Iwai
commit 4808d12d1dddb046ec86425e5f6766f02e950292 upstream. Currently the driver checks only the out_mix_path[] for the primary output route for judging whether to create the loopback-mixing control or not. But, there are cases where aamix-routing is available only on headphone or speaker paths but not on the primary output path. So, the driver ignores such cases inappropriately. This patch fixes the check of the loopback-mixing control by testing all mix-routing paths. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-18ALSA: hda - Return the error from get_wcaps_type() for invalid NIDsTakashi Iwai
commit 3a90274de3548ebb2aabfbf488cea8e275a73dc6 upstream. When an invalid NID is given, get_wcaps() returns zero as the error, but get_wcaps_type() takes it as the normal value and returns a bogus AC_WID_AUD_OUT value. This confuses the parser. With this patch, get_wcaps_type() returns -1 when value 0 is given, i.e. an invalid NID is passed to get_wcaps(). Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740118 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-18ALSA: hda - Use auto-parser for HP laptops with cx20459 codecTakashi Iwai
commit de4da59e480cdf1075b33dbaf8078fc87bc52241 upstream. These laptops can work well with the auto-parser and their BIOS setups, and in addition, the auto-parser fixes the problem with S3/S4 where the unsol event handling is killed after resume due to fallback to the single-cmd mode. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740115 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-18ALSA: ice1724 - Check for ac97 to avoid kernel oopsPavel Hofman
commit e7848163aa2a649d9065f230fadff80dc3519775 upstream. Cards with identical PCI ids but no AC97 config in EEPROM do not have the ac97 field initialized. We must check for this case to avoid kernel oops. Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-18ALSA: HDA: Fix automute for Cirrus Logic 421xDavid Henningsson
commit 78e2a928e377d5124932d4399c6c581908b027a0 upstream. There was a bug in the automute logic causing speakers not to mute when headphones were plugged in. Tested-by: Hsin-Yi Chen <hychen@canonical.com> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-18ALSA: HDA: Fix master control for Cirrus Logic 421XDavid Henningsson
commit 40d03e63e91af8ddccdfd5a536cc2a6e51433e1d upstream. The control name "HP/Speakers" is non-standard, and since there is only one DAC on this chip there is no need for a virtual master anyway. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-11ALSA: HDA: Set position fix to LPIB for an Atom/Poulsbo based deviceDavid Henningsson
commit 1c89fe3b51a2f8068f2f9faa9c48584151416583 upstream. For the Asus 1101HA, reporting position by reading the DMA position buffer map seems unstable and often wrong. The reporter says that position_fix=LPIB works much better (although not 100%, but this is probably due to other issues). The controller chip is an Intel Poulsbo 8086:811b (rev 07) controller, and complete alsa-info is available here: https://launchpadlibrarian.net/86691768/alsa-info.txt.1TNwyE5Ea7 BugLink: http://bugs.launchpad.net/bugs/825709 Tested-by: Stefano Lodi Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Change-Id: Ib024489660295b8842215eb8a3cd25feec25e00d Reviewed-on: http://git-master/r/74605 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-01-06ALSA: HDA: Set position fix to LPIB for an Atom/Poulsbo based deviceDavid Henningsson
commit 1c89fe3b51a2f8068f2f9faa9c48584151416583 upstream. For the Asus 1101HA, reporting position by reading the DMA position buffer map seems unstable and often wrong. The reporter says that position_fix=LPIB works much better (although not 100%, but this is probably due to other issues). The controller chip is an Intel Poulsbo 8086:811b (rev 07) controller, and complete alsa-info is available here: https://launchpadlibrarian.net/86691768/alsa-info.txt.1TNwyE5Ea7 BugLink: http://bugs.launchpad.net/bugs/825709 Tested-by: Stefano Lodi Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2012-01-05Linux 3.1.7Varun Wadekar
Change-Id: I99507d7cfdcee064f808856dc2ce99d806fd864f
2011-12-21ALSA: hda - Fix GPIO LED setup for IDT 92HD75 codecsTakashi Iwai
commit f1a73746c6664442082e3d53e1804f46e1910436 upstream. Some HP laptops with IDT 92HD75 codecs may use a GPIO > 4 for the mute LED, but currently the driver doesn't check this properly, and confuses the mute LED behavior. This ended up with the silent output on some HP laptops due to having another GPIO used as external amp control. This patch fixes the problem by checking the max GPIO count and comparing with the given value from DMI entry instead of magic fixed value 4 and 8, and adding a new field to indicate the VREF mute-LED behavior. Reported-and-tested-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-21ALSA: hda/realtek - Fix Oops in alc_mux_select()Takashi Iwai
commit cce4aa378a049f4275416ee6302dd24f37b289df upstream. When no imux is available (e.g. a single capture source), alc_auto_init_input_src() may trigger an Oops due to the access to -1. Add a proper zero-check to avoid it. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-21ALSA: sis7019 - give slow codecs more time to resetDavid Dillow
commit fc084e0b930d546872ab23667052499f7daf0fed upstream. There are some AC97 codec and board combinations that have been observed to take a very long time to respond after the cold reset has completed. In one case, more than 350 ms was required. To allow users to have sound on those platforms, we'll wait up to 500ms for the codec to become ready. As a board may have multiple codecs, with some faster than others to reset, we add a module parameter to inform the driver which codecs should be present. Reported-by: KotCzarny <tjosko@yahoo.com> Signed-off-by: David Dillow <dave@thedillows.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-21ALSA: HDA: Disable all references of clocks at end of suspendSumit Bhattacharya
HDA driver used to enable clocks during suspend only if there is no active clock. But this logic causes a race condition when hda codec power work thread disables the active instance of hda clocks in middle of suspend. To avoid this race condition always enable HDA clocks at start of suspend operation and disable all active references of HDA clocks at end of suspend. Since HDA driver suspend also suspends all active codecs there is no chance of getting HDA clock disable call after completion of suspend. Bug 915436 Change-Id: I4956ba28488d6d445ea2d53fb2592897a2ad83bb Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/70315 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Scott Peterson <speterson@nvidia.com>
2011-12-14Merge branch 'linux-3.1.5' into android-tegra-nv-3.1Varun Wadekar
Conflicts: arch/arm/Kconfig Change-Id: If8aaaf3efcbbf6c9017b38efb6d76ef933f147fa Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
2011-12-09ALSA: hda - Fix S3/S4 problem on machines with VREF-pin mute-LEDCharles Chin
commit 88d686027bb43f585914c77dd363f6e817b42c2a upstream. The verb command in stac92xx_post_suspend caused the audio to stop working after resuming from S3 mode on HP laptops with the VREF-pin mute-LED control. Removing relevant post_suspend registering. Although removing D3 on AFG is no optimal solution, the impact should be small in comparison with the broken S3/S4. Signed-off-by: Charles Chin <Charles.Chin@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-09ALSA: hda/realtek - Fix missing inits of item indices for auto-micTakashi Iwai
commit 6759dc323826c2c806c998cd93945c5476688dd2 upstream. When the imux entries are rebuilt in alc_rebuild_imux_for_auto_mic(), the initialization of index field is missing. It may work without it casually when the original imux was created by the auto-parser, but it's definitely broken in the case of static configs where no imux was parsed beforehand. Because of this, the auto-mic switching doesn't work properly on some model options. This patch adds the missing initialization of index field. Reported-by: Dmitry Nezhevenko <dion@inhex.net> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-09ALSA: lx6464es - fix device communication via command busTim Blechmann
commit a29878553a9a7b4c06f93c7e383527cf014d4ceb upstream. commit 6175ddf06b6172046a329e3abfd9c901a43efd2e optimized the mem*io functions that have been used to send commands to the device. these optimizations somehow corrupted the communication with the lx6464es, that resulted the device to be unusable with kernels after 2.6.33. this patch emulates the memcpy_*_io functions via a loop to avoid these problems. Signed-off-by: Tim Blechmann <tim@klingt.org> LKML-Reference: <4ECB5257.4040600@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-09ALSA: hda - Fix jack-detection control of VT1708Takashi Iwai
commit 187d333edc0a8e1bb507900ce89853ffe3bd2c84 upstream. VT1708 has no support for unsolicited events per jack-plug, the driver implements the workq for polling the jack-detection. The mixer element "Jack Detect" was supposed to control this behavior on/off, but this doesn't work properly as is now. The workq is always started and the HP automute is always enabled. This patch fixes the jack-detect control behavior by triggering / stopping the work appropriately at the state change. Also the work checks the internal state to continue scheduling or not. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-12-08ALSA: hda: Support disabling of clocks for TegraSumit Bhattacharya
This change is basically a WAR. Tegra T30 HDA controller does not support presence detect event generateion when all HDA clocks are off. This change forcefully enables power disabling of HDA chip and clocks while not in use. As a side effect Tegra HDA driver misses the unsolicited HDMI plug in event when in power off mode. To overcome this limitation whenever user space tries to open an HDMI pcm stream Tegra HDA controller requests HDMI driver to setup presence detect registers after enabling the chip and waits until it gets valid ELD data. Bug 904530 Change-Id: I8c8cb6fe7935ba8b16c421beca68cb1d7f576212 Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/66972 Reviewed-by: Scott Peterson <speterson@nvidia.com>
2011-12-08ALSA: hda: Disable platform clocks when not requiredSumit Bhattacharya
Add support for disabling of platform driver clocks when HDA is idle to reduce HDA power consumption. Take care of enabling of HDA clocks before accessing any hardware register. Bug 904530 Change-Id: I51be7990e900cef3dac376d9635c48cd1ffbfa99 Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/66886 Reviewed-by: Scott Peterson <speterson@nvidia.com>
2011-11-30ALSA: hda: Set samplerate to Tegra HDMI driverSumit Bhattacharya
Set playback stream samplerate to Tegra HDMI driver. Bug 872652 Change-Id: Ie288ebf448e2000a53024e47941dfdc7aa9ce276 Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/64343 Reviewed-by: Scott Peterson <speterson@nvidia.com> Tested-by: Gerrit_Virtual_Submit Rebase-Id: R5f1e35081f70bcca2d6332abddda6883f883cbc8
2011-11-30ALSA: hda: Add Nvidia Tegra HDMI supportSumit Bhattacharya
Bug 872652 Change-Id: If6ad14d210c15c8692691af699e7c4c98790a4e3 Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/64337 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Gerrit_Virtual_Submit Rebase-Id: R6fe8a46dea1729df7dbba25c926d6dd2b1232fc5
2011-11-30ALSA: hda: Add support for Tegra HDA platform driver interfaceSumit Bhattacharya
Bug 872652 Change-Id: I10c18afb496a605d47a09c7c6dc924459b4728eb Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-on: http://git-master/r/64335 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Gerrit_Virtual_Submit Rebase-Id: Rbaf53a2382f50c1a552bafd9d54840779160b055
2011-11-30ALSA: hda: Add hda platform driver supportSumit Bhattacharya
It is possible that some chips have a HD-audio controller which is not installed on a PCI bus. Nvidia Tegra has Azalia HD-audio controller but it uses proprietery interface to communicate with the controller. This commit adds a platform driver interface support to HDA driver which can be used by non-PCI bus based HDA controller. Bug 872652 Signed-off-by: Sumit Bhattacharya <sumitb@nvidia.com> Change-Id: I73fb55858387f511738a09de3f52e7d326353ebf Reviewed-on: http://git-master/r/59504 Tested-by: Sumit Bhattacharya <sumitb@nvidia.com> Reviewed-by: Scott Peterson <speterson@nvidia.com> Reviewed-by: Stephen Warren <swarren@nvidia.com> Rebase-Id: R51a3866f0cb9889d947d6c7045ad7e8976cb3e69
2011-11-26ALSA: hda - fix ELD memory leakWu Fengguang
Backported from commit b95d68b8179764e29558b75cec35ef4a6a98925b. memset(eld) clears eld->proc_entry which will leak the struct snd_info_entry when unloading module. Fix it by - memset only the fields before eld->eld_buffer - set eld->eld_valid to true _after_ all eld fields have been filled Cc: Pierre-louis Bossart <pierre-louis.bossart@intel.com> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-26ALSA: hda - Fix the connection selection of ADCs on Cirrus codecsTakashi Iwai
commit 05ee7964a470d29889ac48cc8274c1b5a1904a11 upstream. spec->cur_adc isn't set until cs_capture_pcm_prepare() is called although the driver tries to select the connection at init time and at auto-mic switch. This results in the access to the widget NID 0, which is obviously invalid, also a wrong capture source. This patch fixes the issue by issuing the connect-select verb conditionally at appropriate places. Reported-and-tested-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-21ALSA: hda - Don't add elements of other codecs to vmaster slaveTakashi Iwai
commit aeb4b88ec0a948efce8e3a23a8f964d3560a7308 upstream. When a virtual mater control is created, the driver looks for slave elements from the assigned card instance. But this may include the elements of other codecs when multiple codecs are on the same HD-audio bus. This works at the first time, but it'll give Oops when it's once freed and re-created via reconfig sysfs. This patch changes the element-look-up strategy to limit only to the mixer elements of the same codec. Reported-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-21ALSA: hda - fix internal mic on Dell Vostro 3500 laptopJulian Wollrath
commit f7f9bdfadfda07afb904a9767468e38c2d1a6033 upstream. Fix the not working internal mic on Dell Vostro 3500 laptop by introducing the new model dell-vostro-3500. Signed-off-by: Julian Wollrath <jwollrath@web.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ALSA: hda - Fix a regression for DMA-position check with CA0110Takashi Iwai
commit 69f9ba9b0cad67bc03f0a096f7f274de795ca844 upstream. The regression-fix in 3.1 for the check of DMA-position validity caused yet another regression for CA0110. As usual, this hardware seems working only with LPIB properly. Adding the appropriate driver-caps bit to force LPIB fixes the problem. Reported-and-tested-by: Andres Freund <andres@anarazel.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ALSA: hda - Fix silent output regression with ALC861Takashi Iwai
commit 43dea228a3ba5463392281535dfb3d3fe56f4c2c upstream. The 3.1 kernel has a regression for ALC861 codec where no sound output is heard with the default setup. It's because the amps in DACs aren't properly unmuted while the output mixers are assigned only to pins. This patch fixes the missing initialization of DACs when no mixer is assigned to them. Tested-by: Andrea Iob <andrea_iob@yahoo.it> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ALSA: hda/realtek - Skip invalid digital out pinsTakashi Iwai
commit 51e4152a969aa6d2306492ebf143932dcb535c9b upstream. Some BIOS report invalid pins as digital output pins. The driver checks the connection but it doesn't do it fully correctly, and it leaves some undefined value as the audio-out widget, which makes the driver spewing warnings. This patch fixes the issue. Reference: https://bugzilla.novell.com/show_bug.cgi?id=727348 Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ALSA: hda/realtek - Don't create alt-stream for capture when unnecessaryTakashi Iwai
commit 1fa1757366783fb52e6e85c2d735db49b818d382 upstream. When the driver finds multiple ADCs, it tries to create an alternative capture PCM stream. However, these secondary ADCs might be useless or in uncontrolled paths in some cases, e.g. when auto-mic or dynamic ADC-switching is enabled. Also, when only a single capture source is available, the multi-streams don't make sense, too. With this patch, the driver checks such condition and skips the alt stream appropriately. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ALSA: hda - Add support for 92HD65 / 92HD66 family of codecsCharles Chin
commit ad5d8755116b431f0709c745ee17cb567a478d43 upstream. These codecs have SPDIF-in, which is new to the 92HD83xxx compatible families, so a bit of logic is added to support them. Signed-off-by: Charles Chin <Charles.Chin@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ALSA: hda - Disable power-widget control for IDT 92HD83/93 as defaultCharles Chin
commit 35c11777b906042eca9e6f1c03e464726c7faa07 upstream. The power-widget control in patch_stac92hd83xxx() never worked properly, thus it's safer to turn it off as default for now. Signed-off-by: Charles Chin <Charles.Chin@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-11-11ALSA: hda - Add missing static ADC tables for ALC269 quirksTakashi Iwai
[There is no upstream commit for this patch since the corresponding code was removed from 3.2 kernel. This is a regression found only in 3.1 kernel, so please apply this only to 3.1.x series.] Some ALC269 quirks define their own .cap_mixer field but without the static adc_nids[]. This resulted in the mismatch of ADC because ALC269 may have the widget 0x07 for another audio-in, and the auto-parser picks this up instead. This patch fixes the problem by adding the static adc_nids[] and co again to these entries. Tested-by: Chris Vine <chris@cvine.freeserve.co.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>