aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
Commit message (Collapse)AuthorAge
* Merge branch 'fix/hda' into topic/hdaTakashi Iwai2011-12-20
|\
| * ALSA: HDA: Use LPIB Position fix for Intel SCH PoulsboDavid Henningsson2011-12-15
| | | | | | | | | | | | | | | | | | | | Several people with this chipset have reported inconsistent/sloppy values for position reporting when the DMA position buffer is used, and that setting position_fix=1 have fixed their problems. BugLink: https://bugs.launchpad.net/bugs/825709 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda: fix mute led polarity for HP laptops with buggy BIOSGustavo Maciel Dias Vieira2011-12-13
| | | | | | | | | | | | | | | | | | Some HP laptop models do not have a properly filled OEM string used to set the gpio and polarity of the mute led. Make the mute led configuration work for this case. Signed-off-by: Gustavo Maciel Dias Vieira <gustavo@sagui.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: HDA: Set position fix to LPIB for an Atom/Poulsbo based deviceDavid Henningsson2011-12-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Cc: stable@kernel.org (3.0+) 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>
* | ALSA: hda - Check non-snoop in a single placeTakashi Iwai2011-12-14
| | | | | | | | | | | | | | Merge the checks for VIA and ATI-HDMI into a single place for better code-flow management. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: HDA: Add support for new AMD productsAndiry Xu2011-12-14
| | | | | | | | | | | | | | | | This patch adds HDMI audio support for new AMD products. As HW default disable snoop, force non-snoop mode in HD audio driver. Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda: remove unused quirk for inverted mute ledGustavo Maciel Dias Vieira2011-12-14
| | | | | | | | | | | | | | | | | | | | Commit b99a776d0b17ae0f3a54e86009887a00ac4889d0 removed all effects of the STAC92HD83* model quirk "hp". However, it left the model selection and documentation behind, confusing users with inverted mute leds. Completely remove this quirk and its documentation. Signed-off-by: Gustavo Maciel Dias Vieira <gustavo@sagui.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - GPIO to control mute LED may be enabled on HP systems with no ↵Vitaliy Kulikov2011-12-13
| | | | | | | | | | | | | | | | | | | | | | | | such HW This may lead to problems (like loss of sound) as GPIO pin may be used for different function (SPDIF OUT, EAPD etc) on those systems. This patch disables default mute LED GPIO configuration on all new codecs as all new HP systems are expected to provide explicit mute LED configuration in SMBIOS. Signed-off-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: HDA: Realtek: Take vmaster dac from multiout dac listDavid Henningsson2011-12-12
| | | | | | | | | | | | | | | | | | With the auto-parser we can choose the dac nid for vmaster from the DACs we already know, instead of hard-coding it. This is more future-proof and was actually wrong on one machine. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2011-12-07
|\| | | | | | | | | Conflicts: sound/pci/hda/patch_realtek.c
| * ALSA: hda/realtek - Fix lost speaker volume controlsTakashi Iwai2011-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When there are the same or more number of HP pins are available, HP pins are used as the primary outputs instead of the speaker pins. But, in some cases (especially with ALC663 & co), some DACs are available only with a later pin and it's assigned to a speaker, and since the driver parses the pins from the lower NID, such a DAC was skipped eventually without assignments. This resulted in a regression, the missing speaker volume control in the new parser. As a workaround for this, now the driver retries the pin->DAC mapping again after restoring the speaker-pins as primary. This is still an ad hoc fix, but it works so far for most of Realtek codecs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda/realtek - Create "Bass Speaker" for two speaker pinsTakashi Iwai2011-12-07
| | | | | | | | | | | | | | | | On systems with two speaker pins, the secondary speaker pin is mostly assigned to a bass speaker instead of a surround. Thus it makes more sense to rename the control properly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda/realtek - Don't create extra controls with channel suffixTakashi Iwai2011-12-07
| | | | | | | | | | | | | | | | | | | | | | The multiple headphone or speaker pins are usually provided to output the same stream unlike line-out jacks (which are supposed to be multi-channel surrounds). Thus giving a mixer name like "Headphone Surround" is rather confusing. Instead, when multiple headphone volumes are available, use index with the same "Headphone" name. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix remaining VREF mute-LED NID check in post-3.1 changesTakashi Iwai2011-12-06
| | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * Merge branch 'fix/hda-idt-fix' into fix/hdaTakashi Iwai2011-12-06
| |\
| | * ALSA: hda - Fix GPIO LED setup for IDT 92HD75 codecsTakashi Iwai2011-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Cc: <stable@kernel.org> [v3.1] Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda/realtek - Fix Oops in alc_mux_select()Takashi Iwai2011-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2011-12-01
|\| |
| * | ALSA: hda - Fix S3/S4 problem on machines with VREF-pin mute-LEDCharles Chin2011-12-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda_intel - revert a quirk that affect VIA chipsetsMarc Vertes2011-11-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This quirk sould be reverted. It has the following probems: 1) The quirk was intended to "ASUS MV2-MX SE" motherboards only, but the ID used matches a much broader range, potentially all boards containing a VIA chipset model in the family of vendor VIA 0x1106 and audio device ID 0x3288, which encompasses VIA-VT82xx, VIA-VT1xx and VIA-VT20xx chipsets. 2) VIA chipsets rely on azx_via_get_position() to handle correctly dma transfers during capture. Using POS_FIX_LPIB instead of POS_FIX_VIACOMBO leads to partially corrupted input buffers during capture. The effects of this bug are not immediately visible, it took strong DSP expertise, some expensive signal generator and a spectrum analyzer to identify it and verify correct behaviour using original default. 3) It's almost certain that the quirk did not fix the real problem, if there was one. Refer to original submission: http://mailman.alsa-project.org/pipermail/alsa-devel/2010-February/025109.html Signed-of-by: Marc Vertes <mvertes@sigfox.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Avoid touching mute-VREF pin for IDT codecsTakashi Iwai2011-11-29
| | | | | | | | | | | | | | | | | | | | | Some HP laptops use a pin VREF for controlling the mute LED, and such a pin shouldn't be powered off. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix jack-detection control of VT1708Takashi Iwai2011-11-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Cc: <stable@kernel.org> [v3.1] Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - cut and paste typo in cs420x_models[]Dan Carpenter2011-11-27
| | | | | | | | | | | | | | | | | | | | | | | | The CS420X_IMAC27 was copied from the line before but CS420X_APPLE was clearly intented. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Increase the max number of coverters/pins in patch_hdmi.cTakashi Iwai2011-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | The new hardware tends to have more and more. As a temporary fix, just increase the number for now. For a long-term solution, we should assign the cvts/pins dynamically. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | ALSA: hda - Supports more audio streamsTakashi Iwai2011-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far, the driver supports up to 10 streams. This is a restriction in hda_intel.c and hda_codec.c: in the former, the fixed array size limits the amount, and in the latter, the fixed device-number assignment table (in get_empty_pcm_device()) limits the possibility. This patch reduces the restriction by - using linked list for managing PCM instances in hda_intel.c, and - assigning non-fixed device numbers for the extra devices Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2011-11-23
|\| | | | | | | | | | | | | | Conflicts: sound/pci/hda/patch_realtek.c
| * | ALSA: hda/realtek - Minor cleanupTakashi Iwai2011-11-23
| |/ | | | | | | | | | | Use an inline function for the common pattern for assigning a capsrc. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda/realtek - Fix missing inits of item indices for auto-micTakashi Iwai2011-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Cc: <stable@kernel.org> [v3.1] Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix invalid pin and GPIO for Apple laptops with CS codecsTakashi Iwai2011-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The PCI SSID 8086:7270 is commonly used for multiple Apple machines, thus we can't use it as identifier for a unique model. Because of this conflict, some machines show weird behavior. For example, MacBook Air shows Front and Surround speakers although only Surround works due to the wrongly overridden pin-configuration for imac27. This patch fixes two things: - Stop the wrong pin-config override of imac27 by removing PCI SSID entry for avoiding the wrong mappings, - Add the generic GPIO setup for Apple machines by checking the codec SSID vendor bits Tested-by: Linus Torvalds <torvalds@linux-foundation.org> Tested-by: Dirk Hohndel <hohndel@infradead.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Check subdevice mask in snd_hda_check_board_codec_sid_config()Takashi Iwai2011-11-23
| | | | | | | | | | | | | | | | | | In snd_hda_check_board_codec_sid_config(), not only comparing with the exact value but allow the bit-mask comparison for vendor-only, etc. Tested-by: Linus Torvalds <torvalds@linux-foundation.org> Tested-by: Dirk Hohndel <hohndel@infradead.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - fail ELD reading earlyWu Fengguang2011-11-22
| | | | | | | | | | | | | | | | | | With the ELD repoll mechanism, we can (and should) fail the ELD reading immediately when find something obviously wrong and let the caller retry after some delay. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - repoll ELD content for multiple timesWu Fengguang2011-11-22
| | | | | | | | | | | | | | | | | | | | Improve the one-shot ELD repoll to up to 6 retries. Up to now the 300ms looks sufficient for the test boxes. However I'm a bit worried about how well it can fit the wider user base. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add pin fix for Alienware M17x R3Takashi Iwai2011-11-19
| | | | | | | | | | Reported-by: Albert Pool <albertpool@solcon.nl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix the connection selection of ADCs on Cirrus codecsTakashi Iwai2011-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2011-11-16
|\|
| * ALSA: hda - move eld->spk_alloc fixup to hdmi_update_eld()Wu Fengguang2011-11-16
| | | | | | | | | | | | | | It looks more natural and saves two lines of code. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - delayed ELD repollWu Fengguang2011-11-16
| | | | | | | | | | | | | | | | | | | | | | The Intel HDMI chips (ironlake at least) are found to have ~250ms delay between the ELD_Valid=1 hotplug event is send and the ELD buffer becomes actually readable. During the time the ELD buffer is mysteriously all 0. Fix it by scheduling a delayed work to re-read ELD buffer after 300ms. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - fix ELD memory leakWu Fengguang2011-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: <stable@kernel.org> 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>
| * ALSA: hda/realtek: remove redundant semicolonJesper Juhl2011-11-14
| | | | | | | | | | | | | | Having just one semicolon after a break statement is enough. Signed-off-by: Jesper Juhl <jj@chaosbits.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - pwr_nids cleanup for IDT codecsCharles Chin2011-11-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up and fix pwr_nids for 92HD71 / 73 / 83 family codecs; remove pwr_mapping which was incorrect. The original pwr_nids support of 92HD83xxx was incorrect and never actually worked before. Now we should have things working correctly without having to hack by DID anymore. It is also not necessary to explicitly turn on all the pins near the beginning of patch_stac92hd83xxx() now, the pins will go though initialization properly. Tested on 92HD66 / 71 / 73 / 75 / 83 / 89 / 91 demo boards. Signed-off-by: Charles Chin <Charles.Chin@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Move ALC880 model=lg-lw to auto-parserTakashi Iwai2011-11-15
| | | | | | | | | | | | ALC880 model=lg-lw works fine with the auto-parser as is. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Move ALC880 model=medion-rim to auto-parserTakashi Iwai2011-11-15
| | | | | | | | | | | | | | Translate ALC880 medion-rim static configs to the auto-parser with the additional GPIO2 verb and COEF setup. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Move ALC885 macpro and imac24 models to auto-parserTakashi Iwai2011-11-14
| | | | | | | | | | | | | | The ALC882 macpro and imac24 static configs can be transferred to the auto-parser with the additional GPIO setup. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Re-add the model string selection for ALC88xTakashi Iwai2011-11-14
| | | | | | | | | | | | | | | | In the commit [c3e837bb: ALSA: hda/realtek - Rewrite ALC882 acer-aspire-* models with the auto-parser], the check of the model option got removed mistakenly. Re-added the board_config check again. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Remove left-over chunks in alc882_quirks.cTakashi Iwai2011-11-14
| | | | | | | | | | | | Remove unused variables. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Create mono volume controls for mono-outputsTakashi Iwai2011-11-14
| | | | | | | | | | | | | | When the pin or the DAC doesn't support the stereo, create a mono control instead of creating a stereo control blindly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Rewrite ALC882 acer-aspire-* models with the auto-parserTakashi Iwai2011-11-10
| | | | | | | | | | | | | | Now we can move the big acer-aspire-* static quirks to the auto-paresr with some additional pin-configs and verbs. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda/realtek - Create multi-io jacks more aggresivelyTakashi Iwai2011-11-10
| | | | | | | | | | | | | | | | | | So far the driver creates the multi-io jacks only when a single output jack, i.e. no multiple speakers are assigned. This patch adds the similar multi-io detection even with multiple speakers are assigned primarily, so that 5.1-speakers + HP/mic/LI combination can work. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2011-11-10
|\|
| * ALSA: hda - Re-enable the check NO_PRESENCE misc bitTakashi Iwai2011-11-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We disabled the check of NO_PRESENCE bit of the default pin-config in commit f4419172 temporarily. One problem was that the first implementation was wrong -- the bit after the shift must be checked. However, this would still give many regressions on machines with broken BIOS. They set this bit wrongly even on active pins. A workaround is to check whether all pins contain this bit. As far as I've checked, broken BIOSen set this bit on all pins, no matter whether active or not. In such a case, the driver should ignore this bit check. Signed-off-by: Takashi Iwai <tiwai@suse.de>