23 Feb, 2017
40 commits
-
cherry-pick below patch from imx_3.14.y
ENGR00276567-4 mfd: si476x: Fix power up failureThis's some logical error in power-up code, thus fix it.
Signed-off-by: Nicolin Chen
(cherry picked from commit 77d97ad1bb77c0e3c60b9781a06b61d4b4667de1)
(cherry picked from commit b656522da2685ef9a4da2229b6786d5cd0c12189) -
cherry-pick below patch from imx_3.14.y
ENGR00330403-3: ASoC: fsl: port si476x machine driver from imx_3.10.yPort si476x machine dirver for i.MX series SoC and binding doc from imx_3.10.y
Signed-off-by: Shengjiu Wang
(cherry picked from commit 05a68db09806fe5b0aa927dd94cf69b1b0c0fa5a) -
As spdif driver will register SPDIF clock to regmap, regmap will do
clk_prepare in init function, so SPDIF clock is prepared in probe, then its
root clock (pll clock) is prepared also, which cause the arm can't enter
low power mode.
Add SPDIF_GCLK in clock tree which share same gate bits with SPDIF clock.
Its root clock is ipg clock, and register it to regmap, then the issue can be
fixed.Signed-off-by: Shengjiu Wang
(cherry picked from commit 3f8999cdb4fabed4f720c6ee23947e19c8fff83f) -
As spdif driver will register SPDIF clock to regmap, regmap will do
clk_prepare in init function, so SPDIF clock is prepared in probe, then its
root clock (pll clock) is prepared also, which cause the arm can't enter
low power mode.
Add SPDIF_GCLK in clock tree which share same gate bits with SPDIF clock.
Its root clock is ipg clock, and register it to regmap, then the issue can be
fixed.Signed-off-by: Shengjiu Wang
(cherry picked from commit 90d3a7c5da7b17f5bd88a906b54473468fa08991) -
cherry-pick below patch from imx_3.14.y
ENGR00330403-1: ASoC: imx-cs42888: port cs42888 machine driver from imx_3.10.yPort the cs42888 machine driver from imx_3.10.y and do update according to
new esai driver and asrc driver.Signed-off-by: Shengjiu Wang
(cherry picked from commit 7ed3aac83630a38eb397ed92f815a28e07198748) -
Volume 255 corresponding to register value 0, the value 0 is default
value. In regcache_sync(), when the cache value is equal to default
value, this register will be skipped. So volume 255 isn't set to
register successfully.The correct fix is to add software reset in runtime_resume, but cs42xx8
has no software reset, the hardware reset gpio pin is used by all the
perpherial device in ARD base board. So need to use another method.In order to fix it, need to cherry-pick two patch from master branch.
Which will sync all the registers include the register which cache value
equal the default value, And remove regcache_mark_dirty().Add update value of one register to make the cache_dirty if user press
the hardware reset pin on the board, then need to regcache_sync.Signed-off-by: Shengjiu Wang
(cherry picked from commit 5c0cae19928f99ebc8adf0013df850ba5b41d6a8) -
Delete PWR widget, enable it in probe to fix pop noise
Signed-off-by: Shengjiu Wang
(cherry picked from commit 4fdb40165706bba3de6aa47e6328136d1eb597fc) -
Add regcache mask dirty in suspend, otherwise the register is not
synced with cache in resume.Signed-off-by: Shengjiu Wang
(cherry picked from commit 9687aa5bbf5dd91b57f6e8b4b8ce69bf20e29c43) -
cherry-pick below patch from imx_3.14.y
ENGR00320849-1 ASoC: cs4xx8: fix the setting of Functional modeFailed case:
arecord -Dhw:0,1 -f S16_LE -r 96000 -c 2 -traw | aplay -Dhw:0,0 -f
S16_LE -r 96000 -c 2 -traw.
There is no sound when use this case.The reason is that the setting
of Functional mode is not correct.Signed-off-by: Shengjiu Wang
(cherry picked from commit be1ef3bb8da5c263345ebdad4a7c218a095d0f48)
(cherry picked from commit c2dfac6c09bc1fcb044022bcdaea450707feda4c) -
cherry-pick below patch from imx_3.14.y
ENGR00332688: ARM: dts: imx6qdl: refine spdif support in devicetreeAdd sysclk and spba clock, and assigned-clocks
Signed-off-by: Shengjiu Wang
-
Add snd_soc_pm_ops in machine driver to make the trigger suspend/resume
be called in suspend/resume. Remove platform_set_drvdata for redundance,
When register card, it has been called.Signed-off-by: Shengjiu Wang
(cherry picked from commit fe21119eed18804b2bc7c47216b6f4478de0268d) -
In imx6qp, there is no mega fast. After suspend, but before resume,
there will be spdif interrupt, if set cache only in suspend, then we
can't clear the interrupt, because regmap_write only write to cache.
So the system will hang for the interrupt can't be cleared.Signed-off-by: Shengjiu Wang
(cherry picked from commit 2a6a522c86d6c0fe80023c4327ca7ce4792035c8) -
For p2p output, the output divider should align with the output sample
rate, if use the Ideal sample rate, there will be a lot of overload, which
will cause underrun.Signed-off-by: Shengjiu Wang
(cherry picked from commit 5ab043f1a020ae8c3aeb3d91f6894bbd6a6ec147) -
The latest asrc's channel bits is 4, bit the old asrc's channel bits is 3.
So here add protection for when using the old version asrc.Signed-off-by: Shengjiu Wang
(cherry picked from commit e282d8825217c6f4ece4f9dcc2efa3421ea22b4b) -
cherry-pick below patch from imx_3.14.y
ENGR00307592 ASoC: fsl_asrc: Add delay after enabling ASRC p2pWhen using ASRC p2p as a for-end with other back-end modules like ESAI,
it'd be safer to add 1ms delay, less might be futile for extreme cases,
after enabling ASRC so as to keep ASRC output FIFO with enough data to
content the DMA burstsize of back-ends and accordingly prevent underrun
that might happen to them.Acked-by: Wang Shengjiu
Signed-off-by: Nicolin Chen
(cherry picked from commit c68c1874c07c30a3483eed70fb2abe82e19d1d20) -
There is very low possibility that channel swap happened in beginning when
multi output/input pin is enabled. The issue is that hardware can't send data
to correct pin in the begginning with the normal enable flow.
Here use TSMA/TSMB as the trigger for sending data to workaround this issue.Signed-off-by: Shengjiu Wang
(cherry picked from commit 859b0fc4544bef30e269b4f6a81999db1d07a42d)
(cherry picked from commit 576df2aafc1b5a5b9c596a54bb276b2472e72ff5) -
When test with case arecord -Dhw:0,1 | aplay -Dhw:0,0, xrun happened,
the reset handler will be called, but for BE(backend) stream, the
substream->ops is null.
This patch is to fix this null pointer issue.Signed-off-by: Shengjiu Wang
(cherry picked from commit 4db112a8cd3caf5a553afea88cf7fe8d9781f459)
(cherry picked from commit cf060b0f735d0fadadda2dc03d0b38e96ca7ffe2) -
cherry-pick below patch from imx_3.14.y
ENGR00318773-10 ASoC: imx-audmux: Add driver suspend and resume to support MEGA FastFor i.MX6 SoloX, there is a mode of the SoC to shutdown all power source of
modules during system suspend and resume procedure. Thus, AUDMUX needs to
save all the values of registers before the system suspend and restore them
after the system resume.Acked-by: Wang Shengjiu
Signed-off-by: Nicolin Chen
(cherry picked from commit 3f3781143ba2800f7e3e46dbecc0c7a76d22a146) -
cherry-pick below patch from imx_3.14.y
ENGR00274585-9 ASoC: change error message to debug messageThis error message is not actual error, which is a warning. When using
FE/BE, if there is widget which is used by playback and capture route, then
this message will be printed.Signed-off-by: Shengjiu Wang
(cherry picked from commit ad60b0e03d058b57f2fd9538e1158da8eefcea1f) -
cherry-pick below patch from imx_3.14.y
ENGR00307835-4 ASoC: fsl: implement ASRC P2P xrun handlerWhen ASRC P2P is working, it will check the xrun status of cpu dai
in the back end bistream. then will do Whole route stop and restart.Signed-off-by: Shengjiu Wang
(cherry picked from commit 28d18f23fe7577f613ad8cfb4699bba26178304b) -
cherry-pick below patch from imx_3.14.y
ENGR00307835-3 ASoC: fsl: implement the ESAI xrun handler.When esai xrun happened, there is possibility of channel swap. So ESAI
need to be reset.Signed-off-by: Shengjiu Wang
(cherry picked from commit 440fbeee5bba4d4356a392ff35fe262774c48ea1) -
cherry-pick below patch from imx_3.14.y
ENGR00307835-2 ASoC: dmaengine: Add two function for dmaengine_pcmAdd check_xrun and device_reset for dmaengine_pcm
Signed-off-by: Shengjiu Wang
(cherry picked from commit 405588f31e432e5c6634a0817e4d804ead87882b) -
cherry-pick below patch from imx_3.14.y
ENGR00331799-8: ASoC: fsl_spdif: add pm runtime for spdifAdd pm runtime for spdif.
Signed-off-by: Shengjiu Wang
(cherry picked from commit 91136d03edf45355b6b0075a486f78f573c97c52) -
cherry-pick below patch from imx_3.14.y
ENGR00331799-7: ASoC: fsl_ssi: pm_runtime for ssiADD pm runtime for ssi.
Signed-off-by: Shengjiu Wang
(cherry picked from commit 09f7a8aa7e417aaf837a4b9b8b15874ad95765c2) -
cherry-pick below patch from imx_3.14.y
ENGR00331799-3: ARM: dts: imx6sx: update dts for asrcAs we use the upstreamed asrc driver in imx_3.14, the device tree need
to be updated.Signed-off-by: Shengjiu Wang
(cherry picked from commit cb4b6694dfd9c6ad996fba09c2250b11cf46c555) -
cherry-pick below patch from imx_3.14.y
ENGR00331799-2 ASoC: fsl_spdif: don't change the root clock rate of spdif in driverThe spdif root clock may be used by other module or defined with
CLK_SET_RATE_GATE, so we can't change the clock rate in driver.
In this patch remove the clk_set_rate and clk_round_rate to protect the
clock.Signed-off-by: Shengjiu Wang
(cherry picked from commit c77170b2c9a9737f6fd61a5ea85a43b90e8ef02b) -
After running asrc p2p, then asrc m2m can't work. It is caused by the
sdmac->flags isn't reset after running. then sdma_int_handler go to
wrong branch.Signed-off-by: Shengjiu Wang
-
add mqs sound card support
Signed-off-by: Zidan Wang
-
If the mclk is 24.576MHz, mqs can't support 96k and 192kHz, because
the we can't get a proper clock divider for mqs.Signed-off-by: Shengjiu Wang
-
add asrc p2p support in sai->mqs
Signed-off-by: Shengjiu Wang
-
Set tdm slot in hw_params() for sai master mode.
Signed-off-by: Zidan Wang
-
It is too early to put clk get rate in probe, because the rate for
the clock may not be ready.Signed-off-by: Shengjiu Wang
-
enable mqs sound card.
Signed-off-by: Shengjiu Wang
(cherry picked from commit 21cf6e439bdf9a0cf287b1dd04ceb56d0486167d) -
Implement machine driver for mqs, which use the sai as cpu dai.
sai work on master mode.Signed-off-by: Shengjiu Wang
(cherry picked from commit cac9eb41debc6444d753dc936cdf76874260b9e4) -
Implement codec driver for mqs. mqs is a very simple IP. which support:
Word length: 16bit.
DAI format: Left-Justified, slave mode.Signed-off-by: Shengjiu Wang
(cherry picked from commit 9da6bdd2072b850e9bb910512123eff7d80a0e2f) -
Add MQS's bit description in gpr header file.
Signed-off-by: Shengjiu Wang
(cherry picked from commit 1e576de4b46a0fadd1c8df7f08229ac759e765f5) -
add saiWM8958 sound card support
Signed-off-by: Zidan Wang
-
Add hx8369 wvga panel driver for mipi dsi.
Signed-off-by: Fancy Fang
-
cherry-pick below patch from v3.14.y:
ENGR00286273-2 misc: sram: Set default alignment to 4KbytesAs Kernel 3.0.35 does, we set the default iram alignment to 4Kbytes,
although it would waste few memory space.We here try to do this as an expediency because currently we couldn't
find a perfect solution for 4Kbytes alignment requirement from SDMA.Signed-off-by: Nicolin Chen
(cherry picked from commit cc35bf5bd3472efca29a0858c0ad468a63c60950) -
When building kernel with CONFIG_DEBUG_ATOMIC_SLEEP=y, there will be
kernel dump.BUG: sleeping function called from invalid context at drivers/base/power/runtime.c:954
in_atomic(): 1, irqs_disabled(): 128, pid: 705, name: aplay
CPU: 0 PID: 705 Comm: aplay Not tainted 3.10.53-02755-gbee6071 #1472
[] (unwind_backtrace+0x0/0xf8) from [] (show_stack+0x10/0x14)
[] (show_stack+0x10/0x14) from [] (__pm_runtime_resume+0x88/0x90)
[] (__pm_runtime_resume+0x88/0x90) from [] (fsl_sai_trigger+0x98/0x300)
[] (fsl_sai_trigger+0x98/0x300) from [] (soc_pcm_trigger+0x90/0xa0)
[] (soc_pcm_trigger+0x90/0xa0) from [] (snd_pcm_do_start+0x2c/0x30)
[] (snd_pcm_do_start+0x2c/0x30) from [] (snd_pcm_action_single+0x38/0x78)
[] (snd_pcm_action_single+0x38/0x78) from [] (snd_pcm_action_lock_irq+0x84/0xa4)
[] (snd_pcm_action_lock_irq+0x84/0xa4) from [] (snd_pcm_common_ioctl1+0x16c/0xd68)
[] (snd_pcm_common_ioctl1+0x16c/0xd68) from [] (snd_pcm_playback_ioctl1+0x158/0x4d0)
[] (snd_pcm_playback_ioctl1+0x158/0x4d0) from [] (do_vfs_ioctl+0x80/0x624)
[] (do_vfs_ioctl+0x80/0x624) from [] (SyS_ioctl+0x3c/0x5c)
[] (SyS_ioctl+0x3c/0x5c) from [] (ret_fast_syscall+0x0/0x30)Signed-off-by: Shengjiu Wang
(cherry picked from commit 99095f3362bc53eb414dabbbe7da5778f3d54f25)