summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTerje Bergstrom <tbergstrom@nvidia.com>2014-08-15 03:44:51 -0400
committerDan Willemsen <dwillemsen@nvidia.com>2015-03-18 15:10:52 -0400
commit92c9a2d06e6caa3c2521f1851b4933d7e90856f2 (patch)
tree796bd1a714ffe4819c14c14d7236a0b785949150 /drivers
parent62e80a189cfa0b6dbb9e27712a1c782e953c32f4 (diff)
gpu: nvgpu: Increase PBDMA timeout
PBDMA timeout can cause stale data in FIFO. Default value equals 1ms. Increase it to max. Bug 1537636 Change-Id: I1c6c6b10abaece3a64b77b9b3ef77ff726ff67cf Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/457047 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Allen Chang <allchang@nvidia.com> Tested-by: Allen Chang <allchang@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c7
-rw-r--r--drivers/gpu/nvgpu/gk20a/hw_pbdma_gk20a.h16
2 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index 9fedb64b..e2b8a12e 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -423,6 +423,13 @@ int gk20a_init_fifo_reset_enable_hw(struct gk20a *g)
423 fifo_fb_timeout_period_max_f()); 423 fifo_fb_timeout_period_max_f());
424 gk20a_writel(g, fifo_fb_timeout_r(), timeout); 424 gk20a_writel(g, fifo_fb_timeout_r(), timeout);
425 425
426 for (i = 0; i < pbdma_timeout__size_1_v(); i++) {
427 timeout = gk20a_readl(g, pbdma_timeout_r(i));
428 timeout = set_field(timeout, pbdma_timeout_period_m(),
429 pbdma_timeout_period_max_f());
430 gk20a_writel(g, pbdma_timeout_r(i), timeout);
431 }
432
426 if (tegra_platform_is_silicon()) { 433 if (tegra_platform_is_silicon()) {
427 timeout = gk20a_readl(g, fifo_pb_timeout_r()); 434 timeout = gk20a_readl(g, fifo_pb_timeout_r());
428 timeout &= ~fifo_pb_timeout_detection_enabled_f(); 435 timeout &= ~fifo_pb_timeout_detection_enabled_f();
diff --git a/drivers/gpu/nvgpu/gk20a/hw_pbdma_gk20a.h b/drivers/gpu/nvgpu/gk20a/hw_pbdma_gk20a.h
index 0d749c20..e124e17f 100644
--- a/drivers/gpu/nvgpu/gk20a/hw_pbdma_gk20a.h
+++ b/drivers/gpu/nvgpu/gk20a/hw_pbdma_gk20a.h
@@ -106,6 +106,22 @@ static inline u32 pbdma_gp_put_r(u32 i)
106{ 106{
107 return 0x00040000 + i*8192; 107 return 0x00040000 + i*8192;
108} 108}
109static inline u32 pbdma_timeout_r(u32 i)
110{
111 return 0x0004012c + i*8192;
112}
113static inline u32 pbdma_timeout__size_1_v(void)
114{
115 return 0x00000001;
116}
117static inline u32 pbdma_timeout_period_m(void)
118{
119 return 0xffffffff << 0;
120}
121static inline u32 pbdma_timeout_period_max_f(void)
122{
123 return 0xffffffff;
124}
109static inline u32 pbdma_pb_fetch_r(u32 i) 125static inline u32 pbdma_pb_fetch_r(u32 i)
110{ 126{
111 return 0x00040054 + i*8192; 127 return 0x00040054 + i*8192;