aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/hda
AgeCommit message (Collapse)Author
2009-08-31Merge branch 'fix/hda' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Fix MacBookPro 3,1/4,1 quirk with ALC889A ALSA: hda - Add missing mux check for VT1708
2009-08-31ALSA: hda - Fix MacBookPro 3,1/4,1 quirk with ALC889ATakashi Iwai
This patch fixes the wrong headphone output routing for MacBookPro 3,1/4,1 quirk with ALC889A codec, which caused the silent headphone output. Also, this gives the individual Headphone and Speaker volume controls. Reference: kernel bug#14078 http://bugzilla.kernel.org/show_bug.cgi?id=14078 Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-08-31ALSA: hda - Add missing mux check for VT1708Takashi Iwai
In patch_vt1708(), the check of MUX nids is missing and this results in the -EINVAL error in accessing Input Source mixer element. Simpliy adding the call of get_mux_nids() fixes the problem. Reference: Novell bnc#534904 https://bugzilla.novell.com/show_bug.cgi?id=534904 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-20Merge branch 'fix/hda' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Fix probe of Toshiba laptops with ALC268 codec ALSA: hda: add model for Intel DG45ID/DG45FC boards ALSA: hda: enable speaker output for Compaq 6530s/6531s
2009-08-19ALSA: hda - Fix probe of Toshiba laptops with ALC268 codecTakashi Iwai
There are many variants of Toshiba laptops with ALC268 codec, and it seems that a few of them don't work with model=toshiba preset since they have the secondary ALC268 codec just for HDMI output. This is a regression due to the previous clean-up work to merge all Toshiba quirk entries into a single check. This patch adds the identification of such laptops to apply the standard BIOS-probing method. Unfortunately, Toshiba laptops have all the same PCI SSID, so we need to check the codec SSID to identify each device. Tested-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-19ALSA: hda: add model for Intel DG45ID/DG45FC boardsWu Fengguang
The BIOS pin configs are in fact correct and shall not be overwritten. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-19ALSA: hda: enable speaker output for Compaq 6530s/6531sWu Fengguang
HP Compaq 6530s and 6531s internal speaker is silence or becomes silence within 1 minute after fresh boot. It is found that pin 0x1c must be set to PIN_OUT mode to make the speaker work. This is weird - line-in pin 0x1c and speaker pin 0x16 seem to be unrelated. The codec differences before/after patch are: @@ Node 0x17 [Pin Complex] wcaps 0x40020b: Pin Default 0x41a6e130: [N/A] Mic at Ext Rear Conn = Digital, Color = White DefAssociation = 0x3, Sequence = 0x0 Misc = NO_PRESENCE - Pin-ctls: 0x24: IN + Pin-ctls: 0x40: OUT @@ Node 0x1c [Pin Complex] wcaps 0x40018d: Pin Default 0x41813021: [N/A] Line In at Ext Rear Conn = 1/8, Color = Blue DefAssociation = 0x2, Sequence = 0x1 - Pin-ctls: 0x24: IN VREF_80 + Pin-ctls: 0x40: OUT VREF_HIZ Unsolicited: tag=00, enabled=0 Connection: 1 0x24 Tests show that it won't impact (external) Mic recording. Reported-by: "Lin, Ming M" <ming.m.lin@intel.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-12Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Don't override ADC definitions for ALC codecs ALSA: hda - Add missing vmaster initialization for ALC269
2009-08-11ALSA: hda - Don't override ADC definitions for ALC codecsTakashi Iwai
ALC269 and ALC861-VD parsers override the ADC definitions unconditionally without checking the spec definition. This causes the problem when any inconsistent ADC is set up in the device quirk (like ALC272 with digital-mic). This patch avoids the overriding by adding the proper checks. Reference: Novell bnc#529467 https://bugzilla.novell.com/show_bug.cgi?id=529467 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-10ALSA: hda - Add missing vmaster initialization for ALC269Takashi Iwai
Without the initialization of vmaster NID, the dB information got confused for ALC269 codec. Reference: Novell bnc#527361 https://bugzilla.novell.com/show_bug.cgi?id=527361 Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-08-04Merge branch 'fix/hda' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Read buffer overflow ALSA: hda: Correct EAPD for Dell Inspiron 1525 ALSA: hda: warn on spurious response ALSA: hda: remember last command for each codec ALSA: hda: read CORBWP inside reg_lock ALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_io ALSA: hda: take cmd_mutex in probe_codec() ALSA: hda: track CIRB/CORB command/response states for each codec ALSA: hda - Fix quirk for Toshiba Satellite A135-S4527
2009-08-03ALSA: hda - Read buffer overflowRoel Kluin
Check whether index is within bounds before testing the element. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: Correct EAPD for Dell Inspiron 1525Chengu Wang
The commit 24918b61b55c21e09a3e07cd82e1b3a8154782dc statically changes the model from dell-bios to dell-3stack to solve the sound decreasing regression (http://lkml.org/lkml/2008/9/12/203), however it leads to another problem that the 2nd headphone jack doesn't work (https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3987). So I think the commit 249**2dc is just a workaround. I would like to give a true solution here. The datasheet for STAC9228 says, GPIO2 is the same pin as VOL DOWN, and the EAPD pin is GPIO0. This is why the sound decreases if we set EAPD as GPIO2. This patch changes EAPD to GPIO0 to solve the problem. Signed-off-by: Chengu Wang <wangchengu@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: warn on spurious responseWu Fengguang
To help disclose hardware bugs. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: remember last command for each codecWu Fengguang
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: read CORBWP inside reg_lockWu Fengguang
This converts the last CORBWP access outside of reg_lock. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_ioWu Fengguang
Just for safety. azx_init_cmd_io() and azx_free_cmd_io() may be called when switching to single command mode. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: take cmd_mutex in probe_codec()Wu Fengguang
Now that each codec will have its own module, it is possible for the user to load one codec while another one is running. So cmd_mutex would be a safe addition to probe_codec(). Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda: track CIRB/CORB command/response states for each codecWu Fengguang
Recently we hit a bug in our dev board, whose HDMI codec#3 may emit redundant/spurious responses, which were then taken as responses to command for another onboard Realtek codec#2, and mess up both codecs. Extend the azx_rb.cmds and azx_rb.res to array and track each codec's commands/responses separately. This helps keep good codec safe from broken ones. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-08-03ALSA: hda - Fix quirk for Toshiba Satellite A135-S4527Takashi Iwai
Use model=lenovo instead of model=dallas for Toshiba Satellite A135-S4527 with ALC861-VD codec. Reference: Novell bnc#526325 https://bugzilla.novell.com/show_bug.cgi?id=526325 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-31Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Increase PCM stream name buf in patch_realtek.c ALSA: hda: fix out-of-bound hdmi_eld.sad[] write ALSA: hda - Add quirk for Dell Studio 1555
2009-07-31ALSA: hda - Increase PCM stream name buf in patch_realtek.cTakashi Iwai
The name buf with size 16 is too short for some codec names, e.g. truncated like "ALC861-VD Analo". Now the size is doubled. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-29ALSA: hda: fix out-of-bound hdmi_eld.sad[] writeRoel Kluin
e->sad[] is declared with size ELD_MAX_SAD=16, but the guard allows range 0-31. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-28ALSA: hda - Add quirk for Dell Studio 1555Takashi Iwai
Added a quirk entry for Dell Studio 1555. Reference: Novell bnc#525244 https://bugzilla.novell.com/show_bug.cgi?id=525244 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-26Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Fix mute control with some ALC262 models ALSA: hda - Restore GPIO1 properly at resume with AD1984A ALSA: hda - Use snprintf() to be safer
2009-07-24ALSA: hda - Fix mute control with some ALC262 modelsTakashi Iwai
The master mute switch is wrongly implemented as checking the pointer instead of its value, thus it can be never muted. This patch fixes the issue. Reference: Novell bnc#404873 https://bugzilla.novell.com/show_bug.cgi?id=404873 Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-07-22ALSA: hda - Restore GPIO1 properly at resume with AD1984ATakashi Iwai
The commit 099db17e66294b02814dee01c81d9abbbeece93e introduced a regression at suspend/resume where the GPIO1 bit isn't properly restored, thus the speaker output gets muted initially after resume. The fix is simple, use the cached write for storing GPIO data. Reference: Novell bnc#522764 https://bugzilla.novell.com/show_bug.cgi?id=522764 Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-22ALSA: hda - Use snprintf() to be saferTakashi Iwai
Use snprint() for creating the jack name string instead of sprintf() in patch_sigmatel.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-21Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecs ALSA: hda - Add quirk for Gateway T6834c laptop ALSA: hda_codec: Check for invalid zero connections
2009-07-20ALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecsTakashi Iwai
The recent rewrite of the codec parser for STAC9872 caused a regression for some Sony VAIO models that don't give proper pin default configs by BIOS. Even using model=vaio doesn't work because the pin definitions are set after the pin overrides. This patch fixes the pin definitions in patch_stac9872() to be put in the right place before the pin overrides. Also the patch adds the new quirk entry for VAIO F/S to have the correct pin default configs. Signed-off-by: Takashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
2009-07-20ALSA: hda - Add quirk for Gateway T6834c laptopHao Song
Gateway T6834c laptops need EAPD always on while the default behavior for the STAC9205 reference board is to turn it off upon every HP plug. By using the special "eapd" model, which is first introduced for Gateway T1616 laptops for this same reason, this peculiarity can be properly handled. Signed-off-by: Hao Song <baritono.tux@gmail.com> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-19ALSA: hda_codec: Check for invalid zero connectionsJaroslav Kysela
To prevent "Too many connections" message and the error path for some HDMI codecs (which makes onboard audio unusable), check for invalid zero connections for CONNECT_LIST verb. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-16Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda_intel: more strict alc880_parse_auto_config dig_nid checking
2009-07-10ALSA: hda_intel: more strict alc880_parse_auto_config dig_nid checkingJaroslav Kysela
On some IbexPeak systems with ALC889A errors like "azx_get_response timeout, switching to polling mode: last cmd=0xaf9f000b" are produced, because non-existent codec #10 is wrongly accessed. The problem is that snd_hda_get_connections() returns out-of-range result for NID 0x1c (something like 0xf8f9 or 0xffff). This patch adds a check to alc880_parse_auto_config() to avoid using of this out-of-range NIDs. A better fix maybe to improve snd_hda_get_connections() routine to check for valid NID ranges if NIDs are expected as result. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-10Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - targa and targa-2ch fix ALSA: hda - fix beep tone calculation for IDT/STAC codecs ALSA: hda - Missing volume controls for Intel HDA (ALC269/EeePC) ALSA: hda - Disable AMD SB600 64bit address support only ALSA: hda - Check widget types while parsing capture source in patch_via.c ALSA: hda - Fix capture source selection in patch_via.c ALSA: hda - Add missing EAPD initialization for VIA codecs ALSA: hda - Clean up VT170x dig-in initialization code ALSA: hda - Fix error path in the sanity check in azx_pcm_open() ALSA: hda - move 8086:fb30 quirk (stac9205) to the proper section
2009-07-09ALSA: hda - targa and targa-2ch fixDavid Heidelberger
Simplify ALC882_TARGA and return gpio3 to ALC883_TARGA_DIG and ALC883_TARGA_2ch_DIG, which I accidentally removed in commit id 64a8be74357477558183b43156c5536b642de134 Signed-off-by: David Heidelberger <d.okias@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-09ALSA: hda - fix beep tone calculation for IDT/STAC codecsPaul Vojta
In the beep tone calculation for IDT/STAC codecs, lower numbers correspond to higher frequencies and vice versa. The current code has this backwards, resulting in beep frequencies which are way too high (and sound bad on tinny laptop speakers, resulting in complaints). [Also added hz <= 0 check by tiwai] Signed-off-by: Paul Vojta <vojta@math.berkeley.edu> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-08ALSA: hda - Missing volume controls for Intel HDA (ALC269/EeePC)Darren Salt
There is a regression, introduced in aa202455eec51699e44f658530728162cefa1307 (in alsa-kernel) which I noticed when trying to use the headphone socket on my EeeCPC 901: the output was *very* quiet, practically silent. This patch corrects the control types to that which was obviously intended in the referenced commit. Signed-off-by: Darren Salt <linux@youmustbejoking.demon.co.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-08ALSA: hda - Disable AMD SB600 64bit address support onlyAndiry Brienza
HDA driver disabled HD audio 64bit address support for all AMD SB600/SB700/SB800 platforms with commit 09240cf429505891d6123ce14a29f58f2a60121e due to one SB600 issue reported by community, but we do not see the similar issue on SB700/SB800 platforms. This patch is to refine the workaround for SB600 only. Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-08ALSA: hda - Check widget types while parsing capture source in patch_via.cTakashi Iwai
Check the widget type and don't take invalid widgets while parsing the capture source in patch_via.c. Also, fixed some compile warnings introduced in the previous commit. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-07ALSA: hda - Fix capture source selection in patch_via.cTakashi Iwai
The fixed widget NIDs in patch_via.c seem wrong for some codecs, and it resulted in the invalid capture source selection. This patch adds the code to parse the topology instead of using fixed numbers in order to get the right MUX widget id corresponding to the ADCs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-07ALSA: hda - Add missing EAPD initialization for VIA codecsTakashi Iwai
If the output pin is used and EAPD capability is present, turn on the EAPD bit. This fixes the silent output problem on ASUS laptops with VT1708S codec. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-07ALSA: hda - Clean up VT170x dig-in initialization codeTakashi Iwai
Minor clean up for initializing the digital-in pin. No functional changes. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-05ALSA: hda - Fix error path in the sanity check in azx_pcm_open()Takashi Iwai
Release resources cleanly after errors in the sanity check in azx_pcm_open(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-04ALSA: hda - move 8086:fb30 quirk (stac9205) to the proper sectionHerton Ronaldo Krzesinski
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-03Merge branch 'fix/hda' into for-linusTakashi Iwai
* fix/hda: ALSA: hda - Add sanity check in PCM open callback ALSA: hda - Call snd_pcm_lib_hw_rates() again after codec open callback ALSA: hda - Avoid invalid formats and rates with shared SPDIF ALSA: hda - Improve ASUS eeePC 1000 mixer ALSA: hda - Add GPIO1 control at muting with HP laptops
2009-07-03ALSA: hda - Add sanity check in PCM open callbackTakashi Iwai
Add some sanity checks of struct snd_pcm_hardware fields in the PCM open callback of hda driver. This makes a bit easier to debug any PCM setup errors in the codec side. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-03ALSA: hda - Call snd_pcm_lib_hw_rates() again after codec open callbackTakashi Iwai
The PCM rates bit field may have been changed by the codec open callback. In that case, we need to reset rate_min and rate_max. So, simply call snd_pcm_lib_hw_rates() again after the codec open callback. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-03ALSA: hda - Avoid invalid formats and rates with shared SPDIFTakashi Iwai
Check whether formats and rates don't result in zero due to the restriction of SPDIF sharing. If any of them can be zero, disable the SPDIF sharing mode instead. Otherwise it will lead to a PCM configuration error. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-07-03ALSA: hda - Improve ASUS eeePC 1000 mixerTakashi Iwai
The mixer elements created for ASUS eeePC 1000 with ALC269 aren't standard but strange words like "LineOut". Rename the element names to follow the standard one like "Headphone" and "Speaker". Also, split the volumes to each so that the virtual master can control them. The alc269_fujitsu_mixer is removed because it's now identical with the new eeepc mixer. Signed-off-by: Takashi Iwai <tiwai@suse.de>