HTC Dream(aka T-Mobile G1, Android Dev Phone 1)のクロックアップを画策してみる(その5)

クロックアップしてしばらく使ったが特に不具合はない。

今度は、もともとのバッテリの持ちの悪さを何とかしたいということでまたカーネルをいじってみる。

まずは、cpufreqを動かしてみた。クロックがダイナミックに変わるのは良いが、動作がまったりとする。調べてみると、MSM7201A用のcpufreqのポリシー(CONFIG_CPU_FREQ_GOV_MSM7K)ではクロックが上がるのが遅いらしい。CONFIG_CPU_FREQ_GOV_CONSERVATIVEのような動作なのかな。最高速度は変わらないのだけど。かといってCONFIG_CPU_FREQ_GOV_ONDEMANDを使うのも何か問題がありそうな予感がする。

次に、cpufreqは使わずに、クロックの下限をもっと下げてみることにした。
81MHz→19MHz
今度はこれで様子を見てみる。

diff --git a/arch/arm/mach-msm/clock.c b/arch/arm/mach-msm/clock.c
index a27b2dc..53ed4ac 100644
--- a/arch/arm/mach-msm/clock.c
+++ b/arch/arm/mach-msm/clock.c
@@ -644,10 +644,10 @@ device_initcall(clock_debug_init);
  */
 #define CPUFREQ_TABLE_MAX 4
 static struct cpufreq_frequency_table cpufreq_table[] =  {
-       { 0, 81920 },
+       { 0, 19200 },
        { 1, 122880 },
        { 2, 245760 },
-       { 3, 384000 },
+       { 3, 528000 },
        { CPUFREQ_TABLE_MAX, CPUFREQ_TABLE_END },
 };
 
@@ -798,7 +798,7 @@ static void msm_early_suspend(android_early_suspend_t *handl
 }
 
 static void msm_late_resume(android_early_suspend_t *handler) {
-       acpuclk_set_rate(NULL, 384000 * 1000, 0);
+       acpuclk_set_rate(NULL, 528000 * 1000, 0);
 }
 
 static struct android_early_suspend msm_power_suspend = {