Skip to content

Commit 30e7c0a

Browse files
committed
add 1.5GHz and 1.6GHz plus voltage and timing tweaks -- don't expect 1.5 and 1.6 to be stable
1 parent 961444e commit 30e7c0a

File tree

10 files changed

+177
-118
lines changed

10 files changed

+177
-118
lines changed

Kernel/arch/arm/mach-s5pv210/cpu-freq.c

Lines changed: 136 additions & 82 deletions
Large diffs are not rendered by default.

Kernel/arch/arm/mach-s5pv210/include/mach/cpu-freq-v210.h

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,30 @@
1717
/*
1818
* APLL M,P,S value for target frequency
1919
**/
20-
#define APLL_VAL_1664 ((1<<31)|(417<<16)|(3<<8)|(0))
21-
#define APLL_VAL_1400 ((1<<31)|(175<<16)|(3<<8)|(1))
22-
#define APLL_VAL_1332 ((1<<31)|(444<<16)|(4<<8)|(0))
23-
#define APLL_VAL_1300 ((1<<31)|(150<<16)|(3<<8)|(1))
20+
#define APLL_VAL_1600 ((1<<31)|(200<<16)|(3<<8)|(1))
21+
#define APLL_VAL_1500 ((1<<31)|(375<<16)|(6<<8)|(1))
22+
#define APLL_VAL_1400 ((1<<31)|(175<<16)|(3<<8)|(1))
23+
#define APLL_VAL_1300 ((1<<31)|(325<<16)|(6<<8)|(1))
2424
#define APLL_VAL_1200 ((1<<31)|(150<<16)|(3<<8)|(1))
2525
#define APLL_VAL_1100 ((1<<31)|(125<<16)|(3<<8)|(1))
2626
#define APLL_VAL_1000 ((1<<31)|(125<<16)|(3<<8)|(1))
2727
#define APLL_VAL_800 ((1<<31)|(100<<16)|(3<<8)|(1))
2828
#define APLL_VAL_600 ((1<<31)|(75<<16)|(3<<8)|(1))
2929

3030
enum perf_level {
31-
L0 = 0, // 1.4GHz
32-
L1, // 1.3GHz
33-
L2, // 1.2GHz
34-
L3, // 1.1GHz
35-
L4, // 1GHz
36-
L5, // 800MHz
37-
L6, // 600MHz
38-
L7, // 400MHz
39-
L8, // 200MHz
40-
L9, // 100MHz
41-
MAX_PERF_LEVEL = L9,
31+
L0 = 0, // 1.6GHz
32+
L1, // 1.5GHz
33+
L2, // 1.4GHz
34+
L3, // 1.3GHz
35+
L4, // 1.2GHz
36+
L5, // 1.1GHz
37+
L6, // 1.0GHz
38+
L7, // 800MHz
39+
L8, // 600MHz
40+
L9, // 400MHz
41+
L10, // 200MHz
42+
L11, // 100MHz
43+
MAX_PERF_LEVEL = L11,
4244
};
4345

4446
#define SLEEP_FREQ (600 * 1000) /* Use 600MHz when entering sleep */

Kernel/arch/arm/mach-s5pv210/mach-p1.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1737,7 +1737,7 @@ static int isx005_power_on(void)
17371737
/* LDO on */
17381738
int err;
17391739

1740-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_2, L8);
1740+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_2, L10);
17411741

17421742
/* can't do this earlier because regulators aren't available in
17431743
* early boot
@@ -2041,7 +2041,7 @@ static int s5k6aafx_power_on(void)
20412041
/* LDO on */
20422042
int err = 0;
20432043

2044-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_2, L8);
2044+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_2, L10);
20452045

20462046
/* can't do this earlier because regulators aren't available in
20472047
* early boot
@@ -2350,7 +2350,7 @@ static int s5k5ccgx_power_on(void)
23502350
/* LDO on */
23512351
int err;
23522352

2353-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_2, L8);
2353+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_2, L10);
23542354

