綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[分享] Sony Xperia C S39H MTK MT6589超頻代碼

[複製連結] 查看: 3406|回覆: 2|好評: 0
跳轉到指定樓層
樓主
JKGOOD | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-4-28 23:48

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 JKGOOD 於 2014-4-28 23:50 編輯

在這份文件
  1. mt_cpufreq.c
複製代碼

所有的頻率都在最一開始伴隨著電壓做定義 (先不要變動電壓值)
  1. #define DVFS_F0_0   (1703000)   // KHz
  2. #define DVFS_F0_1   (1599000)   // KHz
  3. #define DVFS_F0_2   (1508000)   // KHz
  4. #define DVFS_F0_3   (1404000)   // KHz
  5. #define DVFS_F0_4   (1300000)   // KHz
  6. #define DVFS_F1     (1209000)   // KHz
  7. #define DVFS_F2     ( 988000)   // KHz
  8. #define DVFS_F3     ( 754000)   // KHz
  9. #define DVFS_F4     ( 497250)   // KHz

  10. #define DVFS_V0     (1250)  // mV
  11. #define DVFS_V1     (1200)  // mV
  12. #define DVFS_V2     (1150)  // mV
  13. #define DVFS_V3     (1050)  // mV
  14. #define DVFS_V4     ( 950)  // mV
複製代碼

可以看到我們並不需要新增任何代碼, 因為在整份文件我們看到最高值被設定在 DVFS_F1 , 所以看到 126-127 行
  1. static unsigned int g_cpufreq_get_ptp_level = 0;
  2. static unsigned int g_max_freq_by_ptp = DVFS_F1; /* default 1.2GHz */
複製代碼

因此我們可以根據在 1646-1655 行來更改 126 行到 1-5 的值
  1.     /************************************************
  2.     * Check PTP level to define default max freq
  3.     *************************************************/
  4.     g_cpufreq_get_ptp_level = PTP_get_ptp_level();
  5.         
  6.     if(g_cpufreq_get_ptp_level == 0)
  7.         g_max_freq_by_ptp = DVFS_F1;
  8.     else if(g_cpufreq_get_ptp_level == 1)
  9.         g_max_freq_by_ptp = DVFS_F0_4;
  10.     else if(g_cpufreq_get_ptp_level == 2)
  11.         g_max_freq_by_ptp = DVFS_F0_3;
  12.     else if(g_cpufreq_get_ptp_level == 3)
  13.         g_max_freq_by_ptp = DVFS_F0_2;
  14.     else if(g_cpufreq_get_ptp_level == 4)
  15.         g_max_freq_by_ptp = DVFS_F0_1;
  16.     else if(g_cpufreq_get_ptp_level == 5)
  17.         g_max_freq_by_ptp = DVFS_F0_0;
  18.     else
  19.         g_max_freq_by_ptp = DVFS_F1;
複製代碼

這些 ID 起於 DVFS_F0_4 又稱為 set g_cpufreq_get_ptp_level == 1
讓我們回到 127 行設定 static unsigned int g_max_freq_by_ptp = DVFS_F0_4; 讓他有一致性
接下來看到 early suspend(注1) 這個值在 328 行被定義, 如果你想讓他高於正常的值, 就在這行更改
  1. cpufreq_driver_target(policy, DVFS_F1, CPUFREQ_RELATION_L);
複製代碼

注意到這個值對應到 1102 行的值, 所以在修改時要注意他的一致性, 然後再 342 行也要改成記錄一樣的頻率

做了這些更改我們可以讓 ptp 的頻率設定到我們想要的值, 那就是我們超頻的開始所在. 如果我有索尼 Xperia C 我就會自己測試了, 但是我不知道誰有這款手機會試試這個代碼, 如果有人能達到更高的頻率(雖然這個舉動不一定很好, 但這就是我們正在討論的是吧?)
如果他沒有對應到最初的電壓可能就會開始發熱. 但是這些頻率是在最初的預設值就被定義了, 所以應該可行.

最後, 如果你不想親手修改, 這邊有現成的 : http://pastebin.com/nswkHqZt

注1 : Early suspend -這個機制定義了在suspend的早期,關閉顯示屏的時候,一些和顯示屏相關的設備,比如背光、重力感應器和触摸屏等設備都應該被關掉,但是此時系統可能還有持有wake lock的任務在運行,如音樂播放,電話,或者掃描sd卡上的文件等,這個時候整個系統還不能進入真正睡眠,直到所有的wake lock都被釋放。在嵌入式設備中,背光是一個很大的電源消耗,所有android加入了這種機制。

XDA原文地址 : http://forum.xda-developers.com/showpost.php?p=45237075&postcount=369

「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 2碎鑽 +4 經驗 +1 幫助 +2 收起 理由
25077667 + 1 + 1 非常讚
欸欸 + 3 + 1 + 1 讚一個!

查看全部評分

收藏收藏2 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
tomylin | 收聽TA | 只看該作者
發表於 2014-5-15 16:05
請問大大mt_cpufreq.c這個檔案在哪裡~?
手邊有MTK6589的手機,之前送修之後廠商有幫我超頻過1.2G-1.3G
想看看源碼是否可以改到1.5Ghz,在此發問先謝謝大了~!!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 1 反對 0

使用道具 舉報

板凳
tfw5535 | 收聽TA | 只看該作者
發表於 2014-6-17 01:55
樓主技術帝!!,路過拿碎鑽
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則