summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'fix/hda' into topic/hdaTakashi Iwai2012-06-2611-26/+73
|\
| * ALSA: hda - Fix power-map regression for HP dv6 & coTakashi Iwai2012-06-261-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The recent fix for power-map controls (commit b0791dda813) caused regressions on some other HP laptops. They have fixed pins but these pins are exposed as jack-detectable. Thus the driver tries to control the power-map dynamically per jack detection where it never gets on. This patch adds the check of connection and it assumes the no jack detection is available for fixed pins no matter what pin capability says. BugLink: http://bugs.launchpad.net/bugs/1013183 Reported-by: Luis Henriques <luis.henriques@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Initialize caches at codec reconfigurationTakashi Iwai2012-06-261-0/+2
| | | | | | | | | | | | | | Better to clean up the caches for avoiding inconsistent codec state after the reconfiguration. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix memory leaks at module unloadTakashi Iwai2012-06-261-0/+2
| | | | | | | | | | | | | | Some caches aren't released properly at module unloading time. Cc: <stable@vger.kernel.org> [v3.4+] Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix memory leaks in Realtek & Conexant codec parsersTakashi Iwai2012-06-264-2/+16
| | | | | | | | | | | | When moved to the helper code, forgot to release the verb arrays. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Add Realtek ALC280 codec supportDavid Henningsson2012-06-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | This chip looks very similar to ALC269 and ALC27* variants. The bug reporter has verified that sound was working after this patch had been applied. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/1017017 Tested-by: Richard Crossley <richardcrossley@o2.co.uk> Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Remove obsoleted CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKSTakashi Iwai2012-06-251-13/+0
| | | | | | | | | | | | | | I simply forgot to remove this entry although all Realtek quirks have been dropped. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ASoC: wm8994: remove duplicate codeJaroslav Kysela2012-06-251-3/+0
| | | | | | | | | | | | | | It seems that the code duplication was added at a merge operation. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: usb-audio: add BOSS GT-100 supportClemens Ladisch2012-06-251-0/+30
| | | | | | | | | | | | | | Reported-by: John McFarland <mcfarljm@gmail.com> Tested-by: John McFarland <mcfarljm@gmail.com> Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: HDA: Add inverted internal mic quirk for Lenovo S205David Henningsson2012-06-211-0/+1
| | | | | | | | | | | | | | | | | | The Lenovo Ideapad S205 has an internal mic where the right channel is phase inverted. BugLink: https://bugs.launchpad.net/bugs/884652 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda - Fix ALC272X codec detectionTakashi Iwai2012-06-211-6/+6
| | | | | | | | | | | | | | | | | | The codec ALC272X is a special codec for some Dell machines, and its detection got broken in the recent kernel because SSID check (required by ALC272X check) was moved to the later point. Now we need to move this codec check to the right place, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: snd_usb_audio: ignore ctrl errors on QuickCam Pro for NotebooksOleksij Rempel2012-06-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This webcam works mostly ok, exept with skype. Skype sends lots of ctrl messages to dynamically ajust record level. If for some reasons it pokes some error every thing goes broken: - first pulseaudio blocks sound for all apps - then video is reseted - then skype freez dmesg has lots of messages like: cannot set freq 16000 to ep 0x86" Setting ignore_ctl_error=1 fixes this problem. Signed-off-by: Oleksij Rempel <bug-track@fisher-privat.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: snd_usb_audio: ignore ctrl errors on QuickCam E3500Oleksij Rempel2012-06-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | if this cam is pluged in, pulse audio can't initiate capture device. dmesg has lots of messages like: "cannot set freq 16000 to ep 0x86" Setting ignore_ctl_error=1 fixes this problem. Signed-off-by: Oleksij Rempel <bug-track@fisher-privat.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: 6fire: use NULL instead of 0 for pointer assignmentDaniel Mack2012-06-181-1/+1
| | | | | | | | | | | | Signed-off-by: Daniel Mack <zonque@gmail.com> Cc: Torsten Schenk <torsten.schenk@zoho.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Update documentation for Realtek codecs model stringsTakashi Iwai2012-06-251-2/+8
| | | | | | | | Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Remove suprefluous EAPD init verbs for ALC660vdTakashi Iwai2012-06-251-11/+0
| | | | | | | | | | | | The EAPD on nodes 0x14 and 0x15 are initialized in alc_auto_setup_eapd(). Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add inv-dmic model to possible Realtek codecsTakashi Iwai2012-06-251-12/+52
| | | | | | | | | | | | | | | | | | | | | | | | For convenience, add "inv-dmic" model string for enabling the inverted internal mic workaround to possible Realtek codecs, so far, ALC882-variants, ALC262, ALC268, ALC269-variants, and ALC662-variants. Also, the model strings for hardware inv-dmic workarounds, "alc269-dmic" and "alc271-dmic", are added for ALC269(VA) and ALC271 codecs as well. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add inverted mic quirks for Asus U41SV, Acer 1810TZ and AOD260David Henningsson2012-06-251-6/+17
| | | | | | | | | | | | | | | | | | | | | | These machines have inverted phase on right channel for their internal mics. BugLink: https://bugs.launchpad.net/bugs/997227 BugLink: https://bugs.launchpad.net/bugs/996611 BugLink: https://bugs.launchpad.net/bugs/1006089 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Add the inverted digital mic workaround to Realtek codecsTakashi Iwai2012-06-251-2/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some laptops are equipped with ForteMedia digital mics that give the differential input. With such devices, summing stereo streams into a mono (like PulseAudio does) results in almost silence. This patch provides a workaround for this bug by adding a new mixer switch to turn on/off the right channel of digital mic, just like a similar fix for Conexant codecs. When the new switch "Inverted Internal Mic Capture Switch" is off and the current input source is the digital mic, the right channel of the recording stream is muted. When another input source is selected, the right channel is restored. Tested-by: Eliot Blennerhassett <eliot@blennerhassett.gen.nz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Don't power up when not powered down.Dylan Reid2012-06-221-0/+7
| | | | | | | | | | | | | | | | | | After cancel_delayed_work_sync returns, the power down work either never started (power_on == 1) or finished (power_on == 0). In the former case there is no need to power up again. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Correct info print in HDMI non-intrinsic unsol eventTakashi Iwai2012-06-211-1/+1
| | | | | | | | | | | | | | In the recent code, the value shown there is a tag number, and it's no longer same as the pin nid. Correct the message to avoid confusion. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Don't rely on event tag for simple_hdmiTakashi Iwai2012-06-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | VIA codecs seem not returning the event tag in the unsolicited events, thus the current code relying on the tag value doesn't work. Since simple_hdmi stuff has only a single pin, we can use simply snd_hda_jack_set_dirty_all() to activate the pin-detection independently from the tag value. Tested-by: Annie Liu <AnnieLiu@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Remove loop from simple_hdmi*()Takashi Iwai2012-06-211-42/+27
| | | | | | | | | | | | | | | | The simple_hdmi stuff is designed only for a single pin and a single converter (thus a single PCM stream), and no need for loops. Let's flatten the code. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: hda - Move one-time init codes from generic_hdmi_init()Takashi Iwai2012-06-201-5/+17
| | | | | | | | | | | | | | | | | | The codes to initialize work struct or create a proc interface should be called only once and never although it's called many times through the init callback. Move that stuff into patch_generic_hdmi() so that it's called only once. Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | Merge branch 'fix/hda' into topic/hdaTakashi Iwai2012-06-2024-165/+258
|\| | | | | | | The fix for power sequence needs to be merged back to topic branch.
| * ALSA: hda - Handle open while transitioning to D3.Dylan Reid2012-06-183-10/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This addresses an issue encountered when a pcm is opened while transitioning to low power state (codec->power_on == 1 && codec->power_transition == -1). Add snd_pcm_power_up_d3wait to hda_codec. This function is used to power up from azx_open as opposed to snd_hda_power_up used from codec_exec_verb. When powering up from azx_open, wait for pending power downs to complete, avoiding the power up continuing in parallel with the power down on the work queue. The specific issue seen was with the CS4210 codec, it powers off the ADC and DAC nid in its suspend handler. If it is re-opened before the ~100ms power down process completes, the ADC and DAC nid are initialized while powered down and audio is lost until another suspend/resume cycle. Signed-off-by: Dylan Reid <dgreid@chromium.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: snd-usb: make snd_usb_substream_capture_trigger staticDaniel Mack2012-06-181-1/+2
| | | | | | | | | | Signed-off-by: Daniel Mack <zonque@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: snd-usb: fix sync pipe checkDaniel Mack2012-06-181-7/+11
| | | | | | | | | | | | | | | | | | | | | | Fix a bogus sanity check for sync pipe in pcm.c. This flaw was introduced during the streaming logic refactorization. While at it, improve the error messages that are generated in such cases. Signed-off-by: Daniel Mack <zonque@gmail.com> Reported-and-tested-by: <ben@b1c1l1.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * Merge tag 'asoc-3.5' of ↵Takashi Iwai2012-06-187-47/+43
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for 3.5 All driver specific and fairly small. The pxa-ssp changes are larger than I'd like but they're build failures and are pretty clear to inspection.
| | * ASoC: tegra+wm8903: turn of mic detect when card is removedStephen Warren2012-06-121-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If mic detect is left enabled and the WM8903 detects a status change, the WM8903 driver will make a callback against the free()d jack, which will cause a crash. This problem can be triggered by fully initializing an audio card, then removing and re-inserting the machine driver module. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8996: Mark the CODEC as cache only when powering off on bootMark Brown2012-06-111-2/+1
| | | | | | | | | | | | | | | | | | Otherwise we might try to write to a powered off device. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8996: Move reset before the initial regulator disableMark Brown2012-06-111-2/+2
| | | | | | | | | | | | | | | | | | | | | If we don't have control over the LDO but do have control over the other regulators then we may end up trying to write to a powered off device. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8996: Remove spurious regulator_bulk_free()Mark Brown2012-06-111-1/+0
| | | | | | | | | | | | | | | | | | | | | We're using demv_regulator_bulk_get() so don't need to manually free and this is in the CODEC driver not the I2C driver anyway. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8904: Fix cache only managementMark Brown2012-06-111-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | We should be using the regmap API consistently for all the cache only configuration and we should be going cache only before we power down the supplies. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ASoC: wm8904: Fix GPIO and MICBIAS initialisation for regmap conversionMark Brown2012-06-111-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer have a flat ASoC cache so can't peer directly into the array any more but should instead use the register I/O functions to update the cache. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: stable@vger.kernel.org (v3.4)
| | * ASoC: fix pxa-ssp compiling issue under mach-mmpQiao Zhou2012-06-112-27/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pxa-ssp.c uses API like cpu_is_pxa3xx(), cpu_is_pxa2xx(), which is defined under arch-pxa architecture, and drivers under mach-mmp can't find it. so just use ssp->type to replace that API. Signed-off-by: Qiao Zhou <zhouqiao@marvell.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| | * ARM: MMP: add pxa910-ssp into ssp_id_tableQiao Zhou2012-06-113-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | add pxa910-ssp into ssp_id_table, and fix pxa-ssp compiling issue under mach-mmp architect. Signed-off-by: Qiao Zhou <zhouqiao@marvell.com> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * | ALSA: hda - Don't forget to call init verbs added by fixup listTakashi Iwai2012-06-132-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | During the split to the auto-parser helper functions, the actual call of init verbs was lost. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43366 Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: HDA: Pin fixup for Zotac Z68 motherboardDavid Henningsson2012-06-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pin 0x1b was connected to the front panel connector, which according to the HDA standard should contain a mic and a headphone. In this case, the headphone was listed as "line out" by BIOS. Cc: stable@kernel.org BugLink: https://bugs.launchpad.net/bugs/993162 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: compress_core: cleanup pointers on stopVinod Koul2012-06-121-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | as the start can be called after stop again, we need to reset state Signed-off-by: Namarta Kohli <namartax.kohli@intel.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: compress_core: don't wake up on pauseVinod Koul2012-06-121-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | during pause the core should maintain the status-quo on the device and pointers and not wake up. If app needs it should call DROP explcitly. Signed-off-by: Namarta Kohli <namartax.kohli@intel.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix detection of Creative SoundCore3D controllersTakashi Iwai2012-06-111-5/+5
| | | | | | | | | | | | | | | | | | | | | The PCI ID entries of Creative SoundCore3D HD-audio controllers should be before the wildcard for vendor = Creative. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | vga_switcheroo: Enable/disable audio clients at the right timeTakashi Iwai2012-06-091-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The audio clients have to be disabled before disabling the VGA and switching. Similarly, enabling the audio client should be done at last. Otherwise the audio-side operation stalls, eventually leading to Oops or lockups. Tested-by: Jörg-Volker Peetz <jvpeetz@web.de> Acked-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - HDMI Audio init all connectors when VGA-switcheroo is offSteven Newbury2012-06-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When VGA_SWITCHEROO support is enabled hda_intel initialises the HDMI audio device on the current VGA device. When it's not enabled it only initialises the HDMI device on the default VGA adaptor, this means secondary cards get no audio support which is very unhelpful for multi-seat! With this patch, when SUPPORT_VGA_SWITCHEROO is disabled hda_intel initialises all HDMI audio devices, not just the default VGA. [minor optimizations by tiwai] Signed-off-by: Steven Newbury <steve@snewbury.org.uk> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | vga_switcheroo: Fix error without CONFIG_VGA_SWITCHEROOTakashi Iwai2012-06-081-1/+1
| | | | | | | | | | | | | | | | | | Fix a typo that is built only when CONFIG_VGA_SWITCHEROO=n. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: hda - Fix uninitialized HDMI controllers with VGA-switcherooTakashi Iwai2012-06-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When VGA-switcheroo is built in but unused on systems with multiple graphics cards, the initializations of non-default graphics cards are skipped and never enabled (because the switcheroo is activated only when the controller supports). The current behavior is for avoiding the system lockup by accessing the disabled GPU, but due to the recent change in VGA-switcheroo, it determines the state simply by checking with the default VGA device. This is the culprit. Now with the new vga_switcheroo_get_client_state(), we can know the initial state of the bound GPU, thus can determine the initial audio client state more correctly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | vga_switcheroo: Add a helper function to get the client stateTakashi Iwai2012-06-082-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add vga_switcheroo_get_client_state() to get the current state of the client. This is necessary to determine the proper initial state of audio clients in HD-audio driver. Acked-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * | ALSA: usb-audio: Fix substream assignmentsTakashi Iwai2012-06-082-4/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 3.5 kernel, the endpoint is assigned dynamically for the substreams, but the PCM assignment still checks the presence of the endpoint pointer. This ended up in duplicated PCM substream creations at probing time, resulting in kernel warnings like: WARNING: at fs/proc/generic.c:586 proc_register+0x169/0x1a6() Pid: 1152, comm: modprobe Not tainted 3.5.0-rc1-00110-g71fae7e #2 Call Trace: [<ffffffff8102a400>] warn_slowpath_common+0x83/0x9c [<ffffffff8102a4bc>] warn_slowpath_fmt+0x46/0x48 [<ffffffff813829ad>] ? add_preempt_count+0x39/0x3b [<ffffffff811292f0>] proc_register+0x169/0x1a6 [<ffffffff8112962e>] create_proc_entry+0x74/0x8c [<ffffffffa018eb63>] snd_info_register+0x3e/0xc3 [snd] [<ffffffffa01fde2e>] snd_pcm_new_stream+0xb1/0x404 [snd_pcm] [<ffffffffa024861f>] snd_usb_add_audio_stream+0xd2/0x230 [snd_usb_audio] [<ffffffffa0241d33>] ? snd_usb_parse_audio_format+0x252/0x34f [snd_usb_audio] [<ffffffff810d6b17>] ? kmem_cache_alloc_trace+0xab/0xbb [<ffffffffa0248c29>] snd_usb_parse_audio_interface+0x4ac/0x567 [snd_usb_audio] [<ffffffffa023f0ff>] snd_usb_create_stream+0xe9/0x125 [snd_usb_audio] [<ffffffffa023f9b1>] usb_audio_probe+0x62a/0x72c [snd_usb_audio] ..... This patch fixes the regression by checking the fixed endpoint number for each substream instead of the endpoint pointer. Reported-and-tested-by: Jamie Heilman <jamie@audible.transient.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ASoC: tegra: add MODULE_DEVICE_TABLE to tegra30_ahubStephen Warren2012-06-081-0/+1
| | | | | | | | | | | | | | | | This allows the module to automatically load when instantiated from device tree. Signed-off-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
| * ASoC: wm2000: Always use a 4s timeout for the firmwareMark Brown2012-06-081-38/+21
| | | | | | | | | | | | | | | | Rather than having varying timeouts depending on the transition always use a 4s timeout. This provides better diagnostics for clocking errors and ensures compatibility with current calibration firmwares. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>