mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-25 11:04:51 +03:00
gpu: nvgpu: remove direct tsg retrieval from fifo
Added - nvgpu_tsg_check_and_get_from_id - nvgpu_tsg_get_from_id And removed direct accesses to f->tsg array. Jira NVGPU-3156 Change-Id: I8610e19c1a6e06521c16a1ec0c3a7a011978d0b7 Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2101251 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
124cdb4509
commit
965062c2bc
@@ -134,7 +134,7 @@ static u32 nvgpu_runlist_append_prio(struct fifo_gk20a *f,
|
||||
nvgpu_log_fn(f->g, " ");
|
||||
|
||||
for_each_set_bit(tsgid, runlist->active_tsgs, f->num_channels) {
|
||||
struct tsg_gk20a *tsg = &f->tsg[tsgid];
|
||||
struct tsg_gk20a *tsg = nvgpu_tsg_get_from_id(f->g, tsgid);
|
||||
u32 entries;
|
||||
|
||||
if (tsg->interleave_level == interleave_level) {
|
||||
@@ -177,7 +177,7 @@ static u32 nvgpu_runlist_append_med(struct fifo_gk20a *f,
|
||||
nvgpu_log_fn(f->g, " ");
|
||||
|
||||
for_each_set_bit(tsgid, runlist->active_tsgs, f->num_channels) {
|
||||
struct tsg_gk20a *tsg = &f->tsg[tsgid];
|
||||
struct tsg_gk20a *tsg = nvgpu_tsg_get_from_id(f->g, tsgid);
|
||||
u32 entries;
|
||||
|
||||
if (tsg->interleave_level !=
|
||||
@@ -216,7 +216,7 @@ static u32 nvgpu_runlist_append_low(struct fifo_gk20a *f,
|
||||
nvgpu_log_fn(f->g, " ");
|
||||
|
||||
for_each_set_bit(tsgid, runlist->active_tsgs, f->num_channels) {
|
||||
struct tsg_gk20a *tsg = &f->tsg[tsgid];
|
||||
struct tsg_gk20a *tsg = nvgpu_tsg_get_from_id(f->g, tsgid);
|
||||
u32 entries;
|
||||
|
||||
if (tsg->interleave_level !=
|
||||
|
||||
@@ -48,6 +48,24 @@ void nvgpu_tsg_disable(struct tsg_gk20a *tsg)
|
||||
nvgpu_rwsem_up_read(&tsg->ch_list_lock);
|
||||
}
|
||||
|
||||
struct tsg_gk20a *nvgpu_tsg_check_and_get_from_id(struct gk20a *g, u32 tsgid)
|
||||
{
|
||||
if (tsgid == NVGPU_INVALID_TSG_ID) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return nvgpu_tsg_get_from_id(g, tsgid);
|
||||
}
|
||||
|
||||
|
||||
struct tsg_gk20a *nvgpu_tsg_get_from_id(struct gk20a *g, u32 tsgid)
|
||||
{
|
||||
struct fifo_gk20a *f = &g->fifo;
|
||||
|
||||
return &f->tsg[tsgid];
|
||||
}
|
||||
|
||||
|
||||
static bool gk20a_is_channel_active(struct gk20a *g, struct channel_gk20a *ch)
|
||||
{
|
||||
struct fifo_gk20a *f = &g->fifo;
|
||||
|
||||
Reference in New Issue
Block a user