From d559263e694e1968cf14b79c5b827d23fac4922b Mon Sep 17 00:00:00 2001 From: Zhen Chen Date: Wed, 27 Apr 2022 15:31:47 +0800 Subject: [PATCH] MALI: bifrost: from ARM: handle_oom_event(): ignore "Invalid Heap statistics" error Continue heap chunk alloc. Change-Id: I49aade60f7d2402c7ae268eafb4d717f9147a88e Signed-off-by: Zhen Chen --- drivers/gpu/arm/bifrost/csf/mali_kbase_csf.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/arm/bifrost/csf/mali_kbase_csf.c b/drivers/gpu/arm/bifrost/csf/mali_kbase_csf.c index 45174b7caaa7..cc1369ce8766 100644 --- a/drivers/gpu/arm/bifrost/csf/mali_kbase_csf.c +++ b/drivers/gpu/arm/bifrost/csf/mali_kbase_csf.c @@ -1990,15 +1990,20 @@ static int handle_oom_event(struct kbase_queue_group *const group, u32 pending_frag_count; u64 new_chunk_ptr; int err; + bool frag_end_err = false; if ((frag_end > vt_end) || (vt_end >= vt_start)) { - dev_warn(kctx->kbdev->dev, "Invalid Heap statistics provided by firmware: vt_start %d, vt_end %d, frag_end %d\n", + frag_end_err = true; + dev_dbg(kctx->kbdev->dev, "Invalid Heap statistics provided by firmware: vt_start %d, vt_end %d, frag_end %d\n", vt_start, vt_end, frag_end); - return -EINVAL; } - - renderpasses_in_flight = vt_start - frag_end; - pending_frag_count = vt_end - frag_end; + if (frag_end_err) { + renderpasses_in_flight = 1; + pending_frag_count = 1; + } else { + renderpasses_in_flight = vt_start - frag_end; + pending_frag_count = vt_end - frag_end; + } err = kbase_csf_tiler_heap_alloc_new_chunk(kctx, gpu_heap_va, renderpasses_in_flight, pending_frag_count, &new_chunk_ptr);