summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohan Kumar <mkumard@nvidia.com>2016-08-24 06:28:25 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-09-16 00:58:23 -0400
commit66dfaf34e5085d01c40c349ff51b97cf77cd3940 (patch)
treed4a77f13ef38ac344a03c97534c4a9aad59d2302
parent063a18278771a198dbcc5212a399bfd9d2b99e60 (diff)
adma: add Shared SMP defines for adma war
Add HSP Shared Semaphores defines to synchronize the ADMA_GLOBAL_CG_0 register between ADSP and CPU access. Bug 200223484 Change-Id: Icb7953f5795b758f3f953b5346d06693b046b369 Signed-off-by: Mohan Kumar <mkumard@nvidia.com> Reviewed-on: http://git-master/r/1207005 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Nitin Kumbhar <nkumbhar@nvidia.com> Reviewed-by: Sarada Dash <sdash@nvidia.com> Reviewed-by: Viraj Karandikar <vkarandikar@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
-rw-r--r--drivers/dma/tegra186-adma.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/dma/tegra186-adma.h b/drivers/dma/tegra186-adma.h
index 480e75ed9..bd4dc19fa 100644
--- a/drivers/dma/tegra186-adma.h
+++ b/drivers/dma/tegra186-adma.h
@@ -238,6 +238,9 @@ enum {
238 ADDR3, 238 ADDR3,
239 ADDR4, 239 ADDR4,
240 ADAST_REG, 240 ADAST_REG,
241#if defined(CONFIG_TEGRA_ADMA_WAR)
242 SHRD_SMP_REG,
243#endif
241 ADMA_MAX_ADDR 244 ADMA_MAX_ADDR
242}; 245};
243 246
@@ -259,6 +262,22 @@ enum {
259#define ADMA_CH_STATUS_TRANSFER_ENABLED BIT(0) 262#define ADMA_CH_STATUS_TRANSFER_ENABLED BIT(0)
260 263
261#define MAX_ADMAIF_WITH_DMA_FIFO_SIZE_3 4 264#define MAX_ADMAIF_WITH_DMA_FIFO_SIZE_3 4
265
266#define ADMA_GLOBAL_CG_DISABLE 0x00
267#define ADMA_GLOBAL_CG_ENABLE 0x07
268/* HSP SS registers for ADMA WAR */
269#define HSP_SHRD_SEM_0_SHRD_SMP_STA 0x00
270#define HSP_SHRD_SEM_0_SHRD_SMP_STA_SET 0x04
271#define HSP_SHRD_SEM_0_SHRD_SMP_STA_CLR 0x08
272#define SHRD_SMP_STA HSP_SHRD_SEM_0_SHRD_SMP_STA
273#define SHRD_SMP_STA_SET HSP_SHRD_SEM_0_SHRD_SMP_STA_SET
274#define SHRD_SMP_STA_CLR HSP_SHRD_SEM_0_SHRD_SMP_STA_CLR
275/* Make sure ADSP using 2nd SMP bit */
276#define ADMA_SHRD_SMP_CPU 0x1
277#define ADMA_SHRD_SMP_ADSP 0x2
278#define ADMA_SHRD_SMP_BITS (ADMA_SHRD_SMP_CPU | ADMA_SHRD_SMP_ADSP)
279#define ADMA_SHRD_SEM_WAIT_COUNT 50
280
262enum tegra_adma_fetching_policy { 281enum tegra_adma_fetching_policy {
263 BURST_BASED = 0, 282 BURST_BASED = 0,
264 THRESHOLD_BASED = 1, 283 THRESHOLD_BASED = 1,