23552355
/* can't do this earlier because regulators aren't available in
23562356
* early boot

Kernel/arch/arm/mach-s5pv210/p1-rfkill.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,11 @@ static int bluetooth_lock_dvfs(void *data, enum rfkill_user_states state)
276276
pr_debug("[BT] dvfs unlock\n");
277277
break;
278278
case RFKILL_USER_STATE_SOFT_BLOCKED:
279-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_9, L8);
279+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_9, L10);
280280
pr_debug("[BT] dvfs lock to L8\n");
281281
break;
282282
case RFKILL_USER_STATE_HARD_BLOCKED:
283-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_9, L7);
283+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_9, L9);
284284
pr_debug("[BT] dvfs lock to L7\n");
285285
break;
286286
default:

Kernel/arch/arm/plat-s5p/include/plat/pll.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@
2121

2222
#include <asm/div64.h>
2323

24+
#define PLL45XX_APLL_VAL_1600 ((1 << 31) | (200 << 16) | (3 << 8) | (1))
25+
#define PLL45XX_APLL_VAL_1500 ((1 << 31) | (375 << 16) | (6 << 8) | (1))
2426
#define PLL45XX_APLL_VAL_1400 ((1 << 31) | (175 << 16) | (3 << 8) | (1))
25-
#define PLL45XX_APLL_VAL_1300 ((1 << 31) | (150 << 16) | (3 << 8) | (1))
27+
#define PLL45XX_APLL_VAL_1300 ((1 << 31) | (325 << 16) | (6 << 8) | (1))
2628
#define PLL45XX_APLL_VAL_1200 ((1 << 31) | (150 << 16) | (3 << 8) | (1))
2729
#define PLL45XX_APLL_VAL_1100 ((1 << 31) | (125 << 16) | (3 << 8) | (1))
2830
#define PLL45XX_APLL_VAL_1000 ((1 << 31) | (125 << 16) | (3 << 8) | (1))

Kernel/drivers/cpufreq/cpufreq.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
#define dprintk(msg...) cpufreq_debug_printk(CPUFREQ_DEBUG_CORE, \
3333
"cpufreq-core", msg)
3434

35-
int exp_UV_mV[10];
36-
extern unsigned int freq_uv_table[10][3];
37-
int enabled_freqs[10] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
35+
int exp_UV_mV[12];
36+
extern unsigned int freq_uv_table[12][3];
37+
int enabled_freqs[12] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 }; // 1600, 1500, 1400, 1300, 1200, 1100, 1000, 800, 600, 400, 200, 100
3838

3939
/**
4040
* The "cpufreq driver" - the arch- or hardware-dependent low
@@ -657,15 +657,15 @@ static ssize_t show_scaling_setspeed(struct cpufreq_policy *policy, char *buf)
657657

658658
static ssize_t show_UV_mV_table(struct cpufreq_policy *policy, char *buf) {
659659

660-
return sprintf(buf, "%d %d %d %d %d %d %d %d %d %d\n", exp_UV_mV[0], exp_UV_mV[1], exp_UV_mV[2], exp_UV_mV[3], exp_UV_mV[4], exp_UV_mV[5], exp_UV_mV[6], exp_UV_mV[7], exp_UV_mV[8], exp_UV_mV[9]);
660+
return sprintf(buf, "%d %d %d %d %d %d %d %d %d %d %d %d\n", exp_UV_mV[0], exp_UV_mV[1], exp_UV_mV[2], exp_UV_mV[3], exp_UV_mV[4], exp_UV_mV[5], exp_UV_mV[6], exp_UV_mV[7], exp_UV_mV[8], exp_UV_mV[9], exp_UV_mV[10], exp_UV_mV[11]);
661661
}
662662

663663
static ssize_t store_UV_mV_table(struct cpufreq_policy *policy,
664664
const char *buf, size_t count) {
665665

666666
unsigned int ret = -EINVAL;
667667

668-
ret = sscanf(buf, "%d %d %d %d %d %d %d %d %d %d", &exp_UV_mV[0], &exp_UV_mV[1], &exp_UV_mV[2], &exp_UV_mV[3], &exp_UV_mV[4], &exp_UV_mV[5], &exp_UV_mV[6], &exp_UV_mV[7], &exp_UV_mV[8], &exp_UV_mV[9]);
668+
ret = sscanf(buf, "%d %d %d %d %d %d %d %d %d %d %d %d", &exp_UV_mV[0], &exp_UV_mV[1], &exp_UV_mV[2], &exp_UV_mV[3], &exp_UV_mV[4], &exp_UV_mV[5], &exp_UV_mV[6], &exp_UV_mV[7], &exp_UV_mV[8], &exp_UV_mV[9], &exp_UV_mV[10], &exp_UV_mV[11]);
669669
if(ret != 1) {
670670
return -EINVAL;
671671
}
@@ -677,7 +677,7 @@ static ssize_t show_frequency_voltage_table(struct cpufreq_policy *policy,
677677
char *buf) {
678678

679679
return sprintf(buf,
680-
"%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n",
680+
"%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n%d %d %d\n",
681681
freq_uv_table[0][0], freq_uv_table[0][1], freq_uv_table[0][2],
682682
freq_uv_table[1][0], freq_uv_table[1][1], freq_uv_table[1][2],
683683
freq_uv_table[2][0], freq_uv_table[2][1], freq_uv_table[2][2],
@@ -687,8 +687,9 @@ static ssize_t show_frequency_voltage_table(struct cpufreq_policy *policy,
687687
freq_uv_table[6][0], freq_uv_table[6][1], freq_uv_table[6][2],
688688
freq_uv_table[7][0], freq_uv_table[7][1], freq_uv_table[7][2],
689689
freq_uv_table[8][0], freq_uv_table[8][1], freq_uv_table[8][2],
690-
freq_uv_table[9][0], freq_uv_table[9][1], freq_uv_table[9][2]);
691-
690+
freq_uv_table[9][0], freq_uv_table[9][1], freq_uv_table[9][2],
691+
freq_uv_table[10][0], freq_uv_table[10][1], freq_uv_table[10][2],
692+
freq_uv_table[11][0], freq_uv_table[11][1], freq_uv_table[11][2]);
692693
}
693694

694695

@@ -709,7 +710,7 @@ static ssize_t show_bios_limit(struct cpufreq_policy *policy, char *buf)
709710
}
710711

711712
static ssize_t show_states_enabled_table(struct cpufreq_policy *policy, char *buf) {
712-
return sprintf(buf, "%d %d %d %d %d %d %d %d %d %d\n", enabled_freqs[0], enabled_freqs[1], enabled_freqs[2], enabled_freqs[3], enabled_freqs[4], enabled_freqs[5], enabled_freqs[6], enabled_freqs[7], enabled_freqs[8], enabled_freqs[9]);
713+
return sprintf(buf, "%d %d %d %d %d %d %d %d %d %d %d %d\n", enabled_freqs[0], enabled_freqs[1], enabled_freqs[2], enabled_freqs[3], enabled_freqs[4], enabled_freqs[5], enabled_freqs[6], enabled_freqs[7], enabled_freqs[8], enabled_freqs[9], enabled_freqs[10], enabled_freqs[11]);
713714

714715
}
715716

@@ -718,7 +719,7 @@ static ssize_t store_states_enabled_table(struct cpufreq_policy *policy, const c
718719

719720
unsigned int ret = -EINVAL;
720721

721-
ret = sscanf(buf, "%d %d %d %d %d %d %d %d %d %d", &enabled_freqs[0], &enabled_freqs[1], &enabled_freqs[2], &enabled_freqs[3], &enabled_freqs[4], &enabled_freqs[5], &enabled_freqs[6], &enabled_freqs[7], &enabled_freqs[8], &enabled_freqs[9]);
722+
ret = sscanf(buf, "%d %d %d %d %d %d %d %d %d %d %d %d", &enabled_freqs[0], &enabled_freqs[1], &enabled_freqs[2], &enabled_freqs[3], &enabled_freqs[4], &enabled_freqs[5], &enabled_freqs[6], &enabled_freqs[7], &enabled_freqs[8], &enabled_freqs[9], &enabled_freqs[10], &enabled_freqs[11]);
722723
if(ret != 1) {
723724
return -EINVAL;
724725
}

Kernel/drivers/input/touchscreen/qt602240.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1188,7 +1188,7 @@ static void qt602240_input_read(struct qt602240_data *data)
11881188
bChangeUpDn= 1;
11891189
} else if ((touch_status & 0xf0 ) == 0xc0) { // Detect & Press : 0x80 | 0x40
11901190
touch_message_flag = true;
1191-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_7, L5);
1191+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_7, L7);
11921192
fingerInfo[id].pressure= 40;
11931193
fingerInfo[id].x= (int16_t)x;
11941194
fingerInfo[id].y= (int16_t)y;

Kernel/drivers/media/video/samsung/mfc50/mfc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ static int mfc_open(struct inode *inode, struct file *file)
8585
}
8686

8787
#ifdef CONFIG_DVFS_LIMIT
88-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_1, L7);
88+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_1, L9);
8989
#endif
9090
clk_enable(mfc_sclk);
9191

Kernel/drivers/usb/gadget/s3c_udc_otg.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ int s3c_vbus_enable(struct usb_gadget *gadget, int enable)
493493
if (enable) {
494494
dev_info(&gadget->dev, "usb %d,%d lock\n", dev->udc_enabled, enable);
495495
//wake_lock(&dev->udc_wake_lock);
496-
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_8, L8); //200Mhz lock
496+
s5pv210_lock_dvfs_high_level(DVFS_LOCK_TOKEN_8, L10); //200Mhz lock
497497
} else {
498498
dev_info(&gadget->dev, "usb %d,%d unlock\n", dev->udc_enabled, enable);
499499
wake_unlock(&dev->udc_wake_lock);

Kernel/kernel/power/main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,9 @@ static ssize_t dvfslock_ctrl(const char *buf, size_t count)
290290
return -EINVAL;
291291

292292
if (dlevel)
293-
dlevel = L5;
293+
dlevel = L7;
294294
else
295-
dlevel = L4;
295+
dlevel = L6;
296296

297297
printk(KERN_DEBUG "%s : level=%d, time=%d\n", __func__, dlevel, dtime_msec);
298298

0 commit comments

Comments
 (0)