mirror of
https://github.com/Fishwaldo/build.git
synced 2025-06-07 06:41:58 +00:00
Merge pull request #152 from ThomasKaiser/master
Try to fix potential overvolting and overheating for Orange Pi One OK, will do ASAP.
This commit is contained in:
commit
c93d7dfb35
3 changed files with 115 additions and 7 deletions
|
@ -734,16 +734,15 @@ ir_tx = port:PH07<2><default><default><default>
|
||||||
[dvfs_table]
|
[dvfs_table]
|
||||||
pmuic_type = 1
|
pmuic_type = 1
|
||||||
pmu_gpio0 = port:PL06<1><1><2><1>
|
pmu_gpio0 = port:PL06<1><1><2><1>
|
||||||
pmu_level0 = 11300
|
pmu_level0 = 1270
|
||||||
pmu_level1 = 1100
|
pmu_level1 = 1270
|
||||||
;extremity_freq = 1296000000
|
|
||||||
max_freq = 1200000000
|
max_freq = 1200000000
|
||||||
min_freq = 648000000
|
min_freq = 648000000
|
||||||
LV_count = 2
|
LV_count = 2
|
||||||
LV1_freq = 1200000000
|
LV1_freq = 1200000000
|
||||||
LV1_volt = 1300
|
LV1_volt = 1270
|
||||||
LV2_freq = 648000000
|
LV2_freq = 648000000
|
||||||
LV2_volt = 1100
|
LV2_volt = 1270
|
||||||
|
|
||||||
[gpu_dvfs_table]
|
[gpu_dvfs_table]
|
||||||
G_LV_count = 3
|
G_LV_count = 3
|
||||||
|
|
|
@ -254,7 +254,7 @@
|
||||||
MODULES="gpio_sunxi w1-sunxi w1-gpio w1-therm"
|
MODULES="gpio_sunxi w1-sunxi w1-gpio w1-therm"
|
||||||
MODULES_NEXT=""
|
MODULES_NEXT=""
|
||||||
CPUMIN="648000"
|
CPUMIN="648000"
|
||||||
CPUMAX="1200000"
|
CPUMAX="1104000"
|
||||||
GOVERNOR="interactive"
|
GOVERNOR="interactive"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@
|
||||||
MODULES="8189es gpio_sunxi w1-sunxi w1-gpio w1-therm"
|
MODULES="8189es gpio_sunxi w1-sunxi w1-gpio w1-therm"
|
||||||
MODULES_NEXT=""
|
MODULES_NEXT=""
|
||||||
CPUMIN="648000"
|
CPUMIN="648000"
|
||||||
CPUMAX="1200000"
|
CPUMAX="1104000"
|
||||||
GOVERNOR="interactive"
|
GOVERNOR="interactive"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
109
patch/kernel/sun8i-default/0005-h3-thermal.patch
Normal file
109
patch/kernel/sun8i-default/0005-h3-thermal.patch
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
diff --git a/drivers/thermal/cpu_budget_cooling.c b/drivers/thermal/cpu_budget_cooling.c
|
||||||
|
index fb316b6..ce1f9bb 100755
|
||||||
|
--- a/drivers/thermal/cpu_budget_cooling.c
|
||||||
|
+++ b/drivers/thermal/cpu_budget_cooling.c
|
||||||
|
@@ -30,8 +30,6 @@
|
||||||
|
#include <linux/cpu.h>
|
||||||
|
#include <linux/cpumask.h>
|
||||||
|
#include <linux/cpu_budget_cooling.h>
|
||||||
|
-#include "thermal_core.h"
|
||||||
|
-
|
||||||
|
#define CREATE_TRACE_POINTS
|
||||||
|
#include <trace/events/budget_cooling.h>
|
||||||
|
#define BOOT_CPU 0
|
||||||
|
@@ -249,8 +247,6 @@ static int cpu_budget_apply_cooling(struct cpu_budget_cooling_device *cpu_budget
|
||||||
|
unsigned long cooling_state)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
- struct thermal_instance *instance;
|
||||||
|
- int temperature = 0;
|
||||||
|
|
||||||
|
/* Check if the old cooling action is same as new cooling action */
|
||||||
|
if (cpu_budget_device->cpu_budget_state == cooling_state)
|
||||||
|
@@ -275,11 +271,7 @@ static int cpu_budget_apply_cooling(struct cpu_budget_cooling_device *cpu_budget
|
||||||
|
cpu_budget_device->cluster1_freq_limit,
|
||||||
|
cpu_budget_device->cluster1_num_limit,
|
||||||
|
cpu_budget_device->gpu_throttle);
|
||||||
|
- list_for_each_entry(instance, &(cpu_budget_device->cool_dev->thermal_instances), cdev_node) {
|
||||||
|
- if(instance->tz->temperature > temperature)
|
||||||
|
- temperature = instance->tz->temperature;
|
||||||
|
- }
|
||||||
|
- pr_info("CPU Budget: Temperature: %u Limit state:%lu item[%d,%d,%d,%d %d]\n",temperature,cooling_state,
|
||||||
|
+ pr_debug("CPU Budget: Limit state:%lu item[%d,%d,%d,%d %d]\n",cooling_state,
|
||||||
|
cpu_budget_device->cluster0_freq_limit,
|
||||||
|
cpu_budget_device->cluster0_num_limit ,
|
||||||
|
cpu_budget_device->cluster1_freq_limit ,
|
||||||
|
@@ -381,7 +373,7 @@ static int cpufreq_thermal_notifier(struct notifier_block *nb,
|
||||||
|
{
|
||||||
|
cpufreq_verify_within_limits(policy, min_freq, max_freq);
|
||||||
|
policy->user_policy.max = policy->max;
|
||||||
|
- pr_info("CPU Budget:update CPU %d cpufreq max to %lu min to %lu\n",policy->cpu,max_freq, min_freq);
|
||||||
|
+ pr_debug("CPU Budget:update CPU %d cpufreq max to %lu min to %lu\n",policy->cpu,max_freq, min_freq);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
diff --git a/drivers/thermal/sunxi-cpu-budget-cooling.c b/drivers/thermal/sunxi-cpu-budget-cooling.c
|
||||||
|
index 71ebc41..3a1b42b 100755
|
||||||
|
--- a/drivers/thermal/sunxi-cpu-budget-cooling.c
|
||||||
|
+++ b/drivers/thermal/sunxi-cpu-budget-cooling.c
|
||||||
|
@@ -69,14 +69,16 @@ static struct cpu_budget_table m_default_budgets_table[]=
|
||||||
|
{1,816000,4,816000,1},
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
+/* LOBO */
|
||||||
|
#ifdef CONFIG_ARCH_SUN8IW7
|
||||||
|
static struct cpu_budget_table m_default_budgets_table[]=
|
||||||
|
{
|
||||||
|
+ {1,1296000 ,4,INVALID_FREQ,0},
|
||||||
|
{1,1200000 ,4,INVALID_FREQ,0},
|
||||||
|
{1,1008000 ,4,INVALID_FREQ,0},
|
||||||
|
- {1,1008000 ,2,INVALID_FREQ,0},
|
||||||
|
- {1,1008000 ,1,INVALID_FREQ,0},
|
||||||
|
- {1,504000 ,1,INVALID_FREQ,0},
|
||||||
|
+ {1,816000 ,4,INVALID_FREQ,0},
|
||||||
|
+ {1,648000 ,4,INVALID_FREQ,0},
|
||||||
|
+ {1,480000 ,1,INVALID_FREQ,0},
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_ARCH_SUN9IW1
|
||||||
|
@@ -480,7 +482,7 @@ static int sunxi_cpu_budget_syscfg_init(void)
|
||||||
|
&m_syscfg_budgets_table[i].cluster1_freq,
|
||||||
|
&m_syscfg_budgets_table[i].cluster1_cpunr,
|
||||||
|
&m_syscfg_budgets_table[i].gpu_throttle);
|
||||||
|
-#elif defined(CONFIG_ARCH_SUN8IW5) || defined(CONFIG_ARCH_SUN8IW6) || defined(CONFIG_ARCH_SUN8IW7)
|
||||||
|
+#elif defined(CONFIG_ARCH_SUN8IW5) || defined(CONFIG_ARCH_SUN8IW6)
|
||||||
|
num=sscanf(val.str, "%u %u %u %u %u",
|
||||||
|
&m_syscfg_budgets_table[i].cluster0_freq,
|
||||||
|
&m_syscfg_budgets_table[i].cluster0_cpunr,
|
||||||
|
diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
|
||||||
|
old mode 100755
|
||||||
|
new mode 100644
|
||||||
|
index d897818..0e1fa39
|
||||||
|
--- a/drivers/thermal/thermal_sys.c
|
||||||
|
+++ b/drivers/thermal/thermal_sys.c
|
||||||
|
@@ -359,9 +359,8 @@ static void handle_critical_trips(struct thermal_zone_device *tz,
|
||||||
|
tz->ops->notify(tz, trip, trip_type);
|
||||||
|
|
||||||
|
if (trip_type == THERMAL_TRIP_CRITICAL) {
|
||||||
|
- /* Our system report temperature in centigrade, by qin 2014 .11.25 */
|
||||||
|
pr_emerg("Critical temperature reached(%d C),shutting down\n",
|
||||||
|
- tz->temperature );
|
||||||
|
+ tz->temperature / 1000);
|
||||||
|
orderly_poweroff(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/drivers/arisc/binary/Makefile b/drivers/arisc/binary/Makefile
|
||||||
|
index 08b81fd..ab3d5d2 100755
|
||||||
|
--- a/drivers/arisc/binary/Makefile
|
||||||
|
+++ b/drivers/arisc/binary/Makefile
|
||||||
|
@@ -29,8 +29,8 @@ ifdef CONFIG_ARCH_SUN9IW1P1
|
||||||
|
PLATFORM=arisc_sun9iw1p1
|
||||||
|
endif
|
||||||
|
|
||||||
|
-$(obj)/$(PLATFORM).bin : $(src)/$(PLATFORM).code
|
||||||
|
- cp $< $(obj)/$(PLATFORM).tar.bz2; \
|
||||||
|
+$(obj)/$(PLATFORM).bin : $(obj)/$(PLATFORM).code
|
||||||
|
+ cp $(obj)/$(PLATFORM).code $(obj)/$(PLATFORM).tar.bz2; \
|
||||||
|
tar -xjvf $(obj)/$(PLATFORM).tar.bz2 -C $(obj)/; \
|
||||||
|
cp $(obj)/arisc_package/$(PLATFORM).bin $(obj)/$(PLATFORM).bin; \
|
||||||
|
cp $(obj)/arisc_package/$(PLATFORM).tar.bz2.aes $(obj)/arisc; \
|
Loading…
Add table
Reference in a new issue