alou-S / omen-fan

Utility to control fans in Omen laptops
GNU General Public License v3.0
50 stars 5 forks source link

Thermal Power #2

Open Diafwl opened 1 year ago

Diafwl commented 1 year ago

About "0xBA"

for effects can be persistent also "0xC1" needed to set same value If changed same time power caps are changing

i noticed "0xBA", "0xC1" are same and connected to "0xDE", "0xDF"

alou-S commented 1 year ago

Currently a bit busy with my End of semester examinations. Will look into the interactions later. But mainly I didn't find any practical reason on setting 0xBA since my laptop doesn't really have any Power Management issues on Linux after setting 0x95 to 0x31

Diafwl commented 1 year ago

yeah 0x95 controlling all power things, after i wrote this issue i checked the acpi table dump for my victus 0x95 values are 0, 1, 03 acpi command "_SB.WMID.GM1A" 0x95 value in acpi is "^^PC00.LPCB.EC0.HPCM"

if you want to go deep this things maybe can helpful

also i noticed hp-wmi driver in kernel also has this values but not active on every models because of whitelist

alou-S commented 1 year ago

About "0xBA"

for effects can be persistent also "0xC1" needed to set same value If changed same time power caps are changing

i noticed "0xBA", "0xC1" are same and connected to "0xDE", "0xDF"

Okay so I have tested and 0xC1 seems to be able to persistently set 0xBA and hence the power levels of the laptop. But I am still unable to get 0xBA to its lowest value 0x00 which gets the laptop in its highest possible total power. When 0xC1 is set to 0x00 (which is basically its default unset value) 0xBA settles at 0x01.

I am currently looking into the decompiled ACPI tables (finally figured out how to after a bit of reading). Will update you on whatever I find.

Diafwl commented 1 year ago

Okay so I have tested and 0xC1 seems to be able to persistently set 0xBA and hence the power levels of the laptop. But I am still unable to get 0xBA to its lowest value 0x00 which gets the laptop in its highest possible total power. When 0xC1 is set to 0x00 (which is basically its default unset value) 0xBA settles at 0x01.

It is also same for my laptop, 0xC1 is affects/controls the other three values.

but if i set 0xC1 to 0x00 both 0xBA and 0xC1 stay at 0x00 (until timer value reach to 0) for gpu power i enabled nvidia-powerd and my gpu power can be get over 80 by automatically.

alou-S commented 1 year ago

I have discovered a new sysfs attribute, /sys/firmware/acpi/platform_profile. Setting it to performance seems to unlock State 0x00 and my total system power can reach upto 160Watts. Probably will update this into my Arch Wiki article later.

Not only does allow 0xBA to reach 0x00 it also sets 0x95 accordingly (0x31 for performance 0x50 for cool etc)