* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: sound/usb/format: silence uninitialized variable warnings
MAINTAINERS: Add Ian Lartey as comaintaner for Wolfson devices
MAINTAINERS: Make Wolfson entry also cover CODEC drivers
ASoC: Only tweak WM8994 chip configuration on devices up to rev D
ASoC: Optimise DSP performance for WM8994
ALSA: hda - Fix dynamic ADC change working again
ALSA: hda - Restrict PCM parameters per ELD information over HDMI
sound: oss: sh_dac_audio.c removed duplicated #include
The commit eb541337b7
ALSA: hda - Make converter setups sticky
changes the semantics of snd_hda_codec_cleanup_stream() not to clean up
the stream at that moment but delay the action. This broke the codes
expecting that the clean-up is done immediately, such as dynamic ADC
changes in some codec drivers.
This patch fixes the issue by introducing a lower helper,
__snd_hda_codec_cleanup_stream(), to allow the immediate clean up.
The original snd_hda_codec_cleanup_stream() is kept as is now.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When a device is plugged over HDMI, it passes some information in ELD
including the supported PCM parameters like formats, rates, channels.
This patch adds the check to PCM open callback of HDMI streams so that
only valid parameters the device supports are used.
When no device is plugged, the parameters the codec supports are used;
it's mostly all parameters the hardware can work. This is for apps
that are started before device plugging and do probing (e.g. a sound
daemon), so that at least, probing would work even before the device
plugging.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ASoC: add AD1980 obsolete information
ASoC: register cache should be 1 byte aligned for 1 byte long register
ALSA: hda - Adding support for new IDT 92HD87XX codecs
ASoC: Fix inverted mute controls for WM8580
ALSA: HDA: Use model=auto for LG R510
ALSA: hda - Update model entries in HD-Audio-Models.txt
ALSA: hda: document VIA models
ALSA: hda - patch_nvhdmi.c: Add missing codec IDs, unify names
ALSA: hda - add support for Conexant CX20584
ALSA: hda - New snd-hda-intel model/pin config for hp dv7-4000
ALSA: hda - Fix missing stream for second ADC on Realtek ALC260 HDA codec
ALSA: hda - Make converter setups sticky
ALSA: hda - Add support for Acer ZGA ALC271 (1025:047c)
sound/oss: Adjust confusing if indentation
sound: oss: au1550_ac97.c removed duplicated #include
ASoC: Fix for changed Eureka Kconfig symbol names
Added the entries for 92HD87B1/3 and 92HD87B2/4 codecs.
These are compatible with existing 83xxx codecs.
Signed-off-by: Charles Chin <Charles.Chin@idt.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Two users report model=auto is needed to make the internal mic work properly.
BugLink: https://bugs.launchpad.net/bugs/495134
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Add missing codec IDs.
* Modify some existing codec names for discrete GPUs to match newly
added IDs. Note: existing names were a mixture of marketing and
engineering GPU names. Equally, there's no reason that codec IDs
have to be specific to a particular GPU or board, so identify
codecs in a less marketing-oriented fashion.
* Reformat codec ID table so it's easier to read, for me at least.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The Conexant CX20584 with 141f:5068 seems compatible with other
cxt5066 code. Just add the missing id.
Tested-by: Cristopher Camacho Leandro <ccamacho@linuxmail.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This provides a new model and pin config for the snd-hda-intel
92HD83XXX codec for hp laptop model dv7-4000, enabling the subwoofer.
Signed-off-by: Steven Eastland <seastland at gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
I discovered tonight that ALSA no longer sets up a stream for the second ADC
provided by the Realtek ALC260 HDA codec. At some point alc_build_pcms()
started using stream_analog_alt_capture when constructing the second ADC
stream, but patch_alc260() was never updated accordingly. I have no idea
when this regression occurred. The trivial patch to patch_alc260() given
below fixes the problem as far as I can tell. The patch is against 2.6.35.
Signed-off-by: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (214 commits)
ALSA: hda - Add pin-fix for HP dc5750
ALSA: als4000: Fix potentially invalid DMA mode setup
ALSA: als4000: enable burst mode
ALSA: hda - Fix initial capsrc selection in patch_alc269()
ASoC: TWL4030: Capture route runtime DAPM ordering fix
ALSA: hda - Add PC-beep whitelist for an Intel board
ALSA: hda - More relax for pending period handling
ALSA: hda - Define AC_FMT_* constants
ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs
ALSA: hda - Add support for HDMI HBR passthrough
ALSA: hda - Set Stream Type in Stream Format according to AES0
ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed
ALSA: hda - FIX to not expose SPDIF on Thinkpad X301, since it does not have the ability to use SPDIF
ASoC: wm9081: fix resource reclaim in wm9081_register error path
ASoC: wm8978: fix a memory leak if a wm8978_register fail
ASoC: wm8974: fix a memory leak if another WM8974 is registered
ASoC: wm8961: fix resource reclaim in wm8961_register error path
ASoC: wm8955: fix resource reclaim in wm8955_register error path
ASoC: wm8940: fix a memory leak if wm8940_register return error
ASoC: wm8904: fix resource reclaim in wm8904_register error path
...
So far, we reset the converter setups like the stream-tag, the
channel-id and format-id in prepare callbacks, and clear them in
cleanup callbacks. This often causes a silence of the digital
receiver for a couple of seconds.
This patch tries to delay the converter setup changes as much as
possible. The converter setups are cached and aren't reset as long
as the same values are used. At suspend/resume, they are cleared
to be recovered properly, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The NID 0x11 on HP dc5750 with ALC260 should be a speaker although BIOS
gives it as a line-out. This patch adds a quirk to fix the pin config
so that the real line-out is used properly.
Reference: bnc#624118
https://bugzilla.novell.com/show_bug.cgi?id=624118
Signed-off-by: Takashi Iwai <tiwai@suse.de>
My previous patch assumed that the DMA mode (represented by 3 lowest bits of
ALS4K_GCR99_DMA_EMULATION_CTRL register) is set to the default value 0. If
that's not the case, it might result in invalid mode to be set.
This patch fixes this potential problem.
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Enable burst mode to prevent dropouts during high PCI bus usage.
The card is useless in X without this because of dropouts when anything moves
on the screen (at least with PCI VGA card). Enabling this is also recommended
by the datasheet (page 48).
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
In patch_alc269(), we initialize the primary capsrc so that the device
works from the beginning. It issues CONNECT_SEL verb no matter which
widget is although some widget (e.g. 0x23) has no connection selection
but a mixer, which requires unmuting instead.
This patch fixes the initialization of capsrc by re-using the code as
a helper function.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
An Intel board needs a white-list entry to enable PC-beep.
Otherwise the driver misdetects (due to bogus BIOS info) and ignores
the PC-beep on 2.6.35.
Reported-and-tested-by: Leandro Lucarella <luca@llucax.com.ar>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Since the pending periods are often bogus and take long time until
actually processed, it often results in a high CPU usage of the hd-audio
workq. Overall it's better to have low CPU consumption by avoiding a
too tight loop rather than the wake-up timing accuracy.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fix HDA beep frequency on IDT 92HD73xx and 92HD71Bxx codecs.
These codecs use the standard beep frequency calculation although the
datasheet says it's linear frequency.
Other IDT/STAC codecs might have the same problem. They should be
fixed individually later.
Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Passing IEC 61937 encapsulated compressed audio at bitrates over 6.144
Mbps (i.e. more than a single 2-channel 16-bit 192kHz IEC 60958 link)
over HDMI requires the use of HBR Audio Stream Packets instead of Audio
Sample Packets.
Enable HBR mode when the stream has 8 channels and the Non-PCM bit is
set.
If the audio converter is not connected to any HBR-capable pins, return
-EINVAL in prepare().
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Set bit 15 (Stream Type) of HDA Stream Format to 1 (Non-PCM) when IEC958
channel status bit 1 (AES0 & 0x02) is set to 1 (non-audio).
This is a prequisite for HDMI HBR passthrough.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Just as with the X301. The X300 does not have a way to do SPDIF either.
It does not have a dock connector, nor does it have the SPDIF through
the headphone jack.
This patch fixes it so X300 does not show SPDIF, since it cannot do it.
To add all Lenovo Thinkpads had different codec subsytem IDs:
X300:
http://launchpadlibrarian.net/34862838/Card0.Codecs.codec.0.txt
Signed-off-by: Jerone Young <jerone.young@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The Lenovo X301 does not have the ability to connect to a docking
station to use the SPDIF port. It also does not have the ability to do
SPDIF though the headphone jack or Display Port jacks.
This patch fixes it so this is not exposed for the X301 and users do
think it has the ability to do SPDIF.
I tested both headphone & display port jacks and it is not there. I have
tested this patch and it works great.
Also to add the other Thinkpads have different subsystem codec IDs.
Here are examples:
X301:
http://launchpadlibrarian.net/31561902/Card0.Codecs.codec.0.txt
X200:
http://launchpadlibrarian.net/49055036/Card0.Codecs.codec.0.txt
W500:
http://launchpadlibrarian.net/36276057/Card0.Codecs.codec.0.txt
Signed-off-by: Jerone Young <jerone.young@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The current ALC259/268/269 parser ignores some pins as unhandled,
but user won't notice what goes wrong. So, added a warning message
for the ignored pins as a hint.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Call snd_hda_shutup_pins() for power-saving and reboot-notifier in
patch_conexant.c as well as other codecs. This will reduce the pop
noise in power-save mode.
Reference: bnc#624896
https://bugzilla.novell.com/show_bug.cgi?id=624896
Signed-off-by: Takashi Iwai <tiwai@suse.de>
If BIOS sets up the input pin as VREF 50, use the value as is instead of
overriding forcibly to VREF 80. This fixes the quality of inputs on
some devices like Packard-Bell M5210.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Since ALC259/269 use the same parser of ALC268, the pin 0x1b was ignored
as an invalid widget. Just add this NID to handle properly.
This will add the missing mixer controls for some devices.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Make a helper function to parse the digital I/Os of all Realtek codecs
to simplify the code and to ensure the setups.
Also, initialize digital I/O pins properly in init callbacks. Some BIOS
seem to leave pins uninitialized.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Some ALC662-compatible codecs like ALC892 may have more than 4
connections for the input source. Use HDA_MAX_CONNECTIONS instead of
the fixed magic number 4.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
* 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: hda - Add a PC-beep workaround for ASUS P5-V
ALSA: hda - Assume PC-beep as default for Realtek
ALSA: hda - Don't register beep input device when no beep is available
ALSA: hda - Fix pin-detection of Nvidia HDMI
The non-standard name "iMic" makes PulseAudio ignore the microphone.
BugLink: https://launchpad.net/bugs/605101
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ASUS P5-V provides a SSID that unexpectedly matches with the value
compilant with Realtek's specification. Thus the driver interprets
it badly, resulting in non-working PC beep.
This patch adds a white-list for such a case; a white-list of known
devices with working PC beep.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Enable PC-beep as default for hardwares that aren't compliant with the
SSID value Realtek requires. In such a case, better to enable the beep
to avoid a regression.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
We check now the availability of PC beep and skip the build of beep
mixers, but the driver still registers the input device. This should
be checked as well.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The behavior of Nvidia HDMI codec regarding the pin-detection unsol events
is based on the old HD-audio spec, i.e. PD bit indicates only the update
and doesn't show the current state. Since the current code assumes the
new behavior, the pin-detection doesn't work relialby with these h/w.
This patch adds a flag for indicating the old spec, and fixes the issue
by checking the pin-detection explicitly for such hardware.
Tested-by: Wei Ni <wni@nvidia.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The correct size should be sizeof(gRESP_HPI_SUBSYS_FIND_ADAPTERS),
sizeof(&gRESP_HPI_SUBSYS_FIND_ADAPTERS) is incorrect.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The commit afbd9b8448
ALSA: hda - Limit the amp value to write
introduced a regression for codec setups with amp offsets like IDT/STAC
codecs. The limit value should be a raw value without offset calculation.
Signed-off-by: Takashi Iwai <tiwai@suse.de>