diff options
| author | Mohan Kumar <mkumard@nvidia.com> | 2016-08-24 06:28:25 -0400 |
|---|---|---|
| committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-09-16 00:58:23 -0400 |
| commit | 66dfaf34e5085d01c40c349ff51b97cf77cd3940 (patch) | |
| tree | d4a77f13ef38ac344a03c97534c4a9aad59d2302 | |
| parent | 063a18278771a198dbcc5212a399bfd9d2b99e60 (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.h | 19 |
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 | |||
| 262 | enum tegra_adma_fetching_policy { | 281 | enum tegra_adma_fetching_policy { |
| 263 | BURST_BASED = 0, | 282 | BURST_BASED = 0, |
| 264 | THRESHOLD_BASED = 1, | 283 | THRESHOLD_BASED = 1, |
