From f70575805708cabdedea7498aaa3f710fde4d920 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 31 Jan 2024 03:29:01 +0000
Subject: [PATCH] add lvds1024*800

---
 kernel/drivers/gpu/arm/bifrost/mali_kbase_config_defaults.h |  175 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 117 insertions(+), 58 deletions(-)

diff --git a/kernel/drivers/gpu/arm/bifrost/mali_kbase_config_defaults.h b/kernel/drivers/gpu/arm/bifrost/mali_kbase_config_defaults.h
index 63c36e2..14493a7 100644
--- a/kernel/drivers/gpu/arm/bifrost/mali_kbase_config_defaults.h
+++ b/kernel/drivers/gpu/arm/bifrost/mali_kbase_config_defaults.h
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 /*
  *
- * (C) COPYRIGHT 2013-2021 ARM Limited. All rights reserved.
+ * (C) COPYRIGHT 2013-2023 ARM Limited. All rights reserved.
  *
  * This program is free software and is provided to you under the terms of the
  * GNU General Public License version 2 as published by the Free Software
@@ -31,33 +31,27 @@
 #include <mali_kbase_config_platform.h>
 
 enum {
-	/**
-	 * Use unrestricted Address ID width on the AXI bus.
-	 */
+	/* Use unrestricted Address ID width on the AXI bus. */
 	KBASE_AID_32 = 0x0,
 
-	/**
-	 * Restrict GPU to a half of maximum Address ID count.
+	/* Restrict GPU to a half of maximum Address ID count.
 	 * This will reduce performance, but reduce bus load due to GPU.
 	 */
 	KBASE_AID_16 = 0x3,
 
-	/**
-	 * Restrict GPU to a quarter of maximum Address ID count.
+	/* Restrict GPU to a quarter of maximum Address ID count.
 	 * This will reduce performance, but reduce bus load due to GPU.
 	 */
-	KBASE_AID_8  = 0x2,
+	KBASE_AID_8 = 0x2,
 
-	/**
-	 * Restrict GPU to an eighth of maximum Address ID count.
+	/* Restrict GPU to an eighth of maximum Address ID count.
 	 * This will reduce performance, but reduce bus load due to GPU.
 	 */
-	KBASE_AID_4  = 0x1
+	KBASE_AID_4 = 0x1
 };
 
 enum {
-	/**
-	 * Use unrestricted Address ID width on the AXI bus.
+	/* Use unrestricted Address ID width on the AXI bus.
 	 * Restricting ID width will reduce performance & bus load due to GPU.
 	 */
 	KBASE_3BIT_AID_32 = 0x0,
@@ -78,21 +72,30 @@
 	KBASE_3BIT_AID_12 = 0x5,
 
 	/* Restrict GPU to 1/4 of maximum Address ID count. */
-	KBASE_3BIT_AID_8  = 0x6,
+	KBASE_3BIT_AID_8 = 0x6,
 
 	/* Restrict GPU to 1/8 of maximum Address ID count. */
-	KBASE_3BIT_AID_4  = 0x7
+	KBASE_3BIT_AID_4 = 0x7
 };
 
-/**
- * Default period for DVFS sampling (can be overridden by platform header)
+#if MALI_USE_CSF
+/*
+ * Default value for the TIMER register of the IPA Control interface,
+ * expressed in milliseconds.
+ *
+ * The chosen value is a trade off between two requirements: the IPA Control
+ * interface should sample counters with a resolution in the order of
+ * milliseconds, while keeping GPU overhead as limited as possible.
  */
+#define IPA_CONTROL_TIMER_DEFAULT_VALUE_MS ((u32)10) /* 10 milliseconds */
+#endif /* MALI_USE_CSF */
+
+/* Default period for DVFS sampling (can be overridden by platform header) */
 #ifndef DEFAULT_PM_DVFS_PERIOD
 #define DEFAULT_PM_DVFS_PERIOD 100 /* 100ms */
 #endif
 
-/**
- * Power Management poweroff tick granuality. This is in nanoseconds to
+/* Power Management poweroff tick granuality. This is in nanoseconds to
  * allow HR timer support (can be overridden by platform header).
  *
  * On each scheduling tick, the power manager core may decide to:
@@ -103,82 +106,134 @@
 #define DEFAULT_PM_GPU_POWEROFF_TICK_NS (400000) /* 400us */
 #endif
 
