- 16 7月, 2018 2 次提交
-
-
由 Agrawal, Akshu 提交于
Having interrupts enabled for ACP<->SYSMEM DMA transfer, we are in for an interrupt storm. For both playback and capture interrupts should be enabled for I2S<->ACP DMA. Signed-off-by: NAkshu Agrawal <akshu.agrawal@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Agrawal, Akshu 提交于
Earlier, ch1 was used to define ACP-SYSMEM transfer and ch2 for ACP-I2S transfer. With recent patches ch1 is used to define channel order number 1 and ch2 as channel order number 2. Thus, Playback: ch1:SYSMEM->ACP ch2:ACP->I2S Capture: ch1:I2S->ACP ch1:ACP->SYSMEM Signed-off-by: NAkshu Agrawal <akshu.agrawal@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 03 7月, 2018 6 次提交
-
-
由 Daniel Kurtz 提交于
Now that the I2S channel names are fixed, and DMA data flow order is consistent (ch1 then ch2), we can simplify channel start order: start the upstream channel and then the downstream channel for both playback and capture cases. Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Daniel Kurtz 提交于
The pointer() callback gets its value by reading the I2S BYTE_COUNT register. This is a 64-bit runnning transaction counter. If a transaction was aborted in the middle of a sample buffer, the counter will stop counting on a number divisible by the buffer size. Since we actually use it as a pointer into an aligned buffer, however, we do want to ensure that it always starts at a number divisible by the buffer size when starting a transaction, hence we reset it whenever starting a transaction. To accomplish this, it wasn't necessary to zero bytescount at the termination of each transaction, so remove this unnecessary code. Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Daniel Kurtz 提交于
On capture, audio data is first copied from I2S to ACP memory, and then from ACP to SYSRAM. The I2S_TO_ACP_DMA interrupt fires on every sample transferred from I2S to ACP memory. That is it fires ~48000 times per second when capturing @ 48 kHz. Since we don't do anything on this interrupt anyway, disable it to save quite a few unnecessary interrupts. The real "work" (calling snd_pcm_period_elapsed()) is done when transfer from ACP to SYSRAM is complete. Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Daniel Kurtz 提交于
On capture, audio data is first copied from I2S to ACP memory, and then to SYSRAM. For each step the channel number increases, so the names in the driver were wrong. Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Daniel Kurtz 提交于
It is always correct to subtract out the starting bytescount value. Even in the case of 2^64 byte rollover (292 Million Years in the future @ 48000 Hz) the math still works out. Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Daniel Kurtz 提交于
Commit 6b116dfb ("ASoC: AMD: make channel 1 dma as circular") made both channels circular, so this comment and logic no longer applies. Always stop ch2 (the channel closest to the output) before ch1. This ensures that the downstream circular DMA channel does not continue to play/capture repeated samples after the upstream circular DMA channel has already stopped. Signed-off-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 22 6月, 2018 1 次提交
-
-
由 Akshu Agrawal 提交于
ST/CZ SoC have 2 channels for capture in the I2SSP path. The DMA though these channels is done using the same dma descriptors. We configure the channel and enable it on the basis of channel selected by machine driver. Machine driver knows which codec sits on which channel and thus sends the information to dma driver. Signed-off-by: NAkshu Agrawal <akshu.agrawal@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 18 6月, 2018 1 次提交
-
-
由 Agrawal, Akshu 提交于
Fix crash in those platforms whose machine driver does not expose platform_info. For those platforms we rely on default value and select I2SSP channel. Signed-off-by: NAkshu Agrawal <akshu.agrawal@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 29 5月, 2018 1 次提交
-
-
由 Agrawal, Akshu 提交于
channel 1: SYSMEM<->ACP channel 2: ACP<->I2S Instead of waiting on period interrupt of ch 2 and then starting dma on ch1, we make ch1 dma as circular. This removes dependency of period granularity on hw pointer. Signed-off-by: NAkshu Agrawal <akshu.agrawal@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Tested-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 21 5月, 2018 4 次提交
-
-
由 Mukunda, Vijendar 提交于
With in ACP, There are three I2S controllers can be configured/enabled ( I2S SP, I2S MICSP, I2S BT). Default enabled I2S controller instance is I2S SP. This patch provides required changes to support I2S BT controller Instance. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Mukunda, Vijendar 提交于
rtd structure freed early may result in kernel panic in dma close call back. moved releasing memory for rtd structure to the end of dma close callback. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Mukunda, Vijendar 提交于
Added sram bank variable to audio_substream_data structure. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Mukunda, Vijendar 提交于
Added pte offset variable in audio_substream_data structure. Added Stoney related PTE offset macros in acp header file. Modified hw_params callback to assign the pte offset value based on asic_type. PTE Offset macros used to calculate no of PTE entries need to be programmed when memory allocated for audio buffer. Depending upon allocated audio buffer size, PTE offset values will change. Compared to CZ, Stoney has SRAM memory limitation i.e 48k It is required to define separate PTE Offset macros for Stoney. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 11 5月, 2018 3 次提交
-
-
由 Vijendar Mukunda 提交于
Removed separate byte count variables for playback and capture. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Vijendar Mukunda 提交于
Added byte count register offset variables to audio_substream_data structure. Modified dma pointer callback. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Vijendar Mukunda 提交于
Added dma configuration parameters to rtd structure. Moved dma configuration parameters initialization to hw_params callback. Removed hard coding in prepare and trigger callbacks. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NDaniel Kurtz <djkurtz@chromium.org> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 02 5月, 2018 1 次提交
-
-
由 Colin Ian King 提交于
Trivial fix to spelling mistake in dev_err error message Signed-off-by: NColin Ian King <colin.king@canonical.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 26 4月, 2018 1 次提交
-
-
由 Mukunda, Vijendar 提交于
In order to make audio_substream_data structure variable consistent throughout the code, changed the name from audio_config to rtd wherever applicable. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 18 4月, 2018 1 次提交
-
-
由 Mukunda, Vijendar 提交于
fixed checkpatch pl warnings. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 09 3月, 2018 2 次提交
-
-
由 Vijendar Mukunda 提交于
As per design, non-circular dma also need to be stopped explicitly for both playback and capture scenarios. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Vijendar Mukunda 提交于
Moved 16bit resolution condition check for stoney platform to acp_hw_params.Depending upon substream required register value need to be programmed rather than enabling 16bit resolution support all time in acp init. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 19 2月, 2018 2 次提交
-
-
由 Mukunda, Vijendar 提交于
Removed hardcoding in dma descriptor programming api's. These changes are required to extend the logic to support dma descriptor programming for multiple i2s controller instances. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Mukunda, Vijendar 提交于
With in ACP, There are three I2S controllers can be configured. (I2S SP ,I2S MICSP and I2S BT).These controllers can support both playback/capture scenarios. Default enabled i2s controller instance is i2s sp instance. Renamed stream names and bytescount params as i2ssp. These changes required to distinguish with other I2S controller instance pcm substreams and bytescount params. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 12 2月, 2018 1 次提交
-
-
由 Kuninori Morimoto 提交于
Now platform can be replaced to component, let's do it. Signed-off-by: NKuninori Morimoto <kuninori.morimoto.gx@renesas.com> Tested-by: NMukunda,Vijendar <vijendar.mukunda@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 05 12月, 2017 1 次提交
-
-
由 Mukunda, Vijendar 提交于
added additional error checks in acp dma driver v2: printed error codes for acp init & acp deinit failure cases. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 28 11月, 2017 1 次提交
-
-
由 Guenter Roeck 提交于
The acp_audio_dma does not perform sufficient error checking in its probe function. This can result in crashes if a critical error path is encountered. Fixes: 7c31335a ("ASoC: AMD: add AMD ASoC ACP 2.x DMA driver") Cc: Alex Deucher <alexander.deucher@amd.com> Cc: Dominik Behr <dbehr@chromium.org> Cc: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 10 11月, 2017 1 次提交
-
-
由 Vijendar Mukunda 提交于
Before rendering starts, DMA driver copies full buffer valid data to ACP SRAM for the first time, after that ACP SRAM to I2S FIFO DMA will be initiated. After rendering first half of ACP SRAM, IOC will be raised then Audio data will be copied from first half of System Memory to first half of ACP SRAM. Similarly after rendering second half of ACP SRAM, IOC will be raised then Audio Data will be copied from second half of the System Memory to second half of the ACP SRAM in ping-pong way till rendering stops. Old design introducing latency issues resulting stutter sound observed during playback. Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NAkshu Agrawal <Akshu.Agrawal@amd.com> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 09 11月, 2017 3 次提交
-
-
由 Guenter Roeck 提交于
ERROR: "__aeabi_uldivmod" [sound/soc/amd/snd-soc-acp-pcm.ko] undefined! 64-bit divides require special operations to avoid build errors on 32-bit systems. [Reword the commit message to make it clearer - Alex] fixes: 61add814 (ASoC: amd: Report accurate hw_ptr during dma) Signed-off-by: NGuenter Roeck <groeck@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/678919Reviewed-by: NJason Clinton <jclinton@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/681618Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Akshu Agrawal 提交于
This fixes the issue of driver not getting auto loaded with MODULE_ALIAS. find /sys/devices -name modalias -print0 | xargs -0 grep 'audio' /sys/devices/pci0000:00/0000:00:01.0/acp_audio_dma.0.auto/modalias:platform:acp_audio_dma TEST=boot and check for device in lsmod [Removed yet more ChromeOS crap from the changelog -- broonie] Signed-off-by: NAkshu Agrawal <akshu.agrawal@amd.com> Tested-by: NJason Clinton <jclinton@chromium.org> Reviewed-by: NJason Clinton <jclinton@chromium.org> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Vijendar Mukunda 提交于
Using hw register to read transmitted byte count and report accordingly the hw pointer. TEST= modprobe snd-soc-acp-pcm.ko modprobe snd-soc-acp-rt5645.ko aplay <file> Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NAkshu Agrawal <Akshu.Agrawal@amd.com> Tested-by: NAkshu Agrawal <akshu.agrawal@amd.com> Reviewed-by: NJason Clinton <jclinton@chromium.org> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 07 11月, 2017 1 次提交
-
-
由 Akshu Agrawal 提交于
This fixes the issue of driver not getting auto loaded with MODULE_ALIAS. find /sys/devices -name modalias -print0 | xargs -0 grep 'audio' /sys/devices/pci0000:00/0000:00:01.0/acp_audio_dma.0.auto/modalias:platform:acp_audio_dma BUG=b:62103837 TEST=boot and check for device in lsmod Signed-off-by: NAkshu Agrawal <akshu.agrawal@amd.com> Reviewed-on: https://chromium-review.googlesource.com/678278Tested-by: NJason Clinton <jclinton@chromium.org> Reviewed-by: NJason Clinton <jclinton@chromium.org> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 20 10月, 2017 3 次提交
-
-
由 Vijendar Mukunda 提交于
Stoney uses 16kb SRAM memory for playback and 16Kb for capture.Modified Max buffer size to have the correct mapping between System Memory and SRAM. Added snd_pcm_hardware structures for playback and capture for Stoney. Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Vijendar Mukunda 提交于
Added DMA driver changes for Stoney platform. Below are the key differences between Stoney and CZ In Stoney, Memory Gating is disabled.SRAM Banks won't be turned off.No Of SRAM Banks reduced to 6. DAGB Garlic Interface used and 16 bit resolution is supported. SRAM bank 1 & SRAM bank 2 will be used for playback scenario. SRAM Bank 3 & SRAM Bank 4 will be used for Capture scenario. Acked-by: NMark Brown <broonie@kernel.org> Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
由 Vijendar Mukunda 提交于
For Stoney platform, Memory gating is disabled.i.e SRAM Banks won't be turned off. By Default, SRAM Bank state set to ON. Added condition checks to skip SRAM Bank state set logic for Stoney platform. Acked-by: NMark Brown <broonie@kernel.org> Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-
- 18 10月, 2017 1 次提交
-
-
由 Vijendar Mukunda 提交于
asic_type information is passed to ACP DMA Driver as platform data. Reviewed-by: NAlex Deucher <alexander.deucher@amd.com> Signed-off-by: NVijendar Mukunda <Vijendar.Mukunda@amd.com> Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
-
- 10 3月, 2017 1 次提交
-
-
由 Masahiro Yamada 提交于
Fix typos and add the following to the scripts/spelling.txt: disble||disable disbled||disabled I kept the TSL2563_INT_DISBLED in /drivers/iio/light/tsl2563.c untouched. The macro is not referenced at all, but this commit is touching only comment blocks just in case. Link: http://lkml.kernel.org/r/1481573103-11329-20-git-send-email-yamada.masahiro@socionext.comSigned-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 28 2月, 2017 1 次提交
-
-
由 Masahiro Yamada 提交于
Fix typos and add the following to the scripts/spelling.txt: deintializing||deinitializing deintialize||deinitialize deintialized||deinitialized Link: http://lkml.kernel.org/r/1481573103-11329-28-git-send-email-yamada.masahiro@socionext.comSigned-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 15 12月, 2016 1 次提交
-
-
由 Vinod Koul 提交于
In acp_dma_hw_params(), 'dma_buffer' is initialized, but not used. So remove it. sound/soc/amd/acp-pcm-dma.c: In function ‘acp_dma_hw_params’: sound/soc/amd/acp-pcm-dma.c:673:25: warning: variable ‘dma_buffer’ set but not used [-Wunused-but-set-variable] struct snd_dma_buffer *dma_buffer; Cc: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com> Signed-off-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NMark Brown <broonie@kernel.org>
-