Module Name: src
Committed By: reinoud
Date: Thu Oct 2 11:17:50 UTC 2014
Modified Files:
src/sys/arch/arm/samsung: exynos_soc.c
Log Message:
Disable maximum frequency setting for exynos5
While here add more known frequency settings for exynos4. They are currently
disabled since derived clocks are not adjusted.
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/samsung/exynos_soc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/samsung/exynos_soc.c
diff -u src/sys/arch/arm/samsung/exynos_soc.c:1.23 src/sys/arch/arm/samsung/exynos_soc.c:1.24
--- src/sys/arch/arm/samsung/exynos_soc.c:1.23 Tue Sep 30 14:23:41 2014
+++ src/sys/arch/arm/samsung/exynos_soc.c Thu Oct 2 11:17:50 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: exynos_soc.c,v 1.23 2014/09/30 14:23:41 reinoud Exp $ */
+/* $NetBSD: exynos_soc.c,v 1.24 2014/10/02 11:17:50 reinoud Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
#define _ARM32_BUS_DMA_PRIVATE
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: exynos_soc.c,v 1.23 2014/09/30 14:23:41 reinoud Exp $");
+__KERNEL_RCSID(1, "$NetBSD: exynos_soc.c,v 1.24 2014/10/02 11:17:50 reinoud Exp $");
#include <sys/param.h>
#include <sys/bus.h>
@@ -92,11 +92,16 @@ const struct cpu_freq cpu_freq_settings_
{1300, 6, 325, 0},
{1400, 3, 175, 0},
{1600, 3, 200, 0},
+// {1704, 3, 213, 0},
+// {1800, 4, 300, 0},
+// {1920, 3, 240, 0},
+// {2000, 3, 250, 0},
};
#endif
#ifdef EXYNOS5
+#define EXYNOS5_DEFAULT_ENTRY 7
const struct cpu_freq cpu_freq_settings_exynos5[] = {
{ 200, 3, 100, 2},
{ 333, 4, 222, 2},
@@ -105,6 +110,7 @@ const struct cpu_freq cpu_freq_settings_
{ 600, 4, 200, 1},
{ 667, 7, 389, 1},
{ 800, 3, 100, 0},
+ { 900, 4, 150, 0},
{1000, 3, 125, 0},
{1066, 12, 533, 0},
{1200, 3, 150, 0},
@@ -117,7 +123,7 @@ static struct cpu_freq const *cpu_freq_s
static int ncpu_freq_settings = 0;
static int cpu_freq_target = 0;
-#define NFRQS 15
+#define NFRQS 18
static char sysctl_cpu_freqs_txt[NFRQS*5];
bus_space_handle_t exynos_core_bsh;
@@ -477,13 +483,21 @@ exynos_clocks_bootstrap(void)
{
KASSERT(ncpu_freq_settings != 0);
KASSERT(ncpu_freq_settings < NFRQS);
+ int fsel;
#ifdef VERBOSE_INIT_ARM
exynos_dump_clocks();
#endif
- /* set max cpufreq */
- exynos_set_cpufreq(&cpu_freq_settings[ncpu_freq_settings-1]);
+ /* set (max) cpufreq */
+ fsel = ncpu_freq_settings-1;
+
+#ifdef EXYNOS5
+ /* XXX BUGFIX selecting freq on E5 goes wrong for now XXX */
+ fsel = EXYNOS5_DEFAULT_ENTRY;
+#endif
+
+ exynos_set_cpufreq(&cpu_freq_settings[fsel]);
/* set external USB frequency to XCLKOUT */
exynos_init_clkout_for_usb();