20 Nov, 2020
2 commits
-
Add set_sysclk function to select preferred master input
clock on pcm512x codec, support multiple input system clocks
on SCLK master mode.Signed-off-by: Adrian Alonso
Reviewed-by: Shengjiu Wang
(cherry picked from commit 5ca64840578f9dad359d5c2e6821805df68a1608) -
ASoC machine sound driver for IQAudio PiDAC plus/pro
Rev3 for iMX SoC, high resolution codec supporting
upto 384khz sample rate on SAI; Include support for
Hifiberry audio hats that uses external oscillators for
dac system clock.Signed-off-by: Adrian Alonso
Reviewed-by: Shengjiu Wang
(cherry picked from commit b52d3587cba2b3db60cf316430478969918fed7a)
16 Nov, 2020
2 commits
-
Add widget to fix error prompt:
imx-cdnhdmi sound-hdmi: ASoC: DAPM unknown pin HDMI JackSigned-off-by: Shengjiu Wang
Reviewed-by: Peng Zhang -
When set_params return error, we should avoid to delete the component
in free function again. This may cause kernel crash.
Check cstream state to avoid such issue.Signed-off-by: Zhang Peng
13 Nov, 2020
2 commits
-
Remove unused pll8k and pll11k clock.
Signed-off-by: Shengjiu Wang
Reviewed-by: Peng Zhang -
When DSP has no response with cplay and try to force exit, kernel
met crash. Reason is kernel locks a mutex proxy->lock twice then
kernel crash. Use MU_SendMessageTimeout instead MU_SendMessage
then kernel can release the mutex.Signed-off-by: Zhang Peng
11 Nov, 2020
1 commit
-
Get card name from model property, which is to align the name
with Linux Fractory.Signed-off-by: Shengjiu Wang
Reviewed-by: Daniel Baluta
05 Nov, 2020
1 commit
-
Add support for bit and timestamp counters.
Signed-off-by: Viorel Suman
Reviewed-by: Shengjiu Wang
03 Nov, 2020
1 commit
-
Sync fsl_xcvr driver with the upstream accepted version.
Signed-off-by: Viorel Suman
29 Oct, 2020
1 commit
-
Add support aac streams for cplay, set necessary parameters to comp.
Signed-off-by: Zhang Peng
28 Oct, 2020
1 commit
-
ATF put into the end of OCRAM on 8mp A1. Change the ocram layout
for lpa.Signed-off-by: Bing Song
27 Oct, 2020
4 commits
-
Make fsl_dsp_cpu as a separate driver, otherwise below
build error will occur when set CONFIG_SND_SOC_FSL_DSP=mld.lld: error: duplicate symbol: init_module
>>> defined at fsl_dsp.c
>>> sound/soc/fsl/fsl_dsp.o:(init_module)
>>> defined at fsl_dsp_cpu.c
>>> sound/soc/fsl/fsl_dsp_cpu.o:(.init.text+0x0)Signed-off-by: Jindong
Reviewed-by: Shengjiu Wang -
After enable remote proc drvier, audio rpmsg
driver should not depend on HAVE_IMX_RPMSG.Signed-off-by: Jindong
Reviewed-by: Shengjiu Wang -
Move rpmsg wm8960 i2c driver to a new driver file,
otherwise it can not be built as module.Signed-off-by: Jindong
Reviewed-by: Shengjiu Wang -
Move i2s rpmsg driver to a new file: imx-i2s-rpmsg.c
This new driver should be probed after fsl_rpmsg_i2s, which
calls imx_rpmsg_platform_register (in imx-pcm-rpmsg) to fill
global variable: i2s_info_g.Signed-off-by: Jindong
Reviewed-by: Shengjiu Wang
26 Oct, 2020
1 commit
-
Add S32_LE support.
Signed-off-by: Shengjiu Wang
Reviewed-by: Viorel Suman
20 Oct, 2020
1 commit
-
Add license to support module build.
Signed-off-by: Jindong
Reviewed-by: Daniel Baluta
15 Oct, 2020
1 commit
-
Add to check more sections for dsp firmware due to xtensa tools upgrade,
dsp firmware binary adds sections.Signed-off-by: Zhang Peng
09 Oct, 2020
1 commit
-
instantiate snd_soc_dai_link for multi instance on 8dxl evk board.
Signed-off-by: Shengjiu Wang
Reviewed-by: Viorel Suman
08 Oct, 2020
1 commit
-
* tag 'v5.4.70': (3051 commits)
Linux 5.4.70
netfilter: ctnetlink: add a range check for l3/l4 protonum
ep_create_wakeup_source(): dentry name can change under you...
...Conflicts:
arch/arm/mach-imx/pm-imx6.c
arch/arm64/boot/dts/freescale/imx8mm-evk.dts
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
drivers/crypto/caam/caamalg.c
drivers/gpu/drm/imx/dw_hdmi-imx.c
drivers/gpu/drm/imx/imx-ldb.c
drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
drivers/mmc/host/sdhci-esdhc-imx.c
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
drivers/net/ethernet/freescale/enetc/enetc.c
drivers/net/ethernet/freescale/enetc/enetc_pf.c
drivers/thermal/imx_thermal.c
drivers/usb/cdns3/ep0.c
drivers/xen/swiotlb-xen.c
sound/soc/fsl/fsl_esai.c
sound/soc/fsl/fsl_sai.cSigned-off-by: Jason Liu
07 Oct, 2020
3 commits
-
As per discussion with upstream this is not the correct way
to handle DSP resources. All the resource management was moved
to SOF IMX driver so this code is no longer used.Removed it!
Signed-off-by: Daniel Baluta
-
We must match this with the name from topology.
Signed-off-by: Daniel Baluta -
We move clocks handling from FSL DAI generic driver to IMX specific
driver as per discussion with upstream community. With this patch,
FSL DAI generic driver is no longer used and will be removed.Signed-off-by: Daniel Baluta
06 Oct, 2020
2 commits
-
Because we no longer use FSL DAI generic driver, we register
supported DAI drivers now with audio DSP platform.This will also simplify dts file.
Reviewed-by: Paul Olaru
Signed-off-by: Daniel Baluta -
We no longer use FSL DAI generic driver as it is not
a good direction for upstreaming. Move clock handling
to SOF imx specific driver.Note that clocks handled are for DAIs used by i.MX8/i.MX8X boards,
that is SAI1 and ESAI0.Reviewed-by: Paul Olaru
Signed-off-by: Daniel Baluta
01 Oct, 2020
15 commits
-
commit f73bbf639b32acb6b409e188fdde5644b301978f upstream.
On Lenovo P520, the front panel headset LED isn't lit up right now.
Realtek states that the LED needs to be enabled by ALC233's GPIO2, so
let's do it accordingly to light the LED up.Signed-off-by: Kai-Heng Feng
Acked-by: Hui Wang
Cc:
Link: https://lore.kernel.org/r/20200914070231.13192-1-kai.heng.feng@canonical.com
Signed-off-by: Takashi Iwai
Signed-off-by: Greg Kroah-Hartman -
commit 3f74249057827c5f6676c41c18f6be12ce1469ce upstream.
We found a Mic detection issue on many Lenovo laptops, those laptops
belong to differnt models and they have different audio design like
internal mic connects to the codec or PCH, they all have this problem,
the problem is if plugging a headset before powerup/reboot the
machine, after booting up, the headphone could be detected but Mic
couldn't. If we plug out and plug in the headset, both headphone and
Mic could be detected then.Through debugging we found the codec on those laptops are same, it is
alc257, and if we don't disable the 3k pulldown in alc256_shutup(),
the issue will be fixed. So far there is no pop noise or power
consumption regression on those laptops after this change.Cc: Kailang Yang
Cc:
Signed-off-by: Hui Wang
Link: https://lore.kernel.org/r/20200914065118.19238-1-hui.wang@canonical.com
Signed-off-by: Takashi Iwai
Signed-off-by: Greg Kroah-Hartman -
commit 315c7ad7a701baba28c628c4c5426b3d9617ceed upstream.
Needs the same delay as H650e
Signed-off-by: Joakim Tjernlund
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200910085328.19188-1-joakim.tjernlund@infinera.com
Signed-off-by: Takashi Iwai
Signed-off-by: Greg Kroah-Hartman -
[ Upstream commit 472eb39103e885f302fd8fd6eff104fcf5503f1b ]
clang static analysis flags this problem
hpioctl.c:513:7: warning: Branch condition evaluates to
a garbage value
if (pci.ap_mem_base[idx]) {
^~~~~~~~~~~~~~~~~~~~If there is a failure in the middle of the memory space loop,
only some of the memory spaces need to be cleaned up.At the error handler, idx holds the number of successful
memory spaces mapped. So rework the handler loop to use the
old idx.There is a second problem, the memory space loop conditionally
iomaps()/sets the mem_base so it is necessay to initize pci.Fixes: 719f82d3987a ("ALSA: Add support of AudioScience ASI boards")
Signed-off-by: Tom Rix
Link: https://lore.kernel.org/r/20200913165230.17166-1-trix@redhat.com
Signed-off-by: Takashi Iwai
Signed-off-by: Sasha Levin -
[ Upstream commit 6a0137101f47301fff2da6ba4b9048383d569909 ]
The MPMAN Converter9 2-in-1 almost fully works with out default settings.
The only problem is that it has only 1 speaker so any sounds only playing
on the right channel get lost.Add a quirk for this model using the default settings + MONO_SPEAKER.
Signed-off-by: Hans de Goede
Acked-by: Pierre-Louis Bossart
Link: https://lore.kernel.org/r/20200901080623.4987-1-hdegoede@redhat.com
Signed-off-by: Mark Brown
Signed-off-by: Sasha Levin -
[ Upstream commit f5a2cda4f1db89776b64c4f0f2c2ac609527ac70 ]
When the wm8958_mic_detect, wm8994_mic_detect functions get called from
the machine driver, e.g. from the card's late_probe() callback, the CODEC
device may be PM runtime suspended and any regmap writes have no effect.
Add PM runtime calls to these functions to ensure the device registers
are updated as expected.
This suppresses an error during boot
"wm8994-codec: ASoC: error at snd_soc_component_update_bits on wm8994-codec"
caused by the regmap access error due to the cache_only flag being set.Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
Acked-by: Charles Keepax
Link: https://lore.kernel.org/r/20200827173357.31891-2-s.nawrocki@samsung.com
Signed-off-by: Mark Brown
Signed-off-by: Sasha Levin -
[ Upstream commit 811c5494436789e7149487c06e0602b507ce274b ]
The WM8994_MICBIAS register is not available in the WM1811 CODEC so skip
initialization of that register for that device.
This suppresses an error during boot:
"wm8994-codec: ASoC: error at snd_soc_component_update_bits on wm8994-codec"Signed-off-by: Sylwester Nawrocki
Acked-by: Krzysztof Kozlowski
Acked-by: Charles Keepax
Link: https://lore.kernel.org/r/20200827173357.31891-1-s.nawrocki@samsung.com
Signed-off-by: Mark Brown
Signed-off-by: Sasha Levin -
[ Upstream commit 7ad26d6671db758c959d7e1d100b138a38483612 ]
Some sound card try to set 0 Hz as reset, but it is impossible.
This patch ignores it to avoid error return.Signed-off-by: Kuninori Morimoto
Link: https://lore.kernel.org/r/87a6yjy5sy.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown
Signed-off-by: Sasha Levin -
[ Upstream commit a6630529aecb5a3e84370c376ed658e892e6261e ]
We've received a regression report on Intel HD-audio controller that
wakes up immediately after S3 suspend. The bisection leads to the
commit c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not
needed"). This commit replaces the system-suspend to use
pm_runtime_force_suspend() instead of the direct call of
__azx_runtime_suspend(). However, by some really mysterious reason,
pm_runtime_force_suspend() causes a spurious wakeup (although it calls
the same __azx_runtime_suspend() internally).As an ugly workaround for now, revert the behavior to call
__azx_runtime_suspend() and __azx_runtime_resume() for those old Intel
platforms that may exhibit such a problem, while keeping the new
standard pm_runtime_force_suspend() and pm_runtime_force_resume()
pair for the remaining chips.Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208649
Cc:
Link: https://lore.kernel.org/r/20200727164443.4233-1-tiwai@suse.de
Signed-off-by: Takashi Iwai
Signed-off-by: Sasha Levin -
[ Upstream commit 8d6762af302d69f76fa788a277a56a9d9cd275d5 ]
HD-audio codec driver applies a tricky procedure to forcibly perform
the runtime resume by mimicking the usage count even if the device has
been runtime-suspended beforehand. This was needed to assure to
trigger the jack detection update after the system resume.And recently we also applied the similar logic to the HD-audio
controller side. However this seems leading to some inconsistency,
and eventually PCI controller gets screwed up.This patch is an attempt to fix and clean up those behavior: instead
of the tricky runtime resume procedure, the existing jackpoll work is
scheduled when such a forced codec resume is required. The jackpoll
work will power up the codec, and this alone should suffice for the
jack status update in usual cases. If the extra polling is requested
(by checking codec->jackpoll_interval), the manual update is invoked
after that, and the codec is powered down again.Also, we filter the spurious wake up of the codec from the controller
runtime resume by checking codec->relaxed_resume flag. If this flag
is set, basically we don't need to wake up explicitly, but it's
supposed to be done via the audio component notifier.Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
Link: https://lore.kernel.org/r/20200422203744.26299-1-tiwai@suse.de
Signed-off-by: Takashi Iwai
Signed-off-by: Sasha Levin -
[ Upstream commit 65bd91dd6957390c42a0491b9622cf31a2cdb140 ]
pm_runtime_get_sync() increments the runtime PM usage counter even
the call returns an error code. Thus a pairing decrement is needed
on the error handling path to keep the counter balanced.Signed-off-by: Dinghao Liu
Link: https://lore.kernel.org/r/20200529012230.5863-1-dinghao.liu@zju.edu.cn
Signed-off-by: Mark Brown
Signed-off-by: Sasha Levin -
[ Upstream commit c637fa151259c0f74665fde7cba5b7eac1417ae5 ]
The unsol event handling code has a loop retrieving the read/write
indices and the arrays without locking while the append to the array
may happen concurrently. This may lead to some inconsistency.
Although there hasn't been any proof of this bad results, it's still
safer to protect the racy accesses.This patch adds the spinlock protection around the unsol handling loop
for addressing it. Here we take bus->reg_lock as the writer side
snd_hdac_bus_queue_event() is also protected by that lock.Link: https://lore.kernel.org/r/20200516062556.30951-1-tiwai@suse.de
Signed-off-by: Takashi Iwai
Signed-off-by: Sasha Levin -
[ Upstream commit c4c8dd6ef807663e42a5f04ea77cd62029eb99fa ]
The HD-audio controller does system-suspend and resume operations by
directly calling its helpers __azx_runtime_suspend() and
__azx_runtime_resume(). However, in general, we don't have to resume
always the device fully at the system resume; typically, if a device
has been runtime-suspended, we can leave it to runtime resume.Usually for achieving this, the driver would call
pm_runtime_force_suspend() and pm_runtime_force_resume() pairs in the
system suspend and resume ops. Unfortunately, this doesn't work for
the resume path in our case. For handling the jack detection at the
system resume, a child codec device may need the (literally) forcibly
resume even if it's been runtime-suspended, and for that, the
controller device must be also resumed even if it's been suspended.This patch is an attempt to improve the situation. It replaces the
direct __azx_runtime_suspend()/_resume() calls with with
pm_runtime_force_suspend() and pm_runtime_force_resume() with a slight
trick as we've done for the codec side. More exactly:- azx_has_pm_runtime() check is dropped from azx_runtime_suspend() and
azx_runtime_resume(), so that it can be properly executed from the
system-suspend/resume path- The WAKEEN handling depends on the card's power state now; it's set
and cleared only for the runtime-suspend- azx_resume() checks whether any codec may need the forcible resume
beforehand. If the forcible resume is required, it does temporary
PM refcount up/down for actually triggering the runtime resume.- A new helper function, hda_codec_need_resume(), is introduced for
checking whether the codec needs a forcible runtime-resume, and the
existing code is rewritten with that.BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=207043
Link: https://lore.kernel.org/r/20200413082034.25166-6-tiwai@suse.de
Signed-off-by: Takashi Iwai
Signed-off-by: Sasha Levin -
[ Upstream commit 5c6cd7021a05a02fcf37f360592d7c18d4d807fb ]
The Miditech MIDIFACE 16x16 (USB ID 1290:1749) has more than one extra
endpoint descriptor.The first extra descriptor is: 0x06 0x30 0x00 0x00 0x00 0x00
As the code in snd_usbmidi_get_ms_info() looks only at the
first extra descriptor to find USB_DT_CS_ENDPOINT the device
as such is recognized but there is neither input nor output
configured.The patch iterates through the extra descriptors to find the
proper one. With this patch the device is correctly configured.Signed-off-by: Andreas Steinmetz
Link: https://lore.kernel.org/r/1c3b431a86f69e1d60745b6110cdb93c299f120b.camel@domdv.de
Signed-off-by: Takashi Iwai
Signed-off-by: Sasha Levin -
[ Upstream commit 1919b42ca4ad75a2397081164661af3ce5a7b8f4 ]
In tx_wait_done the ipc payload is copied before the DSP transaction
error code is checked. This might lead to corrupted data in kernel side
even though the error would be handled later. It is also pointless to
copy the data in case of error. So change the order of error check and
copy.Signed-off-by: Pierre-Louis Bossart
Signed-off-by: Jaska Uimonen
Link: https://lore.kernel.org/r/20200228231850.9226-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown
Signed-off-by: Sasha Levin