summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
diff options
context:
space:
mode:
authorRichard Zhao <rizhao@nvidia.com>2015-12-23 18:15:45 -0500
committerTerje Bergstrom <tbergstrom@nvidia.com>2016-01-19 11:34:55 -0500
commit7095a72e563b5d7969c5f09053e469906362428f (patch)
tree8723d3bddfd650c5f89aa51393cf8ee6f8be4bc2 /drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
parentb9cbb12132b52c268b3f727f50416efd75fead0f (diff)
gpu: nvgpu: fix tsg bugs
- correct runlist entry type for tsg - consider tsg when preempt channel Bug 1617046 Change-Id: Ie067df17fb53ae91c49403637a5f35fc3710e0b3 Signed-off-by: Richard Zhao <rizhao@nvidia.com> Reviewed-on: http://git-master/r/926571 GVS: Gerrit_Virtual_Submit Reviewed-by: Aingara Paramakuru <aparamakuru@nvidia.com> Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/fifo_gk20a.c')
-rw-r--r--drivers/gpu/nvgpu/gk20a/fifo_gk20a.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
index ce91fd49..6b5807aa 100644
--- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
+++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c
@@ -2138,26 +2138,18 @@ static int gk20a_fifo_runlist_wait_pending(struct gk20a *g, u32 runlist_id)
2138 2138
2139static inline u32 gk20a_get_tsg_runlist_entry_0(struct tsg_gk20a *tsg) 2139static inline u32 gk20a_get_tsg_runlist_entry_0(struct tsg_gk20a *tsg)
2140{ 2140{
2141 u32 runlist_entry_0 = 0; 2141 u32 runlist_entry_0 = ram_rl_entry_id_f(tsg->tsgid) |
2142 ram_rl_entry_type_tsg_f() |
2143 ram_rl_entry_tsg_length_f(tsg->num_active_channels);
2142 2144
2143 if (tsg->timeslice_timeout) 2145 if (tsg->timeslice_timeout)
2144 runlist_entry_0 = ram_rl_entry_id_f(tsg->tsgid) | 2146 runlist_entry_0 |=
2145 ram_rl_entry_type_f(ram_rl_entry_type_tsg_f()) | 2147 ram_rl_entry_timeslice_scale_f(tsg->timeslice_scale) |
2146 ram_rl_entry_timeslice_scale_f( 2148 ram_rl_entry_timeslice_timeout_f(tsg->timeslice_timeout);
2147 tsg->timeslice_scale) |
2148 ram_rl_entry_timeslice_timeout_f(
2149 tsg->timeslice_timeout) |
2150 ram_rl_entry_tsg_length_f(
2151 tsg->num_active_channels);
2152 else 2149 else
2153 runlist_entry_0 = ram_rl_entry_id_f(tsg->tsgid) | 2150 runlist_entry_0 |=
2154 ram_rl_entry_type_f(ram_rl_entry_type_tsg_f()) | 2151 ram_rl_entry_timeslice_scale_3_f() |
2155 ram_rl_entry_timeslice_scale_f( 2152 ram_rl_entry_timeslice_timeout_128_f();
2156 ram_rl_entry_timeslice_scale_3_f()) |
2157 ram_rl_entry_timeslice_timeout_f(
2158 ram_rl_entry_timeslice_timeout_128_f()) |
2159 ram_rl_entry_tsg_length_f(
2160 tsg->num_active_channels);
2161 2153
2162 return runlist_entry_0; 2154 return runlist_entry_0;
2163} 2155}