mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2025-03-01 04:31:30 +00:00
65 lines
2.3 KiB
Diff
65 lines
2.3 KiB
Diff
From 5413886e2d16195eceda3720c998422b04d8c336 Mon Sep 17 00:00:00 2001
|
|
From: Christian Hewitt <christianshewitt@gmail.com>
|
|
Date: Sun, 24 Jan 2021 11:27:35 +0000
|
|
Subject: [PATCH 34/88] FROMLIST(v2): drm/lima: add governor data with
|
|
pre-defined thresholds
|
|
|
|
This patch adapts the panfrost pre-defined thresholds change [0] to the
|
|
lima driver to improve real-world performance. The upthreshold value has
|
|
been set to ramp GPU frequency to max freq faster (compared to panfrost)
|
|
to compensate for the lower overall performance of utgard devices.
|
|
|
|
[0] https://patchwork.kernel.org/project/dri-devel/patch/20210121170445.19761-1-lukasz.luba@arm.com/
|
|
|
|
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
|
---
|
|
drivers/gpu/drm/lima/lima_devfreq.c | 10 +++++++++-
|
|
drivers/gpu/drm/lima/lima_devfreq.h | 2 ++
|
|
2 files changed, 11 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/gpu/drm/lima/lima_devfreq.c b/drivers/gpu/drm/lima/lima_devfreq.c
|
|
index 5686ad4aaf7c..c9854315a0b5 100644
|
|
--- a/drivers/gpu/drm/lima/lima_devfreq.c
|
|
+++ b/drivers/gpu/drm/lima/lima_devfreq.c
|
|
@@ -163,8 +163,16 @@ int lima_devfreq_init(struct lima_device *ldev)
|
|
lima_devfreq_profile.initial_freq = cur_freq;
|
|
dev_pm_opp_put(opp);
|
|
|
|
+ /*
|
|
+ * Setup default thresholds for the simple_ondemand governor.
|
|
+ * The values are chosen based on experiments.
|
|
+ */
|
|
+ ldevfreq->gov_data.upthreshold = 30;
|
|
+ ldevfreq->gov_data.downdifferential = 5;
|
|
+
|
|
devfreq = devm_devfreq_add_device(dev, &lima_devfreq_profile,
|
|
- DEVFREQ_GOV_SIMPLE_ONDEMAND, NULL);
|
|
+ DEVFREQ_GOV_SIMPLE_ONDEMAND,
|
|
+ &ldevfreq->gov_data);
|
|
if (IS_ERR(devfreq)) {
|
|
dev_err(dev, "Couldn't initialize GPU devfreq\n");
|
|
ret = PTR_ERR(devfreq);
|
|
diff --git a/drivers/gpu/drm/lima/lima_devfreq.h b/drivers/gpu/drm/lima/lima_devfreq.h
|
|
index 2d9b3008ce77..b0c7c736e81a 100644
|
|
--- a/drivers/gpu/drm/lima/lima_devfreq.h
|
|
+++ b/drivers/gpu/drm/lima/lima_devfreq.h
|
|
@@ -4,6 +4,7 @@
|
|
#ifndef __LIMA_DEVFREQ_H__
|
|
#define __LIMA_DEVFREQ_H__
|
|
|
|
+#include <linux/devfreq.h>
|
|
#include <linux/spinlock.h>
|
|
#include <linux/ktime.h>
|
|
|
|
@@ -18,6 +19,7 @@ struct lima_devfreq {
|
|
struct opp_table *clkname_opp_table;
|
|
struct opp_table *regulators_opp_table;
|
|
struct thermal_cooling_device *cooling;
|
|
+ struct devfreq_simple_ondemand_data gov_data;
|
|
|
|
ktime_t busy_time;
|
|
ktime_t idle_time;
|
|
--
|
|
2.17.1
|
|
|