From b7fca01b0e01544c3a66d2e05a8b99bcb621a004 Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Fri, 14 Apr 2017 13:19:04 -0700 Subject: gpu: nvgpu: Scrub gk20a_platform dependencies Remove gk20a_platform dependencies from gk20a.h. This makes gk20a_platform a Linux platform specific data structure. Add #include for platform_gk20a.h in the source files that still depend on Linux. JIRA NVGPU-16 Change-Id: Ib098accd34a1f5066eb8680c387f9b178169f3f0 Signed-off-by: Terje Bergstrom Reviewed-on: http://git-master/r/1463547 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/cde_gk20a.c | 1 + drivers/gpu/nvgpu/gk20a/ce2_gk20a.c | 4 ++++ drivers/gpu/nvgpu/gk20a/channel_gk20a.c | 4 ---- drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c | 1 + drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c | 1 + drivers/gpu/nvgpu/gk20a/debug_gk20a.c | 1 + drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c | 1 + drivers/gpu/nvgpu/gk20a/fifo_gk20a.c | 4 ++++ drivers/gpu/nvgpu/gk20a/gk20a.c | 1 + drivers/gpu/nvgpu/gk20a/gk20a.h | 34 ----------------------------- drivers/gpu/nvgpu/gk20a/gk20a_scale.c | 1 + drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c | 1 + drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 5 ++++- drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 7 +++--- drivers/gpu/nvgpu/gk20a/platform_gk20a.h | 34 +++++++++++++++++++++++++++++ drivers/gpu/nvgpu/gk20a/pmu_gk20a.c | 12 +++++----- drivers/gpu/nvgpu/gk20a/sched_gk20a.c | 1 + drivers/gpu/nvgpu/gk20a/sim_gk20a.c | 1 + 18 files changed, 66 insertions(+), 48 deletions(-) (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c index 74de7e8e..d5d75be5 100644 --- a/drivers/gpu/nvgpu/gk20a/cde_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/cde_gk20a.c @@ -20,6 +20,7 @@ #include #ifdef CONFIG_DEBUG_FS #include +#include "platform_gk20a.h" #endif #include diff --git a/drivers/gpu/nvgpu/gk20a/ce2_gk20a.c b/drivers/gpu/nvgpu/gk20a/ce2_gk20a.c index 8e3f1754..25d6462d 100644 --- a/drivers/gpu/nvgpu/gk20a/ce2_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ce2_gk20a.c @@ -33,6 +33,10 @@ #include #include +#ifdef CONFIG_DEBUG_FS +#include "platform_gk20a.h" +#endif + static u32 ce2_nonblockpipe_isr(struct gk20a *g, u32 fifo_intr) { gk20a_dbg(gpu_dbg_intr, "ce2 non-blocking pipe interrupt\n"); diff --git a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c index 536ca9f3..31358468 100644 --- a/drivers/gpu/nvgpu/gk20a/channel_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/channel_gk20a.c @@ -2378,7 +2378,6 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, struct fifo_profile_gk20a *profile) { struct gk20a *g = c->g; - struct device *d = dev_from_gk20a(g); struct priv_cmd_entry *wait_cmd = NULL; struct priv_cmd_entry *incr_cmd = NULL; struct gk20a_fence *pre_fence = NULL; @@ -2394,13 +2393,10 @@ int gk20a_submit_channel_gpfifo(struct channel_gk20a *c, bool need_deferred_cleanup = false; struct nvgpu_gpfifo __user *user_gpfifo = args ? (struct nvgpu_gpfifo __user *)(uintptr_t)args->gpfifo : NULL; - struct gk20a_platform *platform; if (g->driver_is_dying) return -ENODEV; - platform = gk20a_get_platform(d); - if (c->has_timedout) return -ETIMEDOUT; diff --git a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c b/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c index f3b54355..50bcbe51 100644 --- a/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/ctxsw_trace_gk20a.c @@ -24,6 +24,7 @@ #include "ctxsw_trace_gk20a.h" #include "gk20a.h" +#include "platform_gk20a.h" #include "gr_gk20a.h" #include diff --git a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c index e4bdd8e3..a08eb047 100644 --- a/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/dbg_gpu_gk20a.c @@ -28,6 +28,7 @@ #include #include "gk20a.h" +#include "gk20a/platform_gk20a.h" #include "gr_gk20a.h" #include "dbg_gpu_gk20a.h" #include "regops_gk20a.h" diff --git a/drivers/gpu/nvgpu/gk20a/debug_gk20a.c b/drivers/gpu/nvgpu/gk20a/debug_gk20a.c index f863b056..ac435046 100644 --- a/drivers/gpu/nvgpu/gk20a/debug_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/debug_gk20a.c @@ -25,6 +25,7 @@ #include #include "gk20a.h" +#include "gk20a/platform_gk20a.h" #include "debug_gk20a.h" #include diff --git a/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c b/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c index c292540f..84083f4b 100644 --- a/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fecs_trace_gk20a.c @@ -27,6 +27,7 @@ #include "fecs_trace_gk20a.h" #include "gk20a.h" #include "gr_gk20a.h" +#include "platform_gk20a.h" #include diff --git a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c index d6043df2..8085318d 100644 --- a/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fifo_gk20a.c @@ -45,6 +45,10 @@ #include #include +#ifdef CONFIG_DEBUG_FS +#include "platform_gk20a.h" +#endif + #define FECS_METHOD_WFI_RESTORE 0x80000 static int gk20a_fifo_update_runlist_locked(struct gk20a *g, u32 runlist_id, diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.c b/drivers/gpu/nvgpu/gk20a/gk20a.c index ea03ba98..3d730022 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a.c @@ -27,6 +27,7 @@ #include #include "gk20a.h" +#include "platform_gk20a.h" #include "channel_sync_gk20a.h" #include "ctxsw_trace_gk20a.h" diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index b5d0572e..af40c969 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -58,7 +58,6 @@ struct dbg_profiler_object_data; #include "pmu_gk20a.h" #include "priv_ring_gk20a.h" #include "therm_gk20a.h" -#include "platform_gk20a.h" #include "gm20b/acr_gm20b.h" #include "cde_gk20a.h" #include "debug_gk20a.h" @@ -1232,11 +1231,6 @@ static inline unsigned long gk20a_get_gr_idle_timeout(struct gk20a *g) g->gr_idle_timeout_default : MAX_SCHEDULE_TIMEOUT; } -static inline struct gk20a *get_gk20a(struct device *dev) -{ - return gk20a_get_platform(dev)->g; -} - enum BAR0_DEBUG_OPERATION { BARO_ZERO_NOP = 0, OP_END = 'DONE', @@ -1352,17 +1346,6 @@ static inline u32 gk20a_bar1_readl(struct gk20a *g, u32 b) } /* convenience */ -static inline struct device *dev_from_gk20a(struct gk20a *g) -{ - return g->dev; -} -static inline struct gk20a *gk20a_from_dev(struct device *dev) -{ - if (!dev) - return NULL; - - return ((struct gk20a_platform *)dev_get_drvdata(dev))->g; -} static inline struct gk20a *gk20a_from_as(struct gk20a_as *as) { return container_of(as, struct gk20a, as); @@ -1418,23 +1401,6 @@ enum { KEPLER_CHANNEL_GPFIFO_C = 0xA26F, }; -static inline bool gk20a_gpu_is_virtual(struct device *dev) -{ - struct gk20a_platform *platform = dev_get_drvdata(dev); - - return platform->virtual_dev; -} - -static inline int support_gk20a_pmu(struct device *dev) -{ - if (IS_ENABLED(CONFIG_GK20A_PMU)) { - /* gPMU is not supported for vgpu */ - return !gk20a_gpu_is_virtual(dev); - } - - return 0; -} - void gk20a_create_sysfs(struct device *dev); void gk20a_remove_sysfs(struct device *dev); diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_scale.c b/drivers/gpu/nvgpu/gk20a/gk20a_scale.c index 8c7a9d80..608b2398 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_scale.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_scale.c @@ -26,6 +26,7 @@ #include #include "gk20a.h" +#include "platform_gk20a.h" #include "pmu_gk20a.h" #include "clk_gk20a.h" #include "gk20a_scale.h" diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c index 783ff6fb..ff9e0fc1 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c +++ b/drivers/gpu/nvgpu/gk20a/gk20a_sysfs.c @@ -31,6 +31,7 @@ #include #include "gk20a.h" +#include "gk20a/platform_gk20a.h" #include "gr_gk20a.h" #include "fifo_gk20a.h" #include "pmu_gk20a.h" diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index 8217a8bf..7bbac8cc 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -37,9 +37,12 @@ #include "regops_gk20a.h" #include "dbg_gpu_gk20a.h" #include "debug_gk20a.h" -#include "platform_gk20a.h" #include "ctxsw_trace_gk20a.h" +#ifdef CONFIG_DEBUG_FS +#include "platform_gk20a.h" +#endif + #include #include #include diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index 4d904761..201c2090 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c @@ -41,6 +41,7 @@ #include #include "gk20a.h" +#include "platform_gk20a.h" #include "mm_gk20a.h" #include "fence_gk20a.h" #include "kind_gk20a.h" @@ -1262,16 +1263,16 @@ u64 gk20a_vm_alloc_va(struct vm_gk20a *vm, struct nvgpu_allocator *vma = vm->vma[gmmu_pgsz_idx]; u64 offset; u64 gmmu_page_size = vm->gmmu_page_sizes[gmmu_pgsz_idx]; + struct gk20a *g = vm->mm->g; if (gmmu_pgsz_idx >= gmmu_nr_page_sizes) { - dev_warn(dev_from_vm(vm), + nvgpu_warn(g, "invalid page size requested in gk20a vm alloc"); return 0; } if ((gmmu_pgsz_idx == gmmu_page_size_big) && !vm->big_pages) { - dev_warn(dev_from_vm(vm), - "unsupportd page size requested"); + nvgpu_warn(g, "unsupportd page size requested"); return 0; } diff --git a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h index 5dc55b18..4208816f 100644 --- a/drivers/gpu/nvgpu/gk20a/platform_gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/platform_gk20a.h @@ -21,6 +21,8 @@ #include +#include "gk20a.h" + #define GK20A_CLKS_MAX 4 struct gk20a; @@ -252,4 +254,36 @@ int gk20a_tegra_busy(struct device *dev); void gk20a_tegra_idle(struct device *dev); void gk20a_tegra_debug_dump(struct device *pdev); +static inline struct gk20a *get_gk20a(struct device *dev) +{ + return gk20a_get_platform(dev)->g; +} +static inline struct device *dev_from_gk20a(struct gk20a *g) +{ + return g->dev; +} +static inline struct gk20a *gk20a_from_dev(struct device *dev) +{ + if (!dev) + return NULL; + + return ((struct gk20a_platform *)dev_get_drvdata(dev))->g; +} +static inline bool gk20a_gpu_is_virtual(struct device *dev) +{ + struct gk20a_platform *platform = dev_get_drvdata(dev); + + return platform->virtual_dev; +} + +static inline int support_gk20a_pmu(struct device *dev) +{ + if (IS_ENABLED(CONFIG_GK20A_PMU)) { + /* gPMU is not supported for vgpu */ + return !gk20a_gpu_is_virtual(dev); + } + + return 0; +} + #endif diff --git a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c index fa0911ab..8b28a71a 100644 --- a/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/pmu_gk20a.c @@ -16,12 +16,6 @@ * along with this program. If not, see . */ -#include -#ifdef CONFIG_DEBUG_FS -#include -#endif -#include - #include #include #include @@ -41,6 +35,12 @@ #include "nvgpu_gpuid_t19x.h" #endif +#ifdef CONFIG_DEBUG_FS +#include +#include +#include "platform_gk20a.h" +#endif + #define GK20A_PMU_UCODE_IMAGE "gpmu_ucode.bin" #define PMU_MEM_SCRUBBING_TIMEOUT_MAX 1000 diff --git a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c index 54091014..dba0bdb4 100644 --- a/drivers/gpu/nvgpu/gk20a/sched_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/sched_gk20a.c @@ -15,6 +15,7 @@ #include #ifdef CONFIG_DEBUG_FS #include +#include "platform_gk20a.h" #endif #include #include diff --git a/drivers/gpu/nvgpu/gk20a/sim_gk20a.c b/drivers/gpu/nvgpu/gk20a/sim_gk20a.c index 5c11c118..122e66f9 100644 --- a/drivers/gpu/nvgpu/gk20a/sim_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/sim_gk20a.c @@ -19,6 +19,7 @@ #include #include "gk20a.h" +#include "platform_gk20a.h" #include -- cgit v1.2.2