Age | Commit message (Collapse) | Author |
|
Fixes: fd3dae677 (ENGR00305648-1 ASoC: imx-sgtl5000: Support
non-ssi cpu-dai)
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
|
|
This fixes commit 7511009a7642 ("MLK-15937-4: ASoC: fsl_spdif: Use DMA
workaround for SPDIF").
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Each spdif sample is qualified by the validity bit.
The bit shall be logic '0' if the audio sample is valid.
This commit configures the transmitter to always send '0' rather
than always send '1'.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
(cherry picked from commit 0bef909d061cd800da3f553d24129fc48bf3af01)
(cherry picked from commit 6ff91330b3dee51b14cde4442f78a07e87d21d68)
|
|
The current imx-sgtl5000 driver always attaches the cpu-dai to ssi while
in fact it could be attached to other cpu-dais like SAI. Thus this patch
use a general code to support another cpu-dai. And meanwhile update the
devicetree for i.MX6 Series.
Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
(cherry picked from commit f9302eb42ad8f597b46e681b5ad402af3fb7dd9d)
|
|
This is the 4.14.164 stable release
Conflicts:
arch/arm/Kconfig.debug
arch/arm/boot/dts/imx7s.dtsi
arch/arm/mach-imx/cpuidle-imx6q.c
arch/arm/mach-imx/cpuidle-imx6sx.c
arch/arm64/kernel/cpu_errata.c
arch/arm64/kvm/hyp/tlb.c
drivers/crypto/caam/caamalg.c
drivers/crypto/mxs-dcp.c
drivers/dma/imx-sdma.c
drivers/gpio/gpio-vf610.c
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
drivers/input/keyboard/imx_keypad.c
drivers/input/keyboard/snvs_pwrkey.c
drivers/mmc/core/block.c
drivers/mmc/core/queue.h
drivers/mmc/host/sdhci-esdhc-imx.c
drivers/net/can/flexcan.c
drivers/net/can/rx-offload.c
drivers/net/ethernet/freescale/fec_main.c
drivers/net/wireless/ath/ath10k/pci.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
drivers/pci/dwc/pci-imx6.c
drivers/spi/spi-fsl-lpspi.c
drivers/usb/dwc3/gadget.c
include/net/tcp.h
sound/soc/fsl/Kconfig
sound/soc/fsl/fsl_esai.c
|
|
As we enabled WQ_FREEZABLE for workqueue, flush_workqueue in suspend
stage will not success, for the workqueue is freezed.
flush_workqueue in suspend is a wrong operation with WQ_FREEZABLE,
so remove it.
Fixes: 5b07f684deb1 ("LF-215: ASoC: fsl_rpmsg_i2s: Enable WQ_FREEZABLE for workqueue")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
In imx8mn, M7 image has poor quality for 8kHz ~ 22kHz sample rate
case, but M7 side don't want to fix this issue in their image, so
we remove these sample rate in supported list.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
When two stream start to run, the trigger function
may be called by two substream in same time, that
the priv->tdms may be updated wrongly.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
In the end of playback, when the suspend happen, there will be error
in m4 side.
RTM_SaiSdmaAdapter_SetParam: Tx in wrong state 2!
SRTM_SaiSdmaAdapter_SetBuf: Tx in wrong state 2!
SRTM_SaiSdmaAdapter_Start: Tx in wrong state 2!
The reason is that the I2S_TX_TERMINATE happen in the middle of
I2S_TX_SUSPEND and I2S_TX_RESUME, this sequence is not allowed.
So we make the rpmsg message workqueue enter freeze in suspend
to avoid such issue. that the command sequence will be
I2S_TX_SUSPEND->I2S_TX_RESUME->I2S_TX_TERMINATE
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
The registers must be readable in order to manage the related
amixer controls while device is suspended - thus remove them
from volatile list. In the same time reading counter registers
shall bypass regmap cache at runtime, otherwise cached value
will be read.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
(cherry picked from commit ab028ee2ce39e1ba53bb3dfc127b6fed4758cc38)
|
|
The patch adds controls as function of streams supported.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
(cherry picked from commit aa16c95a044bc20d6af24a65ea8c22ad70303a85)
|
|
Modified parameter msg in dsp, make sure still can transfer right msg
between DSP and user, modified parameter msg in kernel.
Signed-off-by: Zhang Peng <peng_zhang_8@nxp.com>
|
|
With the case below, there is issue that after recording with
8 channels, the recording of 1 channel will fail.
arecord -Dhw:2,0 -r 32000 -f S16_LE -c 8 -d 5 -t raw /tmp/test1.pcm
arecord -Dhw:2,0 -r 32000 -f S16_LE -c 1 -d 5 -t raw /tmp/test2.pcm
arecord: pcm_read:2143: read error: Input/output error
The reason is that we need to reset channel output data Flag before
we start the recording
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
After suspend & resume, there may be noise in asrc output. The reason
is the coeff variable is local, in resume function this variable is
invalid to access, so that cause the prefilter coeff not correctly be
setted.
This patch is to change the coeff variable to be global that we can
get the correct value in resume.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
commit 2757970f6d0d0a112247600b23d38c0c728ceeb3 upstream.
The node obtained from of_find_node_by_path() has to be unreferenced
after the use, but we forgot it for the root node.
Fixes: f0fba2ad1b6b ("ASoC: multi-component - ASoC Multi-Component Support")
Cc: Timur Tabi <timur@kernel.org>
Cc: Nicolin Chen <nicoleotsuka@gmail.com>
Cc: Xiubo Li <Xiubo.Lee@gmail.com>
Cc: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Acked-by: Nicolin Chen <nicoleotsuka@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
In order to support the odd channels for ASRC case, we
force to enable TDM mode. In non-tdm case, we enable
multi lane to support multi channels, but limitation
is odd multi channels can't be supported.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
When record bitstream with ASRC+AK5558, there may be I/O error
for the high sample rate case (352kHz/768kHz).
The reason is that the context is not fully reset after
conversion, the ASRC does not start to work in next conversion.
In order to fully reset the context, we need to enable RUN_STOP,
then clear the RUN_EN bit.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Wrap the common code to fsl_easrc_config_one_slot function, that
is to make the code more clear.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
When run conversion in parrallel, one is down sampling, another
is up sampling, so one enables PF_BYPASS_MODE, another disable
PF_BYPASS_MODE, when the allocated slots in a same context
processor, there is noise in the result of down sampling.
If we alway disable PF_BYPASS_MODE, the issue can't be reproduced.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
The maximum prefilter memory size is 6144 entry, it is not allowed to
require memory size exceed this size.
When we calculate the available channel in the context processer, we
need to consider if the prefilter memory is not enough for the maxmum
channels, then we need to reduce the channels in this context processor,
move the left channel to another context processor.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Add multi context support for bps_iec958
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
support configuration of channel status for IEC958
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
IEC958 is only supported for output according to the RM
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
Fix constant variable guards dead code which is reported by coverity.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
Move the operation for sii902x module to mxsfb_sii902x_audio.c
platform driver. change codec from dummy to hdmi-codec
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Fix logically dead code which is reported by coverity
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
(cherry picked from commit 1ce5ff153d2da01e4553e67e3f7aa61a4c6c5650)
|
|
The rpmsg i2s audio is supported with codec wm8524 in imx8mn
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
In LPA drain state, if runtime->status->state is SUSPEND, after resume,
ALSA would exit drain mode directly, that cause some data in end
of song is missed.
This patch is to enable ignore_suspend flags that
the runtime->status->state will be not in SUSPEND always.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Use the spin lock to protect the work_write_index and work_read_index,
Use the spin lock to protect the period_done_msg_enabled flag
That is to avoid the read and write flag confliction.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
For we have dropped the cmd I2S_TX_POINTER, and M4 will send
notification every period, so we don't need to enable timer
every period to get the position of TX pointer.
But we need a timer to send the notification to M4 that is
to reduce the notificaition message number.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
There is error log for short period size:
[ 6977.102062] i2s_rpmsg virtio0.rpmsg-audio-channel.-1.1: rpmsg_send cmd 22 timeout!
We use the I2S_TX_POINTER(cmd 22) to get the consumed period
index from M4 every period time, and m4 should send feedback
to A53. When the period time is small, there will too much
cmd send to m4, m4 may not handle it quickly that cause
timeout.
This patch is to remove the I2S_TX_POINTER cmd, m4 should
send notification to A53 every period time to be compatible
with this change. with the patch the loading of this rpmsg
channel is reduced.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
The audio float point data range is (-1, 1), the asrc would output
all zero for float point input and integer output case, that is to
drop the fractional part of the data directly.
In order to support float to int conversion or int to float conversion
we need to do special operation on the coefficient to enlarge/reduce
the data to the expected range.
For float to int case:
Up sampling:
1. Create a 1 tap filter with center tap (only tap) of 2^31
in 64 bits floating point.
double value = (double)(((uint64_t)1) << 31);
2. Program 1 tap prefilter with center tap above.
Down sampling,
1. If the filter is single stage filter, add "shift" to the exponent of
stage 1 coefficients.
2. If the filter is two stage filter , add "shift" to the exponent of
stage 2 coefficients.
The "shift" is 31, same for int16, int24, int32 case.
For int to float case:
Up sampling:
1. Create a 1 tap filter with center tap (only tap) of 2^-31
in 64 bits floating point.
2. Program 1 tap prefilter with center tap above.
Down sampling,
1. If the filter is single stage filter, subtract "shift" to the
exponent of stage 1 coefficients.
2. If the filter is two stage filter , subtract "shift" to the
exponent of stage 2 coefficients.
The "shift" is 15,23,31, different for int16, int24, int32 case.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Fix build warning with CONFIG_PM_SLEEP=n, the message is
In file included from sound/soc/fsl/fsl_easrc.c:2204:0:
sound/soc/fsl/fsl_easrc_m2m.c:960:13: warning: ‘fsl_easrc_m2m_resume’ defined but not used [-Wunused-function]
static void fsl_easrc_m2m_resume(struct fsl_easrc *easrc)
^~~~~~~~~~~~~~~~~~~~
sound/soc/fsl/fsl_easrc_m2m.c:927:13: warning: ‘fsl_easrc_m2m_suspend’ defined but not used [-Wunused-function]
static void fsl_easrc_m2m_suspend(struct fsl_easrc *easrc)
^~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
fix build warning with CONFIG_PM_SLEEP=n, the warning message is
In file included from sound/soc/fsl/fsl_asrc.c:968:0:
sound/soc/fsl/fsl_asrc_m2m.c:1021:13: warning: ‘fsl_asrc_m2m_resume’ defined but not used [-Wunused-function]
static void fsl_asrc_m2m_resume(struct fsl_asrc *asrc_priv)
^~~~~~~~~~~~~~~~~~~
sound/soc/fsl/fsl_asrc_m2m.c:990:13: warning: ‘fsl_asrc_m2m_suspend’ defined but not used [-Wunused-function]
static void fsl_asrc_m2m_suspend(struct fsl_asrc *asrc_priv)
^~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
Remove capture DAPM routes since WM8524 DAC is playback only.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviwed-by: Daniel Baluta <daniel.baluta@nxp.com>
|
|
HWVAD may be disabled from different context - from userspace
via SYSFS interface, and from VAD interrupt context on VAD event
detection. Synchronize HVWAD enable/disable in order to get a
proper HWVAD state after each operation.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
(cherry picked from commit b5472e3f3dd1bd8959c1333a2aa01516e806c329)
|
|
Replace "sleep" calls with corresponding "delay" equivalents
in order to prepare the code for running in atomic context.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
(cherry picked from commit 91a783081dc722ed35024862fd483c60f23f6a36)
|
|
The HWVAD_OFF state must be restored and device put back
in runtime_suspend in case if fsl_set_clock_params, fsl_micfil_reset
and init_hwvad calls return an error.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
(cherry picked from commit 259efe6c3e05b07bdcdf27cea269af4ea82c8abe)
|
|
Improve hwvad enable/disable related error logging messages.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
(cherry picked from commit fa548658c50a19bf3417763d36a0022598c97c0b)
|
|
Fix issue reported by coverity:
a. Resource leak for ctx is not freed when m2m allocation
failed
b. Use of untrusted scalar value
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Bitcount and timestamp support added in SAI IP recently.
Add the related controls in SAI driver.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
(cherry picked from commit 6430d82eb40db6ea85a4f125f99a1747153a38c1)
|
|
Support S24_3LE for m2m with SDMA, but add constraint
for EDMA case, for EDMA don't support 3bytes copy.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
upport S24_3LE and S20_3LE for m2m.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
Previous default settings resulted in loose dynamic
range and low sound level.
New default configuration changes:
- outgain = 2
- quality mode = VLQ0
- dc remover = bypass
Signed-off-by: Irina Patru <ioana-irina.patru@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
(cherry picked from commit b7c20c96fb132f8d8e216ce570df82b0ddb24de3)
|
|
With multi-instance case, the fsl_easrc_config_slot will be called
in parallel, the fsl_easrc_slot is independent with context, so
we need to lock to protect the access of fsl_easrc_config_slot,
otherwise, the slot configuration will be fail for some instance
that cause "input DMA task timeout".
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Some definition of parameter's width is wrong, that cause the
failure of conversion for more than 16 channels.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
The input audio float data range is normalized to (-1, 1), but
the hardware will drop to fractional part if output format
is integer format, so the output is all zero, which does not flow
the normal audio case, that to shift the output to Q15/Q31.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
The hardware don't support big endian format. which only
support bit reverse.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
|
|
When error happen, user may not call STOP_CONV to stop the context,
then there will be "input DMA task timeout" issue for next m2m task.
In this patch, fsl_easrc_stop_context is called in RELEASE_PAIR to
make sure context is stopped.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
|
|
Read SAI IP version and parameters in probe function.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
|