30 Apr, 2014
1 commit
-
The recent commit (ca460f86521) changed the CORB RP reset procedure to
follow the specification with a couple of sanity checks.
Unfortunately, Nvidia controller chips seem not following this way,
and spew the warning messages like:
snd_hda_intel 0000:00:10.1: CORB reset timeout#1, CORBRP = 0This patch adds the workaround for such chips. It just skips the new
reset procedure for the known broken chips.Signed-off-by: Takashi Iwai
28 Apr, 2014
1 commit
-
When we plug a 3-ring headset on the Dell machine (VID: 0x10ec0255,
SID: 0x10280674), the headset mic can't be detected, after apply this
patch, the headset mic can work well.BugLink: https://bugs.launchpad.net/bugs/1297581
Cc: David Henningsson
Cc: stable@vger.kernel.org
Signed-off-by: Hui Wang
Signed-off-by: Takashi Iwai
23 Apr, 2014
5 commits
-
…ar', 'asoc/fix/tlv320aic31xx' and 'asoc/fix/tlv320aic3x' into asoc-linus
-
…/cs42l73' and 'asoc/fix/fsl-spdif' into asoc-linus
-
Commit 0406a40a0 ("ASoC: jz4740: Use the generic dmaengine PCM driver")
jz4740-pcm.c file, but neglected to remove the Makefile entries.Fixes: 0406a40a0 ("ASoC: jz4740: Use the generic dmaengine PCM driver")
Reported-by: kbuild test robot
Reported-by: Ralf Baechle
Signed-off-by: Lars-Peter Clausen
Signed-off-by: Mark Brown -
There were occasional ADSP crash during reboot testing:
[ 11.883364] BUG: unable to handle kernel paging request at ffffc90121700000
[ 11.883380] IP: [] sst_module_insert_fixed_block+0x24f/0x26d [snd_soc_sst_dsp]
[ 11.883397] PGD 7800b067 PUD 0
[ 11.883405] Oops: 0002 [#1] SMP
[ 11.886418] gsmi: Log Shutdown Reason 0x03The virtual address, ffffc90121700000, was out of range. The virtual
address is calculated by adding LPE base address with an offset:sst_memcpy32(dsp->addr.lpe + data->offset, data->data, data->size);
The offset is calculated in sst_byt_parse_module, by subtraction of
two virtual addresses dsp->addr.fw_ext and dsp->addr.lpe:block_data.offset = block->ram_offset + (dsp->addr.fw_ext - dsp->addr.lpe);
These virtual addresses are assigned by kernel from ioremap:
sst->addr.lpe = ioremap(pdata->lpe_base, pdata->lpe_size);
sst->addr.fw_ext = ioremap(pdata->fw_base, pdata->fw_size);In current driver code, offset is defined as unsigned int32:
struct sst_module_data {
...
u32 offset; /* offset in FW file */
};Most of the time kernel assigned virtual addresses with addr.fw_ext
greater than addr.lpe. But sometimes it was the other way round.Fix the problem by declaring offset as signed int32_t.
Signed-off-by: Wenkai Du
Signed-off-by: Jarkko Nikula
Signed-off-by: Mark Brown
21 Apr, 2014
1 commit
-
Commit 9e1fda4ae158 ("ASoC: dapm: Implement mixer input auto-disable")
is trying to free the widget it allocated by snd_soc_dapm_new_control()
call in dapm_kcontrol_data_alloc() by adding kfree(data->widget) to
dapm_kcontrol_free().This is causing a widget double free with auto-disabled DAPM kcontrols
in sound card unregistration because widgets are already freed before
dapm_kcontrol_free() is called.Reason for that is all widgets are added into dapm->card->widgets list
in snd_soc_dapm_new_control() and freed in dapm_free_widgets() during
execution of snd_soc_dapm_free().Now snd_soc_dapm_free() calls for different DAPM contexts happens before
snd_card_free() call from where the call chain to dapm_kcontrol_free()
begins:soc_cleanup_card_resources()
soc_remove_dai_links()
soc_remove_link_dais()
snd_soc_dapm_free(&cpu_dai->dapm)
soc_remove_link_components()
soc_remove_platform()
snd_soc_dapm_free(&platform->dapm)
soc_remove_codec()
snd_soc_dapm_free(&codec->dapm)
snd_soc_dapm_free(&card->dapm)
snd_card_free()
snd_card_do_free()
snd_device_free_all()
snd_device_free()
snd_ctl_dev_free()
snd_ctl_remove()
snd_ctl_free_one()
dapm_kcontrol_free()This wasn't making harm with ordinary DAPM kcontrols since data->widget is NULL for
them.Fixes: 9e1fda4ae158 (ASoC: dapm: Implement mixer input auto-disable)
Signed-off-by: Jarkko Nikula
Acked-by: Lars-Peter Clausen
Signed-off-by: Mark Brown
Cc: stable@vger.kernel.org
19 Apr, 2014
2 commits
-
Fix an incorrect sizeof() usage in sst_hsw_stream_get_volume(). sst_dsp_read()
is called to read into a variable of type u32, but is passed sizeof(u32 *) for
argument 'size_t bytes'. Detected by Coverity: CID 1195260.Signed-off-by: Christian Engelmayer
Signed-off-by: Mark Brown -
The intent was to say "sizeof(*pos)" and not "sizeof(pos)".
The sizeof(*pos) is 8 bytes so the bug won't show up on 64 bit systems.
The sizeof(*dx) is 172 bytes so that will be a bugfix.Signed-off-by: Dan Carpenter
Signed-off-by: Mark Brown
18 Apr, 2014
3 commits
-
Current code missed a gpio_free() call in cs42l73_i2c_remove().
Convert to use devm_gpio_request_one() to fix it.Signed-off-by: Axel Lin
Signed-off-by: Mark Brown -
Current code missed a gpio_free() call in cs42l52_i2c_remove().
Convert to use devm_gpio_request_one() to fix it.Signed-off-by: Axel Lin
Signed-off-by: Mark Brown -
It should use STC_SYSCLK_DIV_OFFSET. Thus fix it.
Signed-off-by: Nicolin Chen
Signed-off-by: Mark Brown
16 Apr, 2014
2 commits
-
Signed-off-by: Kailang Yang
Cc:
Signed-off-by: Takashi Iwai -
When we plug a 3-ring headset on the Dell machine (VID: 0x10ec0255,
SID: 0x1028067f), the headset mic can't be detected, after apply this
patch, the headset mic can work well.BugLink: https://bugs.launchpad.net/bugs/1297581
Cc: David Henningsson
Cc: stable@vger.kernel.org
Signed-off-by: Hui Wang
Signed-off-by: Takashi Iwai
15 Apr, 2014
2 commits
-
Commit 0cd257bf9b9b0cbb4fa1a5c988a232506997867c, "ASoC: alc5623:
Convert to direct regmap API usage" broke probing of the codec,
because of wrong endinness of the ID and codec version read from the
device. Fix this by removing the existing flipping of the endiannes,
and extracting the codec type byte from the word from the regmap.Signed-off-by: Andrew Lunn
Signed-off-by: Mark Brown -
Currently the second tlv320aic3x instance fails to
be probed from DT if the reset pin is shared with
the first one.This patch fixes it by moving the list add of the
reset pin into the i2c_probe method.Signed-off-by: Sebastian Reichel
Signed-off-by: Mark Brown
14 Apr, 2014
2 commits
-
udelay with more than 20000 may cause __bad_udelay.
Use mdelay for instead.[fixed a typo spotted by Clemens -- tiwai]
Signed-off-by: Li, Zhen-Hua
Signed-off-by: Takashi Iwai -
Signed-off-by: Kailang Yang
Cc:
Signed-off-by: Takashi Iwai
11 Apr, 2014
2 commits
-
As with the previous commit, before a clock can be used it must be prepared
for use. Change from clk_enable() and clk_disable() to the versions of the
calls which also prepare and un-prepare the clocks.Will fix warnings from the clock code when this is used.
Signed-off-by: Ben Dooks
Signed-off-by: Kuninori Morimoto
Signed-off-by: Mark Brown -
Pull sound fixes from Takashi Iwai:
"Here is a bunch of small fixes that have been collected since the
previous pull request. In addition to various misc fixes, the
following are included:- HD-audio quirks for Dell, HP, Chromebook, and ALC28x codecs
- HD-audio AMD HDMI regression fix
- Continued PM support/fixes for ice1712 driver
- Multiplatform fixes for ASoC samsung drivers
- Addition of device id tables to a few ASoC drivers
- Bit clock polarity config and error flag fixes in ASoC fsl_sai"* tag 'sound-fix-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (32 commits)
ALSA: usb-audio: Suppress repetitive debug messages from retire_playback_urb()
ALSA: hda - Make full_reset boolean
ALSA: hda - add headset mic detect quirk for a Dell laptop
sound: dmasound: use module_platform_driver_probe()
ALSA: au1x00: use module_platform_driver()
ALSA: hda - Use runtime helper to check active state.
ALSA: ice1712: Fix boundary checks in PCM pointer ops
ASoC: davinci-mcasp: Fix bit clock polarity settings
ASoC: samsung: Fix build on multiplatform
ASoC: fsl_sai: Fix Bit Clock Polarity configurations
ALSA: hda - Do not assign streams in reverse order
ALSA: hda/realtek - Add eapd shutup to ALC283
ALSA: hda/realtek - Change model name alias for ChromeOS
ASoC: da732x: Print correct major id
ALSA: hda/realtek - Improve HP depop when system change power state on Chromebook
ASoC: cs42l52: Fix mask for REVID
sound/oss: Remove uncompilable DBG macro use
ALSA: ice1712: Save/restore routing and rate registers
ALSA: ice1712: restore AK4xxx volumes on resume
ASoC: alc56(23|32): fix undefined return value of probing code
...
10 Apr, 2014
1 commit
-
BugLink: http://bugs.launchpad.net/bugs/1305133
Malfunctioning or slow devices can cause a flood of dmesg SPAM.
I've ignored checkpatch.pl complaints about the use of printk_ratelimit() in favour
of prior art in sound/usb/pcm.c.WARNING: Prefer printk_ratelimited or pr__ratelimited to printk_ratelimit
+ if (printk_ratelimit() &&Cc: Jaroslav Kysela
Cc: Takashi Iwai
Cc: Eldad Zack
Cc: Daniel Mack
Cc: Clemens Ladisch
Signed-off-by: Tim Gardner
Signed-off-by: Takashi Iwai
09 Apr, 2014
8 commits
-
…e/sound into for-linus
ASoC: Fixes for v3.15
A smattering of device specific fixes, nothing stands out here except
for the multiplatform fixes for Samsung and the device IDs being added
by Stephen Warren - there's no real code changes from those and they
give better robustness to the enumeration with DT. -
The full_reset argument to azx_init_chip() carries boolean rather than
numerical information, so update the type to reflect that.Signed-off-by: Thierry Reding
Signed-off-by: Takashi Iwai -
When we plug a 3-ring headset on the Dell machine (VID: 0x10ec0283,
SID: 0x10280667), the headset mic can't be detected, after apply this
patch, the headset mic can work well.BugLink: https://bugs.launchpad.net/bugs/1297581
Cc: David Henningsson
Cc: stable@vger.kernel.org
Signed-off-by: Hui Wang
Signed-off-by: Takashi Iwai -
Eliminate boilerplate code by using module_platform_driver_probe().
Signed-off-by: Christoph Jaeger
Signed-off-by: Takashi Iwai -
Eliminate boilerplate code by using module_platform_driver().
Signed-off-by: Christoph Jaeger
Signed-off-by: Takashi Iwai -
From azx_interrupt, use the helper to check if the device is active
instead of checking the state. This will do the right thing if
runtime pm is disabled in addition to if the device is suspended.Signed-off-by: Dylan Reid
Signed-off-by: Takashi Iwai -
…tlv320aic23' and 'asoc/fix/warn' into asoc-linus
-
…/cs42xxx8', 'asoc/fix/da732x', 'asoc/fix/davinci', 'asoc/fix/fsl-sai', 'asoc/fix/fsl-ssi' and 'asoc/fix/max98090' into asoc-linus
08 Apr, 2014
8 commits
-
PCM pointer callbacks in ice1712 driver check the buffer size boundary
wrongly between bytes and frames. This leads to PCM core warnings
like:
snd_pcm_update_hw_ptr0: 105 callbacks suppressed
ALSA pcm_lib.c:352 BUG: pcmC3D0c:0, pos = 5461, buffer size = 5461, period size = 2730This patch fixes these checks to be placed after the proper unit
conversions.Cc:
Signed-off-by: Takashi Iwai -
IB_NF, NB_IF and IB_IF configured the bc polarity incorrectly. The receive
polarity was set to the same edge as the TX in these cases.Signed-off-by: Peter Ujfalusi
Signed-off-by: Mark Brown -
PCM and S/PDIF drivers referenced mach headers for a trivial
data structure. This caused build errors on multiplatform builds
as machine headers are not accessible from driver files. Move the data
structure definition to the driver header and remove the dependency.
While at it rename the structure to avoid multiple definition errors
as the same structure is also used by the platform code.Signed-off-by: Sachin Kamat
Signed-off-by: Mark Brown -
The BCP bit in TCR4/RCR4 register rules as followings:
0 Bit clock is active high with drive outputs on rising edge
and sample inputs on falling edge.
1 Bit clock is active low with drive outputs on falling edge
and sample inputs on rising edge.For all formats currently supported in the fsl_sai driver, they're exactly
sending data on the falling edge and sampling on the rising edge.However, the driver clears this BCP bit for all of them which results click
noise when working with SGTL5000 and big noise with WM8962.Thus this patch corrects the BCP settings for all the formats here to fix
the nosie issue.Signed-off-by: Nicolin Chen
Acked-by: Xiubo Li
Signed-off-by: Mark Brown -
Currently stream numbers are assigned in reverse order.
Unfortunately commit 7546abfb8e1f9933b5 ("ALSA: hda - Increment
default stream numbers for AMD HDMI controllers") assumed this was not
the case (specifically, it had the "old cards had single device only"
=> "extra unused stream numbers do not matter" assumption), causing
non-working audio regressions for AMD Radeon HDMI users.Change the stream numbers to be assigned in forward order.
The benefit is that regular audio playback will still work even if the
assumed stream count is too high, downside is that a too high stream
count may remain hidden.Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77002
Reported-by: Christian Güdel
Signed-off-by: Anssi Hannula
Tested-by: Christian Güdel # 3.14
Cc: Alex Deucher
Signed-off-by: Takashi Iwai -
Add eapd shutup function to alc283_shutup.
It could avoid pop noise from speaker.Signed-off-by: Kailang Yang
Signed-off-by: Takashi Iwai -
Chrome OS was use model name of alc283-dac-wcaps for loading model as default.
Change the model name to same as model name of Chrome OS for future support.Signed-off-by: Kailang Yang
Signed-off-by: Takashi Iwai -
If the renamed symbol is defined lib/iomap.c implements ioport_map and
ioport_unmap and currently (nearly) all platforms define the port
accessor functions outb/inb and friend unconditionally. So
HAS_IOPORT_MAP is the better name for this.Consequently NO_IOPORT is renamed to NO_IOPORT_MAP.
The motivation for this change is to reintroduce a symbol HAS_IOPORT
that signals if outb/int et al are available. I will address that at
least one merge window later though to keep surprises to a minimum and
catch new introductions of (HAS|NO)_IOPORT.The changes in this commit were done using:
$ git grep -l -E '(NO|HAS)_IOPORT' | xargs perl -p -i -e 's/\b((?:CONFIG_)?(?:NO|HAS)_IOPORT)\b/$1_MAP/'
Signed-off-by: Uwe Kleine-König
Acked-by: Arnd Bergmann
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Apr, 2014
2 commits
-
DA732X_ID_MAJOR_MASK is 0xF0, so the major id is
(reg & DA732X_ID_MAJOR_MASK) >> 4.Signed-off-by: Axel Lin
Acked-by: Adam Thomson
Signed-off-by: Mark Brown -
It is better to change Mic2-Vref to manual mode.
Manual control Mic2-Vref will solve pop noise issue.
It will improve pop noise for power on, power off, S3 and resume.Signed-off-by: Kailang Yang
Signed-off-by: Takashi Iwai