31 Jul, 2015
1 commit
-
MacBook Pro 5,2 with ALC889 codec had already a fixup entry, but this
seems not working correctly, a fix for pin NID 0x15 is needed in
addition. It's equivalent with the fixup for MacBook Air 1,1, so use
this instead.Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102131
Reported-and-tested-by: Jeffery Miller
Cc:
Signed-off-by: Takashi Iwai
30 Jul, 2015
1 commit
-
PM ops could be triggered before HDA is done initializing
and cause PM to set HDA controller to D3Hot. This can result
in "CORB reset timeout#2, CORBRP = 65535" and "no codecs
initialized". Additionally, PM ops can be triggered before
azx_probe_continue finishes (async probe). This can result
in a NULL deref kernel crash.To fix this, avoid PM ops if !chip->running.
Signed-off-by: U. Artie Eoff
Signed-off-by: Takashi Iwai
29 Jul, 2015
2 commits
-
Add the correct dB ranges of Bose Companion 5 and Drangonfly DAC 1.2.
Signed-off-by: Yao-Wen Mao
Cc:
Signed-off-by: Takashi Iwai -
Dell Vostro 5480 (1028:069a) needs the very same quirk used for Vostro
5470 model to make bass speakers properly working.Reported-and-tested-by: Paulo Roberto de Oliveira Castro
Cc:
Signed-off-by: Takashi Iwai
27 Jul, 2015
3 commits
-
The new Dell laptop with codec 256 can't detect headset mic when
headset was inserted on the machine. From alsa-info, we check
init_pin_configs and need to define the new register value for pin
0x1d & 0x1e because the original macro ALC256_STANDARD_PINS can't
match pin definition. Also, the macro ALC256_STANDARD_PINS is
simplified by removing them. This makes headset mic works on laptop.Codec: Realtek ALC256
Vendor Id: 0x10ec0256
Subsystem Id: 0x102806f2BugLink: https://bugs.launchpad.net/bugs/1478497
Signed-off-by: Woodrow Shen
Signed-off-by: Takashi Iwai -
Toshiba Satellite S50D has another model with a different PCI SSID
(1179:fa93) while the previous fixup was for 1179:fa91. Adjust the
fixup entry with SND_PCI_QUIRK_MASK() to match with both devices.Reported-by: Tim Sample
Cc:
Signed-off-by: Takashi Iwai -
Fireworks uses TSB43CB43(IceLynx-Micro) as its IEC 61883-1/6 interface.
This chip includes ARM7 core, and loads and runs program. The firmware
is stored in on-board memory and loaded every powering-on.Echo Audio ships several versions of firmwares for each model. These
firmwares have each quirk and the quirk changes a sequence of packets.AudioFire2 has a quirk to transfer a first packet with non-zero in
its dbc field. This causes ALSA Fireworks driver to detect discontinuity.
As long as I investigated, firmware 5.7, 5.7.6 and 5.8 have this quirk.This commit adds a support for the quirk to handle AudioFire2 packets.
For safe, CIP_SKIP_INIT_DBC_CHECK is applied to all versions of
AudioFire2's firmwares.02 00050002 90ffffff
Signed-off-by: Takashi Iwai
25 Jul, 2015
3 commits
-
When the headset was plugged in the Dell desktop, the mic of headset
can't be detected and workable.
According to the alsa-info, we found the differece between alsa and
init_pin_configs on the machine, so we need to add the pin configs to
make headset work.Codec: Realtek ALC3234
Vendor Id: 0x10ec0255
Subsystem Id: 0x102806bbBugLink: https://bugs.launchpad.net/bugs/1477900
Signed-off-by: Woodrow Shen
Signed-off-by: Takashi Iwai -
Smatch complains that we have nested checks for "spdif_present". It
turns out the current behavior isn't correct, we should remove the first
check and keep the second.Fixes: 1077a024812d ('ALSA: hda - Use generic parser for Cirrus codec driver')
Signed-off-by: Dan Carpenter
Signed-off-by: Takashi Iwai -
…roonie/sound into for-linus
ASoC: Fixes for v4.2
A lot of small fixes here, a few to the core:
- Fix for binding DAPM stream widgets on devices with prefixes assigned
to them
- Minor fixes for the newly added topology interfaces
- Locking and memory leak fixes for DAPM
- Driver specific fixes
24 Jul, 2015
7 commits
-
…c/fix/zx' into asoc-linus
-
…ntel-kconfig' and 'asoc/fix/mediatek' into asoc-linus
-
The de-emphasis sampling rate selection is controlled by BIT[3:4] of
PCM1681_DEEMPH_CONTROL register. Do proper left shift to set it.Signed-off-by: Axel Lin
Acked-by: Marek Belisko
Signed-off-by: Mark Brown
Cc: stable@vger.kernel.org
22 Jul, 2015
4 commits
-
The regmap_write in ssm4567_set_dai_fmt accidentally clears the
TDM_BCLKS field which was set earlier by ssm4567_set_tdm_slot.This patch fixes it by using regmap_update_bits with proper mask.
Signed-off-by: Ben Zhang
Acked-by: Lars-Peter Clausen
Acked-by: Anatol Pomozov
Signed-off-by: Mark Brown
Cc: stable@vger.kernel.org -
Currently, below code actually does not update any bit because
SGTL5000_SMALL_POP is 0.snd_soc_update_bits(codec, SGTL5000_CHIP_REF_CTRL, SGTL5000_SMALL_POP, 1);
The SGTL5000_SMALL_POP should be BIT(0) rather than 0, fix it.
Signed-off-by: Axel Lin
Acked-By: Alexander Stein
Signed-off-by: Mark Brown -
Without this patch, the headset mic will not work on this machine.
BugLink: https://bugs.launchpad.net/bugs/1476987
Signed-off-by: David Henningsson
Cc:
Signed-off-by: Takashi Iwai -
One more Dell laptop with alc293 codec needs
ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, but the pin 0x1e does not match
the corresponding one in the ALC292_STANDARD_PINS. To use this macro
for this machine, we need to remove pin 0x1e from it.BugLink: https://bugs.launchpad.net/bugs/1476888
Cc:
Signed-off-by: Hui Wang
Signed-off-by: Takashi Iwai
21 Jul, 2015
2 commits
-
Commit fdb6eb0a1287 ("ASoC: dapm: Modify widget stream name according to
prefix") fixed the case where a DAPM route between a DAI widget and a
DAC/ADC/AIF widget with a matching stream name was not created when the
DAPM context was using a prefix.Unfortunately the patch introduced a few issues on its own like leaking the
dynamically allocated stream name memory and also not checking whether the
allocation succeeded in the first place.It is also incomplete in that it still does not handle the case where
stream name of the widget is a substring of the stream name of the DAI,
which is explicitly allowed and works fine if no DAPM prefix is used.Revert the commit and take a slightly different approach to solving the
issue. Instead of comparing the widget's stream name to the name of the DAI
widget compare it to the stream name of the DAI widget. The stream name of
the DAI widget is identical to the name of the DAI widget except that it
wont have the DAPM prefix added. So this approach behaves identical
regardless to whether the DAPM context uses a prefix or not.We don't have to worry about potentially matching with a widget with the
same stream name, but from a different DAPM context with a different
prefix, since the code already makes sure that both the DAI widget and the
matched widget are from the same DAPM context.Fixes: fdb6eb0a1287 ("ASoC: dapm: Modify widget stream name according to prefix")
Signed-off-by: Lars-Peter Clausen
Signed-off-by: Mark Brown
Cc: stable@vger.kernel.org -
Vendor ID 0x10de007d is used by a yet-to-be-named GPU chip.
This chip also has the 2-ch audio swapping bug, so patch_nvhdmi is
appropriate here.Signed-off-by: Aaron Plattner
Cc:
Signed-off-by: Takashi Iwai
20 Jul, 2015
2 commits
-
Fixes audio problems on newer asics
Signed-off-by: Maruthi Bayyavarapu
Cc: stable@vger.kernel.org
Signed-off-by: Takashi Iwai -
When the controller is powered up but the HDMI codec is powered down
on Skylake, the power well is turned off. When the codec is then
powered up again, we need to poke the codec a little extra to make
sure it wakes up. Otherwise we'll get sad "no response from codec"
messages and broken audio.This also changes azx_runtime_resume to actually call
snd_hdac_set_codec_wakeup for Skylake (before STATETS read).
(Otherwise it would only have been called for Haswell and Broadwell,
which both do not need it, so this probably was not the author's
intention.)Signed-off-by: David Henningsson
Reviewed-by: Libin Yang
Signed-off-by: Takashi Iwai
19 Jul, 2015
1 commit
-
Acer Aspire V5 with the ALC282 codec is given the wrong value for the
0x19 PIN by the laptop's BIOS. Overriding it with the correct value
adds support for the headset microphone which would not otherwise be
visible in the system.The fix is based on commit 7819717b1134 with a similar quirk for Acer
Aspire with the ALC269 codec.Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96201
Cc:
Signed-off-by: Mateusz Sylwestrzak
Signed-off-by: Takashi Iwai
18 Jul, 2015
2 commits
-
If 'of_ioremap' fails, then 'amd' should be freed, otherwise, there is a
memory leak.Signed-off-by: Christophe JAILLET
Signed-off-by: Takashi Iwai -
Pull sound fixes from Takashi Iwai:
"There are two small fixes for HD-audio and USB LINE6, and the rest are
a few new quirks and device ID addition that are good enough to get
into 4.2"* tag 'sound-4.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: hda/realtek: Enable HP amp and mute LED on HP Folio 9480m [v3]
ALSA: line6: Fix -EBUSY error during active monitoring
ALSA: hda - Fix a wrong busy check in alt PCM open
ALSA: hda - add codec ID for Broxton display audio codec
ALSA: usb-audio: Add MIDI support for Steinberg MI2/MI4
17 Jul, 2015
2 commits
-
With the nonatomic PCM ops, the system may spew lockdep warnings like:
=============================================
[ INFO: possible recursive locking detected ]
4.2.0-rc1-jeejaval3 #12 Not tainted
---------------------------------------------
aplay/4029 is trying to acquire lock:
(snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_stream_lock+0x43/0x60but task is already holding lock:
(snd_pcm_link_rwsem){.+.+.+}, at: [] snd_pcm_action_nonatomic+0x29/0x80other info that might help us debug this:
Possible unsafe locking scenario:CPU0
----
lock(snd_pcm_link_rwsem);
lock(snd_pcm_link_rwsem);Although this is false-positive as the rwsem is taken always as
read-only for these code paths, it's certainly annoying to see this at
any occasion. A simple fix is to use down_read_nested() in
snd_pcm_stream_lock() that can be called inside another lock.Reported-by: Vinod Koul
Reported-by: Jeeja Kp
Tested-by: Jeeja Kp
Cc:
Signed-off-by: Takashi Iwai -
This fixes kernel panic on boot, if rt5645->codec is NULL when
rt5645_jack_detect_work is first called.rt5645_jack_detect_work needs rt5645->codec to be initialized to setup
dapm pins. Also, reporting jack events is useless, as the jacks cannot
be set before the codec is ready.Since we manually call the interrupt handler in
rt5645_set_jack_detect, the initial jack state will be reported
correctly, and dapm pins will be setup at that time.Signed-off-by: Nicolas Boichat
Signed-off-by: Mark Brown
16 Jul, 2015
2 commits
-
This laptop needs GPIO4 pulled high to enable the headphone amplifier,
and has a mute LED on GPIO3. I modelled the patch on the existing
GPIO4 code which pulls the line low for the same purpose; this time,
the HP amp line is pulled high.v2: Disable the headphone amplifier when no headphone is connected.
Don't disable power savings to preserve the LED state.v3: Remove headset-specific hooks and code; this is just a headphone.
Signed-off-by: Keith Packard
Signed-off-by: Takashi Iwai -
The usage_count variable was read before it was set to the correct
value, due to which the firmware load was failing. Because of this
IPC messages sent to the firmware were timing out causing a delay
of about 1 second while playing audio from the internal speakers.With this patch the usage_count is read after the function call
pm_runtime_get_sync which will increment the usage_count variable
and the firmware load is successful and all the IPC messages are
processed correctly.Signed-off-by: Shilpa Sreeramalu
Signed-off-by: Fang, Yang A
Signed-off-by: Mark Brown
Cc: stable@vger.kernel.org
14 Jul, 2015
2 commits
-
When a monitor stream is active, the next PCM stream access results in
EBUSY error because of the check in line6_stream_start(). Fix this by
just skipping the submission of pending URBs when the stream is
already running instead.Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101431
Cc: # v4.0+
Signed-off-by: Takashi Iwai -
Mixer control for widgets can't be created if the info is NULL. So assign
the correct info for this.Signed-off-by: Jeeja KP
Signed-off-by: Subhransu S. Prusty
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown
13 Jul, 2015
2 commits
-
Value returned by devm_ioremap_resource() was checked for non-NULL but
devm_ioremap_resource() returns IOMEM_ERR_PTR, not NULL. In case of
error this could lead to dereference of ERR_PTR.Signed-off-by: Krzysztof Kozlowski
Reviewed-by: Jun Nie
Signed-off-by: Mark Brown -
Value returned by devm_ioremap_resource() was checked for non-NULL but
devm_ioremap_resource() returns IOMEM_ERR_PTR, not NULL. In case of
error this could lead to dereference of ERR_PTR.Signed-off-by: Krzysztof Kozlowski
Reviewed-by: Jun Nie
Signed-off-by: Mark Brown
09 Jul, 2015
4 commits
-
This replaces the platform_name in snd_soc_dai_link by device tree node.
Signed-off-by: Koro Chen
Signed-off-by: Mark Brown -
Make sure the to free the card DAPM context if snd_soc_instantiate_card()
fails, otherwise the memory allocated for the DAPM widgets is leaked.Signed-off-by: Lars-Peter Clausen
Signed-off-by: Mark Brown -
The name field of the widget template is only used inside
snd_soc_dapm_new_control_unlocked() which allocates a copy for the actual
widget. This means we need to free the name allocated for the template in
dapm_kcontrol_data_alloc() and not the name of the actual widget in
dapm_kcontrol_free(). Otherwise we get a double free on the widget name and
a memory leak on the template name.Fixes: 773da9b358bf ("ASoC: dapm: Append "Autodisable" to autodisable widget names")
Signed-off-by: Lars-Peter Clausen
Signed-off-by: Mark Brown -
The Intel boards directory was under CONFIG_SND_SOC_INTEL_SST so the
machines which don't need these were not allowed to be
selected/compiled without enabling this symbol The machine should be
allowed to selected by ASoC and then they should select rest of
symbols requiredReported-by: Michele Curti
Signed-off-by: Vinod Koul
Acked-by: Liam Girdwood
Signed-off-by: Mark Brown