-/**
- * Power Manager number of ticks before shader cores are powered off
+/* Power Manager number of ticks before shader cores are powered off
  * (can be overridden by platform header).
  */
 #ifndef DEFAULT_PM_POWEROFF_TICK_SHADER
 #define DEFAULT_PM_POWEROFF_TICK_SHADER (2) /* 400-800us */
 #endif
 
-/**
- * Default scheduling tick granuality (can be overridden by platform header)
- */
+/* Default scheduling tick granuality (can be overridden by platform header) */
 #ifndef DEFAULT_JS_SCHEDULING_PERIOD_NS
 #define DEFAULT_JS_SCHEDULING_PERIOD_NS    (100000000u) /* 100ms */
 #endif
 
-/**
- * Default minimum number of scheduling ticks before jobs are soft-stopped.
+/* Default minimum number of scheduling ticks before jobs are soft-stopped.
  *
  * This defines the time-slice for a job (which may be different from that of a
  * context)
  */
 #define DEFAULT_JS_SOFT_STOP_TICKS       (1) /* 100ms-200ms */
 
-/**
- * Default minimum number of scheduling ticks before CL jobs are soft-stopped.
- */
+/* Default minimum number of scheduling ticks before CL jobs are soft-stopped. */
 #define DEFAULT_JS_SOFT_STOP_TICKS_CL    (1) /* 100ms-200ms */
 
-/**
- * Default minimum number of scheduling ticks before jobs are hard-stopped
- */
+/* Default minimum number of scheduling ticks before jobs are hard-stopped */
 #define DEFAULT_JS_HARD_STOP_TICKS_SS    (50) /* 5s */
 
-/**
- * Default minimum number of scheduling ticks before CL jobs are hard-stopped.
- */
+/* Default minimum number of scheduling ticks before CL jobs are hard-stopped. */
 #define DEFAULT_JS_HARD_STOP_TICKS_CL    (50) /* 5s */
 
-/**
- * Default minimum number of scheduling ticks before jobs are hard-stopped
+/* Default minimum number of scheduling ticks before jobs are hard-stopped
  * during dumping
  */
 #define DEFAULT_JS_HARD_STOP_TICKS_DUMPING   (15000) /* 1500s */
 
-/**
- * Default timeout for some software jobs, after which the software event wait
+/* Default timeout for some software jobs, after which the software event wait
  * jobs will be cancelled.
  */
 #define DEFAULT_JS_SOFT_JOB_TIMEOUT (3000) /* 3s */
 
-/**
- * Default minimum number of scheduling ticks before the GPU is reset to clear a
+/* Default minimum number of scheduling ticks before the GPU is reset to clear a
  * "stuck" job
  */
 #define DEFAULT_JS_RESET_TICKS_SS           (55) /* 5.5s */
 
-/**
- * Default minimum number of scheduling ticks before the GPU is reset to clear a
+/* Default minimum number of scheduling ticks before the GPU is reset to clear a
  * "stuck" CL job.
  */
 #define DEFAULT_JS_RESET_TICKS_CL        (55) /* 5.5s */
 
-/**
- * Default minimum number of scheduling ticks before the GPU is reset to clear a
+/* Default minimum number of scheduling ticks before the GPU is reset to clear a
  * "stuck" job during dumping.
  */
 #define DEFAULT_JS_RESET_TICKS_DUMPING   (15020) /* 1502s */
 
