Fan noise is one of the top complaints reported. The existing
interpolation and smoothing logic has not sufficiently addressed the
issues with fans changing speeds too quickly in response to rapid
changes in thermals (particularly from PECI).
This behavior can be observed by with very basic tasks, such as:
- Powering on a system and logging into GNOME
- Starting a GUI application such as Firefox
Replace them with a fixed step update per event interval. Fans now have
a maximum amount they change change over time (3.9%/sec) as they move
towards a target duty.
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Replace hard-coded PWM channels with defines so the second fan on darp10
can be handled like the second fan on units with a dGPU.
Signed-off-by: Tim Crawford <tcrawford@system76.com>
SDCC 4.3.3 (terribly) reports this as an error:
src/board/system76/common/smfi.c:244: error 110: conditional flow changed by optimizer: so said EVELYN the modified DOG
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Update .clang-format for LLVM 14.0, available on Ubuntu 22.04.
There is still plenty that clang-format sucks at or does wrong, so
either add some more blocks to disable it, or just put up with it.
Signed-off-by: Tim Crawford <tcrawford@system76.com>
Replace bare int types with stdint types. This was done with:
grep -rwl 'int' src/ | xargs sed -i 's/\<int\>/int16_t/g'
grep -rwl 'unsigned long' src/ | xargs sed -i 's/\<unsigned long\>/uint32_t/g'
grep -rwl 'unsigned char' src/ | xargs sed -i 's/\<unsigned char\>/uint8_t/g'
Then reverted for *main(), putchar(), and getchar().
The Arduino declarations for parallel_main() were also corrected to
match their definitions.
SDCC does *not* generate the same code in all instances, due to `int`
being treated different than `short int`.
Signed-off-by: Tim Crawford <tcrawford@system76.com>
* Add addw2 board
* Set charge params and update gpio.h
* Set VGA fan to 100% when entering scratch rom
* Implement keyboard LEDs
* Turn off keyboard LEDs in gpio defaults
* Default airplane mode LED to off
* Enable GPU power and fan control
* Add NVIDIA GPU power and temp to power.csv
* Add NVIDIA GPU fan value to power.sh
* Move GPU init back to coreboot
* Do not turn on GPU fan if GPU is off
* Show POST codes
* Add timestamps to console_external
* Accept port 81 cycles
* Move setting RSTS into ec_init
* Move post code debugging to system76/common
* Move some GPIO init from system76/common to boards
* Make some power signals optional
* Remove POST code support - it only works on IT5570
* Move configuration for battery into board.mk
* lemp9: remove tcpm code
* Move touchpad to its own module
* Add kbled_reset to all platforms, move items to run on CPU reset to a function
* Add defines for battery and charger address
* Add I2C_0 export to it5570e
* Move common system76 board functions into src/board/system76/common