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

アプリは書かない(書けない)人なのでひたすらカーネルやらドライバやらをいじることにする。
まずは簡単なところからということで、クロックアップでも画策してみる。

カーネルソースの調査

CPUはQualcomm MSM7201AでARMコア。

設定できるクロックはkernel/arch/arm/mach-msm/clock-7x00a.cあたりに書かれていて、19.2MHz〜528MHz。正確に言うと、

  • 19.2MHz
  • 61.44MHz
  • 81.92MHz
  • 96MHz
  • 122.88MHz
  • 128MHz
  • 176MHz
  • 192MHz
  • 245.76MHz
  • 256MHz
  • 264MHz
  • 352MHz
  • 384MHz
  • 528Mhz

このうち、以下が有効にされている。

  • 19.2MHz
  • 122.88MHz
  • 128MHz
  • 245.76MHz
  • 384MHz
  • 528Mhz

一方、実際には、kernel/arch/arm/mach-msm/clock.cで、

  • 可変範囲: 81.92MHz〜384MHz
  • 画面オン時: 19.2MHz〜384MHz
  • 画面オフ時: 19.2MHz〜245.76Mhz

に設定されている。kernel/arch/arm/mach-msm/clock.cをいじれば、取り合えずクロックアップは出来そうだ。

cpufreqドライバはkernel/drivers/cpufreq/cpufreq_msm7k.cだと思う。ここにはクロックは書かれていなくて、クロック可変の戦略のみ書かれている。cpufreqが正しく動作しているとすれば、kernel/drivers/cpufreq/cpufreq_msm7k.cをいじってクロック可変のポリシーを変えられるかもしれない。
⇒調べたらcpufreqは動いていなかった。