- 09 1月, 2018 1 次提交
-
-
由 John Keeping 提交于
When restoring registers during runtime resume, we must not write to I2S_TXDR which is the transmit FIFO as this queues up a sample to be output and pushes all of the output channels down by one. This can be demonstrated with the speaker-test utility: for i in a b c; do speaker-test -c 2 -s 1; done which should play a test through the left speaker three times but if the I2S hardware starts runtime suspended the first sample will be played through the right speaker. Fix this by marking I2S_TXDR as volatile (which also requires marking it as readble, even though it technically isn't). This seems to be the most robust fix, the alternative of giving I2S_TXDR a default value is more fragile since it does not prevent regcache writing to the register in all circumstances. While here, also fix the configuration of I2S_RXDR and I2S_FIFOLR; these are not writable so they do not suffer from the same problem as I2S_TXDR but reading from I2S_RXDR does suffer from a similar problem. Fixes: f0447f6c ("ASoC: rockchip: i2s: restore register during runtime_suspend/resume cycle", 2016-09-07) Signed-off-by: NJohn Keeping <john@metanate.com> Signed-off-by: NMark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
-
- 15 9月, 2017 1 次提交
-
-
由 John Keeping 提交于
mclk is enabled and disabled only in i2s_runtime_{resume,suspend}() and we ensure that the device is runtime suspended before reaching this clk_disable_unprepare() call, so it is wrong to call it again here. Signed-off-by: NJohn Keeping <john@metanate.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 15 8月, 2017 1 次提交
-
-
由 Markus Elfring 提交于
Omit an extra message for a memory allocation failure in this function. This issue was detected by using the Coccinelle software. Link: http://events.linuxfoundation.org/sites/events/files/slides/LCJ16-Refactor_Strings-WSang_0.pdfSigned-off-by: NMarkus Elfring <elfring@users.sourceforge.net> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 16 6月, 2017 1 次提交
-
-
由 Mark Brown 提交于
Reported-by: NChristophe Jaillet <christophe.jaillet@wanadoo.fr> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 15 6月, 2017 1 次提交
-
-
由 Christophe Jaillet 提交于
If this memory allocation fail, we must disable what has been enabled. Do not return immediately but go thrue the error handling path instead. Also use 'devm_kmemdup' instead of 'devm_kzalloc+memcpy' to simplify code. Signed-off-by: NChristophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 14 6月, 2017 2 次提交
-
-
由 Sugar Zhang 提交于
in order to guarantee i2s lrck signal integrity, when i2s stop, need at least one lrck cycle to ensure signal integrity. the max delay time is when lrck is 8khz, the delay time is 125us(1/8khz), using udelay(150) with a 25us margin. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 zhangjun 提交于
simple-audio-card,bitclock-inversion = <1> : bclk falling edge taken simple-audio-card,format = "dsp_a" : pcm no delay mode simple-audio-card,format = "dsp_b" : pcm late 1 mode Signed-off-by: Nzhangjun <zhangjun@rock-chips.com> Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 13 9月, 2016 1 次提交
-
-
由 Sugar Zhang 提交于
when step into runtime_suspend, i2s pd will be disabled and loss state. so need to restore register when runtime_resume. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 30 5月, 2016 2 次提交
-
-
由 Sugar Zhang 提交于
this patch make it more reasonable and readable, because when we chose I2S_CKR_TRCM_TXONLY, we only output clk_lrck_tx, and hardware need to confirm this signal is wired to external codec lrck_tx/rx at the same time. for convenience, we just handle lrck_txonly if we enable symmetric_rates in driver and dai_link. otherwise, we use the separate lrck_tx/rx. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NXing Zheng <zhengxing@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Sugar Zhang 提交于
There are 3 i2s sdio pins, which iomux mode is as follows: - sdi3_sdo1 - sdi2_sdo2 - sdi1_sdo3 we need to configure these pins' iomux mode via the GRF register when use multi channel playback/capture. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 05 5月, 2016 2 次提交
-
-
由 John Keeping 提交于
This reverts commit eba65d17. This broke audio on Veyron Jerry Chromebooks and I now cannot reproduce the problem I was trying to fix even with this commit reverted, so it seems that this was completely the wrong thing to do. Reported-by: NEnric Balletbo Serra <eballetbo@gmail.com> Signed-off-by: NJohn Keeping <john@metanate.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 John Keeping 提交于
This reverts commit 5938448b. It turns out that the commit that made these variables unused is wrong so we're about to revert it. Bring back the variables in prepration. Signed-off-by: NJohn Keeping <john@metanate.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 22 2月, 2016 2 次提交
-
-
由 Sugar Zhang 提交于
this patch add default values for registers according description from TRM. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Jianqun Xu 提交于
Add devicetree bindings for i2s controller found on rk3399 processors from rockchip. It's helpful to add full set of compatible strings for serials of Rockchip SoCs (rk3066, rk3188, rk3288, rk3399). Acked-by: NRob Herring <robh@kernel.org> Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 10 1月, 2016 1 次提交
-
-
由 Michael Trimarchi 提交于
Signed-off-by: NMichael Trimarchi <michael@amarulasolutions.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 10 12月, 2015 2 次提交
-
-
由 John Keeping 提交于
The previous commit removed the only use of these variables. Signed-off-by: NJohn Keeping <john@metanate.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 John Keeping 提交于
If we only clear the tx/rx state when both are disabled it is not possible to start/stop one multiple times while the other is running. Since the two are independently controlled, treat them as such and remove the false dependency between capture and playback. Signed-off-by: NJohn Keeping <john@metanate.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 17 11月, 2015 1 次提交
-
-
由 Sugar Zhang 提交于
there maybe more than one i2s module inside chip, and these i2s modules have different channels features. for example: there are 3 i2s in rk3066, one support 8 channels playback and 2 channels capture, but the others only support 2 channels playback and 2 channels capture. in order to compatible with these various chips, we add playback and capture property to specify these values. there are default channels configuration in driver: 8 channels playback and 2 channels capture. if not add property, we use the default values. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 16 11月, 2015 1 次提交
-
-
由 Caesar Wang 提交于
This patch sets the dividers autonomously. when i2s works on master mode, and sample rates changed. We need to change bclk and lrck at the same time for cpu internal side. As the input source clock to the module is MCLK_I2S, and by the divider of the module, the clock generator generates SCLK and LRCK to transmitter and receiver. Signed-off-by: NCaesar Wang <wxt@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 23 10月, 2015 2 次提交
-
-
由 Sugar Zhang 提交于
share lrck_tx to lrck_rx when symmetric_rates enabled. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Sugar Zhang 提交于
support max 8 channels capture, please add property 'rockchip,capture-channels' in dts to enable this, if not, support 2 channels capture default. Signed-off-by: NSugar Zhang <sugar.zhang@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 20 8月, 2015 1 次提交
-
-
由 Vaishali Thakkar 提交于
Remove use of snd_soc_unregister_component in remove function as devm_snd_soc_register_component in probe function automatically handles it. Also, convert call of snd_dmaengine_pcm_register to managed resource function devm_snd_dmaengine_pcm_register and remove usage of snd_dmaengine_pcm_unregister in probe and remove functions. Signed-off-by: NVaishali Thakkar <vthakkar1994@gmail.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 08 1月, 2015 1 次提交
-
-
由 Jianqun Xu 提交于
This patch applys rate symmetry for rockchip i2s DAI. Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 24 12月, 2014 2 次提交
-
-
由 Jianqun Xu 提交于
Set Transmit Data Level(TDL) and Receive Data Level(RDL) to 16 samples. Without this setting, the TDL is default to be 0x00 (means 0 sample), and the RDL is default to be 0x1f (means 32 samples). Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Jianqun Xu 提交于
Since RK3288 DMAC's burst length only support max to 4, here set maxburst of playback and capture dma data to 4. Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 29 10月, 2014 1 次提交
-
-
由 Jianqun 提交于
We can get into an infinite loop if the I2S_CLR register fails to clear due to a missing break statement, so add that. Signed-off-by: NJianqun <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org
-
- 20 10月, 2014 1 次提交
-
-
由 Wolfram Sang 提交于
A platform_driver does not need to set an owner, it will be populated by the driver core. Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
-
- 08 10月, 2014 1 次提交
-
-
由 Sonny Rao 提交于
We can get into an infinite loop if the I2S_CLR register fails to clear due to a missing break statement, so add that. Signed-off-by: NSonny Rao <sonnyrao@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 14 9月, 2014 4 次提交
-
-
由 Jianqun 提交于
Add playback/capture dma data to snd_soc_dai. Test on RK3288 with max98090. Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Jianqun 提交于
As "hclk" is used for rockchip I2S controller, driver must to enable it in probe. Tested on RK3288 with max98090. Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Jianqun 提交于
Reference rockchip I2S controller TRM, modify some registers' property I2S_FIFOLR: read / write, but not volatile, not precious I2S_INTSR: read / write I2S_CLR: volatile, register value will be cleared by read Test on RK3288 with max98090. Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Jianqun 提交于
Fix error format set to I2S master or slave mode. Test on RK3288 board with max98090. Signed-off-by: NJianqun Xu <jay.xu@rock-chips.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 28 7月, 2014 1 次提交
-
-
由 Wei Yongjun 提交于
There is a error message within devm_ioremap_resource already, so remove the dev_err call to avoid redundant error message. Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: NMark Brown <broonie@linaro.org>
-
- 15 7月, 2014 1 次提交
-
-
由 JianqunXu 提交于
This resulted from an unfortunate copy/paste to similar DEFINE name. Detected automagically by kbuild. Signed-off-by:
xujianqun <xjq@rock-chips.com> Signed-off-by: NMark Brown <broonie@linaro.org>
-
- 11 7月, 2014 1 次提交
-
-
由 JianqunXu 提交于
Missing module.h in linux directory will cause compile error with randconfig, like as: sound/soc/rockchip/rockchip_i2s.c:526:20: error: expected declaration specifiers or ‘...’ before string constant MODULE_DESCRIPTION("ROCKCHIP IIS ASoC Interface"); Signed-off-by:
xujianqun <xjq@rock-chips.com> Signed-off-by: NMark Brown <broonie@linaro.org>
-
- 09 7月, 2014 1 次提交
-
-
由 JianqunXu 提交于
Add driver for i2s controller found on rk3066, rk3168 and rk3288 processors from rockchip. Tested on the RK3288 SDK board. Signed-off-by:
Jianqun Xu <xjq@rock-chips.com> Signed-off-by: NMark Brown <broonie@linaro.org>
-