diff options
Diffstat (limited to 'mali_kbase/context/backend/mali_kbase_context_csf.c')
-rw-r--r-- | mali_kbase/context/backend/mali_kbase_context_csf.c | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/mali_kbase/context/backend/mali_kbase_context_csf.c b/mali_kbase/context/backend/mali_kbase_context_csf.c index 8b74de0..8b14108 100644 --- a/mali_kbase/context/backend/mali_kbase_context_csf.c +++ b/mali_kbase/context/backend/mali_kbase_context_csf.c @@ -24,12 +24,13 @@ */ #include <context/mali_kbase_context_internal.h> -#include <gpu/mali_kbase_gpu_regmap.h> +#include <hw_access/mali_kbase_hw_access_regmap.h> #include <mali_kbase.h> #include <mali_kbase_mem_linux.h> #include <mali_kbase_mem_pool_group.h> #include <mmu/mali_kbase_mmu.h> #include <tl/mali_kbase_timeline.h> +#include <mali_kbase_ctx_sched.h> #if IS_ENABLED(CONFIG_DEBUG_FS) #include <csf/mali_kbase_csf_csg_debugfs.h> @@ -92,24 +93,20 @@ static const struct kbase_context_init context_init[] = { "Memory pool group initialization failed" }, { kbase_mem_evictable_init, kbase_mem_evictable_deinit, "Memory evictable initialization failed" }, - { kbase_context_mmu_init, kbase_context_mmu_term, - "MMU initialization failed" }, - { kbase_context_mem_alloc_page, kbase_context_mem_pool_free, - "Memory alloc page failed" }, + { kbase_ctx_sched_init_ctx, NULL, NULL }, + { kbase_context_mmu_init, kbase_context_mmu_term, "MMU initialization failed" }, + { kbase_context_mem_alloc_page, kbase_context_mem_pool_free, "Memory alloc page failed" }, { kbase_region_tracker_init, kbase_region_tracker_term, "Region tracker initialization failed" }, { kbase_sticky_resource_init, kbase_context_sticky_resource_term, "Sticky resource initialization failed" }, { kbase_jit_init, kbase_jit_term, "JIT initialization failed" }, - { kbase_csf_ctx_init, kbase_csf_ctx_term, - "CSF context initialization failed" }, + { kbase_csf_ctx_init, kbase_csf_ctx_term, "CSF context initialization failed" }, { kbase_context_add_to_dev_list, kbase_context_remove_from_dev_list, "Adding kctx to device failed" }, }; -static void kbase_context_term_partial( - struct kbase_context *kctx, - unsigned int i) +static void kbase_context_term_partial(struct kbase_context *kctx, unsigned int i) { while (i-- > 0) { if (context_init[i].term) @@ -117,11 +114,10 @@ static void kbase_context_term_partial( } } -struct kbase_context *kbase_create_context(struct kbase_device *kbdev, - bool is_compat, - base_context_create_flags const flags, - unsigned long const api_version, - struct kbase_file *const kfile) +struct kbase_context *kbase_create_context(struct kbase_device *kbdev, bool is_compat, + base_context_create_flags const flags, + unsigned long const api_version, + struct kbase_file *const kfile) { struct kbase_context *kctx; unsigned int i = 0; @@ -159,8 +155,7 @@ struct kbase_context *kbase_create_context(struct kbase_device *kbdev, err = context_init[i].init(kctx); if (err) { - dev_err(kbdev->dev, "%s error = %d\n", - context_init[i].err_mes, err); + dev_err(kbdev->dev, "%s error = %d\n", context_init[i].err_mes, err); /* kctx should be freed by kbase_context_free(). * Otherwise it will result in memory leak. @@ -192,12 +187,10 @@ void kbase_destroy_context(struct kbase_context *kctx) * Customer side that a hang could occur if context termination is * not blocked until the resume of GPU device. */ - while (kbase_pm_context_active_handle_suspend( - kbdev, KBASE_PM_SUSPEND_HANDLER_DONT_INCREASE)) { - dev_info(kbdev->dev, - "Suspend in progress when destroying context"); - wait_event(kbdev->pm.resume_wait, - !kbase_pm_is_suspending(kbdev)); + while (kbase_pm_context_active_handle_suspend(kbdev, + KBASE_PM_SUSPEND_HANDLER_DONT_INCREASE)) { + dev_info(kbdev->dev, "Suspend in progress when destroying context"); + wait_event(kbdev->pm.resume_wait, !kbase_pm_is_suspending(kbdev)); } /* Have synchronized against the System suspend and incremented the |