2011年7月5日火曜日

Galaxy S2 バッテリ消費と対策?

1.2Ghzのdual-core CPUのおかげでほとんどスペック的に不満のないGalaxy S2ですが、やっぱりバッテリの消費はいかんともしがたいものがありますな。sleep時もさることながら、普通にいじってるだけで、こんだけ減ってくのはイラっときますねw。

で、やってみたことは。

1.同期系をなるべくとめる。
それでもやっぱりとめられないのがあったり、とめたらAndroidのいみねぇよ、というのもあったり。
2.GPUであるMALI-400MPのClockと電圧のUC/UV
2ステップの切り替えのうち、下のclock/volを100/750程度にしてみた。
3.CPUのmin_scalingが200Mhzのところを100に落としてみる。
SetCPUでclock別のプロファイルとってみると、ほとんどの時間が200Mhzでの駆動だったから。

んで、どれもほとんど効かないです。多少変化はあるのですが、CPUの100Mhz駆動は今晩あたりテストしますが、大して変わらんような気がしますな。。

自分の試した100Mhz code。ポイントだけ。

/arch/arm/mach-s5pv310/cpufreq.c

#if 0
        {L4, 200*1000},
#else
        {L4, 100*1000},
#endif
#if 0
        /* APLL FOUT L4: 200MHz */
        ((200<<16)|(6<<8)|(0x3)),
#else
        /* APLL FOUT L4: 100MHz */
        ((200<<16)|(6<<8)|(0x4)),
#endif
#if 0
        .arm_volt       = 975000,
#else
        .arm_volt       = 950000,
#endif

見落としあんのかもしれないんで、気がついた人はtweetでもしてくださいな。
MALI400のほうは、

drivers/media/video/samsung/mali/platform/orion-m400/mali_platform_dvfs.c
mali_dvfs_table mali_dvfs[MALI_DVFS_STEPS]={
..
.

このあたりで。mali_dvfs_table_updateでasv_numにしたがってstepする部分のvolもわすれずに。自分的にはidle時の設定を100/750000でやってみてる。

あと、この辺もか。
arch/arm/mach-s5pv310/mach-c1.c
static struct regulator_init_data buck3_init_data = {
        .constraints    = {
                .name           = "G3D_1.1V",
#if 0
                .min_uV         = 700000,
#else
                .min_uV         = 900000,
#endif


このあたりの作業全般、sysfsで確認&printkあたりでチェック忘れずに。じゃないとSetCPUの表示にだまされるかも?

まぁ、この作業はこの辺にしておいて、次はVoodoo sound系かBLNだな。

0 コメント:

コメントを投稿