Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions app/src/main/java/com/rve/rvkernelmanager/ui/soc/SoCViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ class SoCViewModel(application: Application) : AndroidViewModel(application) {
}
}

// UPDATED: Added cpuInfoMaxFreqPath to the Sealed Class
sealed class ClusterConfig(
val name: String,
val minFreqPath: String,
Expand All @@ -87,6 +88,7 @@ class SoCViewModel(application: Application) : AndroidViewModel(application) {
val availableFreqPath: String,
val availableGovPath: String,
val availableBoostFreqPath: String? = null,
val cpuInfoMaxFreqPath: String? = null, // NEW
) {
object Little : ClusterConfig(
name = "little",
Expand All @@ -96,6 +98,7 @@ class SoCViewModel(application: Application) : AndroidViewModel(application) {
govPath = SoCUtils.GOV_CPU0,
availableFreqPath = SoCUtils.AVAILABLE_FREQ_CPU0,
availableGovPath = SoCUtils.AVAILABLE_GOV_CPU0,
cpuInfoMaxFreqPath = SoCUtils.CPUINFO_MAX_FREQ_CPU0 // NEW
)

data class Big(val cpuIndex: Int) :
Expand Down Expand Up @@ -136,6 +139,12 @@ class SoCViewModel(application: Application) : AndroidViewModel(application) {
4 -> SoCUtils.AVAILABLE_BOOST_CPU4
else -> SoCUtils.AVAILABLE_BOOST_CPU6
},
// NEW: Logic to select correct cpuinfo_max_freq
cpuInfoMaxFreqPath = when (cpuIndex) {
3 -> SoCUtils.CPUINFO_MAX_FREQ_CPU3
4 -> SoCUtils.CPUINFO_MAX_FREQ_CPU4
else -> SoCUtils.CPUINFO_MAX_FREQ_CPU6
}
)

object Prime : ClusterConfig(
Expand All @@ -146,6 +155,7 @@ class SoCViewModel(application: Application) : AndroidViewModel(application) {
govPath = SoCUtils.GOV_CPU7,
availableFreqPath = SoCUtils.AVAILABLE_FREQ_CPU7,
availableGovPath = SoCUtils.AVAILABLE_GOV_CPU7,
cpuInfoMaxFreqPath = SoCUtils.CPUINFO_MAX_FREQ_CPU7 // NEW
)
}

Expand Down Expand Up @@ -299,17 +309,20 @@ class SoCViewModel(application: Application) : AndroidViewModel(application) {
maxFreq = SoCUtils.readFreqCPU(config.maxFreqPath),
currentFreq = SoCUtils.readFreqCPU(config.currentFreqPath),
gov = Utils.readFile(config.govPath),
availableFreq = SoCUtils.readAvailableFreqCPU(config.availableFreqPath),
// UPDATED: Passing the cpuInfoMaxFreqPath here
availableFreq = SoCUtils.readAvailableFreqCPU(config.availableFreqPath, config.cpuInfoMaxFreqPath),
availableGov = SoCUtils.readAvailableGovCPU(config.availableGovPath),
)
}

private fun loadClusterStateWithBoost(config: ClusterConfig.Big): CPUState {
val availableBoostPath = config.availableBoostFreqPath
val availableFreq = if (availableBoostPath != null) {
SoCUtils.readAvailableFreqBoost(config.availableFreqPath, availableBoostPath)
// UPDATED: Passing the cpuInfoMaxFreqPath here
SoCUtils.readAvailableFreqBoost(config.availableFreqPath, availableBoostPath, config.cpuInfoMaxFreqPath)
} else {
SoCUtils.readAvailableFreqCPU(config.availableFreqPath)
// UPDATED: Passing the cpuInfoMaxFreqPath here
SoCUtils.readAvailableFreqCPU(config.availableFreqPath, config.cpuInfoMaxFreqPath)
}

return CPUState(
Expand Down