diff options
author | Terje Bergstrom <tbergstrom@nvidia.com> | 2014-08-15 03:44:51 -0400 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:10:52 -0400 |
commit | 92c9a2d06e6caa3c2521f1851b4933d7e90856f2 (patch) | |
tree | 796bd1a714ffe4819c14c14d7236a0b785949150 /drivers/gpu/nvgpu | |
parent | 62e80a189cfa0b6dbb9e27712a1c782e953c32f4 (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/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 7 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/hw_pbdma_gk20a.h | 16 |
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 | } |
109 | static inline u32 pbdma_timeout_r(u32 i) | ||
110 | { | ||
111 | return 0x0004012c + i*8192; | ||
112 | } | ||
113 | static inline u32 pbdma_timeout__size_1_v(void) | ||
114 | { | ||
115 | return 0x00000001; | ||
116 | } | ||
117 | static inline u32 pbdma_timeout_period_m(void) | ||
118 | { | ||
119 | return 0xffffffff << 0; | ||
120 | } | ||
121 | static inline u32 pbdma_timeout_period_max_f(void) | ||
122 | { | ||
123 | return 0xffffffff; | ||
124 | } | ||
109 | static inline u32 pbdma_pb_fetch_r(u32 i) | 125 | static inline u32 pbdma_pb_fetch_r(u32 i) |
110 | { | 126 | { |
111 | return 0x00040054 + i*8192; | 127 | return 0x00040054 + i*8192; |