-/**
- * Default number of milliseconds given for other jobs on the GPU to be
+/* Nominal reference frequency that was used to obtain all following
+ * <...>_TIMEOUT_CYCLES macros, in kHz.
+ *
+ * Timeouts are scaled based on the relation between this value and the lowest
+ * GPU clock frequency.
+ */
+#define DEFAULT_REF_TIMEOUT_FREQ_KHZ (100000)
+
+#if MALI_USE_CSF
+/* Waiting timeout for status change acknowledgment, in clock cycles.
+ *
+ * This is also the default timeout to be used when an invalid timeout
+ * selector is used to retrieve the timeout on CSF GPUs.
+ *
+ * Based on 75000ms timeout at nominal 100MHz, as is required for Android - based
+ * on scaling from a 50MHz GPU system.
+ */
+#define CSF_FIRMWARE_TIMEOUT_CYCLES (7500000000ull)
+
+/* Timeout in clock cycles for GPU Power Management to reach the desired
+ * Shader, L2 and MCU state.
+ *
+ * Based on 2500ms timeout at nominal 100MHz, scaled from a 50MHz GPU system.
+ */
+#define CSF_PM_TIMEOUT_CYCLES (250000000)
+
+/* Waiting timeout in clock cycles for GPU reset to complete.
+ *
+ * Based on 2500ms timeout at 100MHz, scaled from a 50MHz GPU system
+ */
+#define CSF_GPU_RESET_TIMEOUT_CYCLES (250000000)
+
+/* Waiting timeout in clock cycles for all active CSGs to be suspended.
+ *
+ * Based on 1500ms timeout at 100MHz, scaled from a 50MHz GPU system.
+ */
+#define CSF_CSG_SUSPEND_TIMEOUT_CYCLES (150000000)
+
+/* Waiting timeout in clock cycles for GPU firmware to boot.
+ *
+ * Based on 250ms timeout at 100MHz, scaled from a 50MHz GPU system.
+ */
+#define CSF_FIRMWARE_BOOT_TIMEOUT_CYCLES (25000000)
+
+/* Waiting timeout for a ping request to be acknowledged, in clock cycles.
+ *
+ * Based on 6000ms timeout at 100MHz, scaled from a 50MHz GPU system.
+ */
+#define CSF_FIRMWARE_PING_TIMEOUT_CYCLES (600000000ull)
+
+#else /* MALI_USE_CSF */
+
+/* A default timeout in clock cycles to be used when an invalid timeout
+ * selector is used to retrieve the timeout, on JM GPUs.
+ */
+#define JM_DEFAULT_TIMEOUT_CYCLES (150000000)
+
+/* Default number of milliseconds given for other jobs on the GPU to be
  * soft-stopped when the GPU needs to be reset.
  */
-#define DEFAULT_RESET_TIMEOUT_MS (3000) /* 3s */
+#define JM_DEFAULT_RESET_TIMEOUT_MS (1) /* 1 ms */
 
-/**
- * Default timeslice that a context is scheduled in for, in nanoseconds.
+/* Default timeout in clock cycles to be used when checking if JS_COMMAND_NEXT
+ * is updated on HW side so a Job Slot is considered free.
+ * This timeout will only take effect on GPUs with low value for the minimum
+ * GPU clock frequency (<= 100MHz).
+ *
+ * Based on 1ms timeout at 100MHz. Will default to 0ms on GPUs with higher
+ * value for minimum GPU clock frequency.
+ */
+#define JM_DEFAULT_JS_FREE_TIMEOUT_CYCLES (100000)
+
+#endif /* MALI_USE_CSF */
+
+/* Default timeslice that a context is scheduled in for, in nanoseconds.
  *
  * When a context has used up this amount of time across its jobs, it is
  * scheduled out to let another run.
@@ -188,16 +243,14 @@
  */
 #define DEFAULT_JS_CTX_TIMESLICE_NS (50000000) /* 50ms */
 
-/**
- * Maximum frequency (in kHz) that the GPU can be clocked. For some platforms
+/* Maximum frequency (in kHz) that the GPU can be clocked. For some platforms
  * this isn't available, so we simply define a dummy value here. If devfreq
  * is enabled the value will be read from there, otherwise this should be
  * overridden by defining GPU_FREQ_KHZ_MAX in the platform file.
  */
 #define DEFAULT_GPU_FREQ_KHZ_MAX (5000)
 
-/**
- * Default timeout for task execution on an endpoint
+/* Default timeout for task execution on an endpoint
  *
  * Number of GPU clock cycles before the driver terminates a task that is
  * making no forward progress on an endpoint (e.g. shader core).
@@ -206,8 +259,7 @@
  */
 #define DEFAULT_PROGRESS_TIMEOUT ((u64)5 * 500 * 1024 * 1024)
 
-/**
- * Default threshold at which to switch to incremental rendering
+/* Default threshold at which to switch to incremental rendering
  *
  * Fraction of the maximum size of an allocation that grows on GPU page fault
  * that can be used up before the driver switches to incremental rendering,
@@ -215,5 +267,12 @@
  */
 #define DEFAULT_IR_THRESHOLD (192)
 
+/* Waiting time in clock cycles for the completion of a MMU operation.
+ *
+ * Ideally 1.6M GPU cycles required for the L2 cache (512KiB slice) flush.
+ *
+ * As a pessimistic value, 50M GPU cycles ( > 30 times bigger ) is chosen.
+ * It corresponds to 0.5s in GPU @ 100Mhz.
+ */
+#define MMU_AS_INACTIVE_WAIT_TIMEOUT_CYCLES ((u64)50 * 1024 * 1024)
 #endif /* _KBASE_CONFIG_DEFAULTS_H_ */
-

--
Gitblit v1.6.2