diff options
author | Seema Khowala <seemaj@nvidia.com> | 2016-07-08 19:12:44 -0400 |
---|---|---|
committer | Seshendra Gadagottu <sgadagottu@nvidia.com> | 2016-07-27 17:32:54 -0400 |
commit | d64e2015147c4dc48c0d3b8d6ee612dd8addf04c (patch) | |
tree | 68753a49ca7da2264ff007c675b1dfa32f6da3bd /drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |
parent | 9ca4c6b596fe50c652907193bb167ee29c208b4b (diff) |
gpu: nvgpu: add check for is_fmodel
is_fmodel flag will be set in gk20a_probe().
Updated code for is_fmodel check, instead of
check for supported simulated platforms.
Bug 1735760
Change-Id: I7cbac2196130fe5ce4c1a910504879e6948c13da
Signed-off-by: Seema Khowala <seemaj@nvidia.com>
Reviewed-on: http://git-master/r/1177869
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Tested-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Adeel Raza <araza@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/mm_gk20a.c')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 6de7425b..16ff8ee8 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c | |||
@@ -1023,10 +1023,11 @@ static int alloc_gmmu_pages(struct vm_gk20a *vm, u32 order, | |||
1023 | u32 num_pages = 1 << order; | 1023 | u32 num_pages = 1 << order; |
1024 | u32 len = num_pages * PAGE_SIZE; | 1024 | u32 len = num_pages * PAGE_SIZE; |
1025 | int err; | 1025 | int err; |
1026 | struct gk20a_platform *platform = dev_get_drvdata(g->dev); | ||
1026 | 1027 | ||
1027 | gk20a_dbg_fn(""); | 1028 | gk20a_dbg_fn(""); |
1028 | 1029 | ||
1029 | if (tegra_platform_is_linsim()) | 1030 | if (platform->is_fmodel) |
1030 | return alloc_gmmu_phys_pages(vm, order, entry); | 1031 | return alloc_gmmu_phys_pages(vm, order, entry); |
1031 | 1032 | ||
1032 | /* | 1033 | /* |
@@ -1052,13 +1053,14 @@ void free_gmmu_pages(struct vm_gk20a *vm, | |||
1052 | struct gk20a_mm_entry *entry) | 1053 | struct gk20a_mm_entry *entry) |
1053 | { | 1054 | { |
1054 | struct gk20a *g = gk20a_from_vm(vm); | 1055 | struct gk20a *g = gk20a_from_vm(vm); |
1056 | struct gk20a_platform *platform = dev_get_drvdata(g->dev); | ||
1055 | 1057 | ||
1056 | gk20a_dbg_fn(""); | 1058 | gk20a_dbg_fn(""); |
1057 | 1059 | ||
1058 | if (!entry->mem.size) | 1060 | if (!entry->mem.size) |
1059 | return; | 1061 | return; |
1060 | 1062 | ||
1061 | if (tegra_platform_is_linsim()) { | 1063 | if (platform->is_fmodel) { |
1062 | free_gmmu_phys_pages(vm, entry); | 1064 | free_gmmu_phys_pages(vm, entry); |
1063 | return; | 1065 | return; |
1064 | } | 1066 | } |
@@ -1076,9 +1078,11 @@ void free_gmmu_pages(struct vm_gk20a *vm, | |||
1076 | 1078 | ||
1077 | int map_gmmu_pages(struct gk20a *g, struct gk20a_mm_entry *entry) | 1079 | int map_gmmu_pages(struct gk20a *g, struct gk20a_mm_entry *entry) |
1078 | { | 1080 | { |
1081 | struct gk20a_platform *platform = dev_get_drvdata(g->dev); | ||
1082 | |||
1079 | gk20a_dbg_fn(""); | 1083 | gk20a_dbg_fn(""); |
1080 | 1084 | ||
1081 | if (tegra_platform_is_linsim()) | 1085 | if (platform->is_fmodel) |
1082 | return map_gmmu_phys_pages(entry); | 1086 | return map_gmmu_phys_pages(entry); |
1083 | 1087 | ||
1084 | if (IS_ENABLED(CONFIG_ARM64)) { | 1088 | if (IS_ENABLED(CONFIG_ARM64)) { |
@@ -1100,9 +1104,11 @@ int map_gmmu_pages(struct gk20a *g, struct gk20a_mm_entry *entry) | |||
1100 | 1104 | ||
1101 | void unmap_gmmu_pages(struct gk20a *g, struct gk20a_mm_entry *entry) | 1105 | void unmap_gmmu_pages(struct gk20a *g, struct gk20a_mm_entry *entry) |
1102 | { | 1106 | { |
1107 | struct gk20a_platform *platform = dev_get_drvdata(g->dev); | ||
1108 | |||
1103 | gk20a_dbg_fn(""); | 1109 | gk20a_dbg_fn(""); |
1104 | 1110 | ||
1105 | if (tegra_platform_is_linsim()) { | 1111 | if (platform->is_fmodel) { |
1106 | unmap_gmmu_phys_pages(entry); | 1112 | unmap_gmmu_phys_pages(entry); |
1107 | return; | 1113 | return; |
1108 | } | 1114 | } |