summaryrefslogtreecommitdiff
path: root/mali_kbase/context/backend/mali_kbase_context_csf.c
diff options
context:
space:
mode:
Diffstat (limited to 'mali_kbase/context/backend/mali_kbase_context_csf.c')
-rw-r--r--mali_kbase/context/backend/mali_kbase_context_csf.c39
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 45a5a6c..a657b6d 100644
--- a/mali_kbase/context/backend/mali_kbase_context_csf.c
+++ b/mali_kbase/context/backend/mali_kbase_context_csf.c
@@ -24,13 +24,14 @@
*/
#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 <backend/gpu/mali_kbase_pm_internal.h>
+#include <mali_kbase_ctx_sched.h>
#if IS_ENABLED(CONFIG_DEBUG_FS)
#include <csf/mali_kbase_csf_csg_debugfs.h>
@@ -93,10 +94,9 @@ 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,
@@ -104,15 +104,12 @@ static const struct kbase_context_init context_init[] = {
{ kbase_jit_init, kbase_jit_term, "JIT initialization failed" },
{ kbasep_platform_context_init, kbasep_platform_context_term,
"Platform callback for kctx 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)
@@ -120,11 +117,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;
@@ -162,8 +158,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.
@@ -196,12 +191,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));
}
/*
* Taking a pm reference does not guarantee that the GPU has finished powering up.