hocclk: add mariko middle freq hack
This commit is contained in:
1 parent
935dd24129
commit
c4f7f0e713
7 files changed
+166
-123
No files matched your search
@@ -181,6 +181,40 @@ namespace clockManager {
|
||||
|
||||
std::uint32_t *hz = &gFreqTable[module].list[0];
|
||||
gFreqTable[module].count = 0;
|
||||
|
||||
if (module == HocClkModule_GPU && board::GetSocType() == HocClkSocType_Mariko) {
|
||||
constexpr u32 kStep = 38400000;
|
||||
constexpr u32 kPcvStep = 76800000;
|
||||
constexpr u32 kMax = 1228800000;
|
||||
|
||||
for (u32 f = kPcvStep; f <= kMax && gFreqTable[module].count < HOCCLK_FREQ_LIST_MAX; f += kStep) {
|
||||
if (f % kPcvStep != 0) {
|
||||
if (!middleFreqs) continue;
|
||||
*hz = f;
|
||||
gFreqTable[module].count++;
|
||||
hz++;
|
||||
} else {
|
||||
for (u32 i = 0; i < count; i++) {
|
||||
if (freqs[i] == f) {
|
||||
*hz = f;
|
||||
gFreqTable[module].count++;
|
||||
hz++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < count && gFreqTable[module].count < HOCCLK_FREQ_LIST_MAX; i++) {
|
||||
if (freqs[i] > kMax && IsAssignableHz(module, freqs[i])) {
|
||||
*hz = freqs[i];
|
||||
gFreqTable[module].count++;
|
||||
hz++;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
for (std::uint32_t i = 0; i < count; i++) {
|
||||
if (!IsAssignableHz(module, freqs[i])) {
|
||||
continue;
|
||||
|
||||
Reference in new issue
Block a user