Fix user mode ignores advanced fan mode#303
Conversation
Fan mode was always auto or silent after changing user mode or starting the application. Fixes dmitry-s93#246
|
Your fix works as it should. unfortunately my laptop only applies the custom curve if its in performance mode. I don't know if my laptop is the exception. but if its not, then i can't imagine the amount of people complaining about the custom curve not applying, so we definitely need more testers. As for the fix itself, would the regular |
|
The issue is that it resets to auto as soon as MCC is restarted, even when using performance (and when changing shift mode, but it's less impactful). If it's confirmed that we have two behaviours, we don't have to enforce fan mode here.
Oups, I was in an enum mindset. Fun fact: since I have the issue with shift mode unknown after booting my laptop, setUserMode returns before overriding fan mode. So I have to set a valid shift mode, then I can restart MCC to reproduce the reset issue. |
|
I tried multiple configurations on windows and linux, advanced vs auto fan mode makes more sense now. at 0xf4 (fan mode):
fan curve: isw -cp MSI_ADDRESS_DEFAULTIn summary, when my laptop wakes up (even on a clean install without MCC), curves are set to a default curve. @mutchiko what does the curve look like when your laptop wakes up? I am ok to only use performance+advanced (the flag 0x8d, not the use of custom curve), since it's what MSI Center does. |
|
Reproduce with MCC:
I am curious which steps work differently. |
I need you to slow down a bit here, we have chores to do in The curve only resets after sleep, changing modes doesn't reset it, however its not applied unless on performance mode. I think by now you know that there is a default fan curve in ROM that gets applied after wake up. We can get help about this topic from the real ones, though we better just follow how MSI does it in their apps, so we have to add some popups in the UI, and handle the case when MCC follows system profile But for now i want to focus on UPower integration first since its a very requested feature, then i will start doing a list of fixes i prepared over the past months |
|
"Advanced" will only show when using performance mode. |
|
Okay this is good but isn't it better to also block it from the UI side of things? i suggest using a simple
Also the PR in its current state doesn't fix #246 because Advanced fan mode resets to auto after sleep, but keeps it after restarting the app, so we might have some work to do on that front |
|
What about I am not a fan of disabling the UI, at least for now. Currently, it's the only way for me to change a fan curve in balanced and eco mode, even if it says auto. You can change my mind, but I will have to work on a fan curve editor earlier.
handleWakeEvent already fix this, and the issue doesn't mention sleep. |




Fan mode was always auto or silent after changing user mode or starting the application.
Fixes #246
As discussed in #274, fans have different behaviours in eco mode.
However, it's already possible to do it by checking eco, then unchecking and checking again advanced fan mode.
@mutchiko how does it behaves for you?
If it's too weird,
fanMode = fan_mode::advanced_fan_modecan be moved under performance and/or balanced.