If you think that "tskin" code is the only thing that impacts fanspeed itself, then prove me wrong that you could reduce the fan speed by configuring it running max OC in handheld. That code are the only parameters you can configure. There are other codes out there in another system setting structure that also exists which is why you can never reduce the fan speed just by changing the "tskin" code itself which why ive said this code is irrelevant....
Code:
fan
This is "nn::fan::detail::IManager".
Cmd | Name
0 | OpenController
IController
This is "nn::fan::detail::IController".
Cmd | Name
0 | SetRotationSpeedLevel
1 | SetRotationSpeedLevelByDiff
2 | GetRotationSpeedLevel
3 | SetRotationRate
4 | GetRotationRate
5 | [1.0.0-6.2.0] EnableFan
6 | [1.0.0-6.2.0] DisableFan
7 | [1.0.0-6.2.0] GetActualRotationSpeedLevel
tc
This is "nn::tc::IManager".
Cmd | Name
0 | SetOperatingMode
1 | GetThermalEvent
2 | IsActionAllowed
3 | EnableVirtualTemperature
4 | DisableVirtualTemperature
5 | SetVirtualTemperature
6 | EnableFanControl
7 | DisableFanControl
8 | IsFanControlEnabled
9 | [5.0.0+] GetSkinTemperatureMilliC
If you going to be like that, I'll reword:
Whatever checks tskin (PTM if I had to guess) is the only thing that adjusts the fan speed via the fan speed functions.
You'd have to be using a custom sysmodule for anything else to be actively settings speeds. At which point, your entire argument would be invalid.
And I have used max clocks in handheld in the past.