Commit Graph

529 Commits

Author SHA1 Message Date
73c6bd986d main: Use unsigned modulo
Explicitly affix the literal with `U` so SDCC will directly call
`moduint()` instead of `modsint()`.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
d99ea41259 power: Use u8/u16 for loop index
Use u8/u16 instead of i16 as the value will never be negative and the
bounds are known at compile time.

Use a decrementing loop as SDCC generates more efficient code.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
37fa06ebc8 parallel: Use u16 for data length
The length will never be negative. Change it from i16 to u16 so
SDCC will generate more efficient code.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
5599c02e83 keymap: Use u8 for array access
The index will never be negative and will never exceed 255. Change them
from i16 to u8 so SDCC will generate more efficient code.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
458cb000f3 kbscan: Use u8 for array access
The index will never be negative and will never exceed 255. Change them
from i16 to u8 so SDCC will generate more efficient code.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
571316a4ea kbled: Use u8 for array access
The index will never be negative and will never exceed 255. Change them
from i16 to u8 so SDCC will generate more efficient code.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
f27d6350f2 kbc: Use u16 for timeout
The timeout will never be negative.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
2a3830fb57 i2c: Use u16 for data length
The length will never be negative.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
784202383e fan: Use u8 for array access
The index will never be negative and will never exceed 255. Change them
from i16 to u8 so SDCC will generate more efficient code.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-08-02 14:37:08 -06:00
99af8a35f5 Use explicitly sized types from stdint
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>
2021-08-02 07:46:44 -06:00
38b2a628f9 gaze16-3050: Correct charger input current
Per the charger for the 3050 variants:

    DC OUTPUT (输出/輸出): 19.5V⎓7.7A 150W

The 3060 charger does list 9.23A.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-31 06:15:05 -06:00
ff53939a56 Add gaze16 2021-07-20 10:49:08 -06:00
2720bb9037 Use PME virtual wire for suspend/resume 2021-07-20 10:49:08 -06:00
90057df94f Change repetitive prints from DEBUG to TRACE 2021-07-20 10:49:08 -06:00
913b0dfc44 Expose pnp_read and pnp_write 2021-07-20 10:49:08 -06:00
9aab239f0a keyboard: Set scroll lock in default layouts
Not added to 14in_83 as it is not printed on the key.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-19 18:20:49 -06:00
701adb2f27 keymap: Define scroll lock
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-19 18:20:49 -06:00
146f2d2b4a Implement scancode buffer 2021-07-19 14:52:07 -06:00
e86e18d4b1 delay: Use u8, decrementing loop
Use u8 instead of i16 as a delay can never be negative and should never
block for a long period of time.

Use a decrementing loop as SDCC generates more efficient code.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-19 06:48:16 -06:00
f9e4e25b05 ec/it*: Merge remaining ITE EC files
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-16 13:34:56 -06:00
851221da61 ec/it*: Merge all identical ITE EC files
Most of the code is the same between IT8587E and IT5570E.

Identical files were detected with:

    diff -rs src/ec/it8587e/ src/ec/it5570e/ | egrep '^Files .+ and .+ are identical$'

Then manually moved from one variant and deleted from the other.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-16 13:34:56 -06:00
c7fafe0103 board.c: Remove unused includes/globals
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 08:02:55 -06:00
92c8f8f3d1 lemp9: Remove duplicate setting of XLP_OUT
XLP_OUT is already set in power_event().

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 08:02:55 -06:00
1fc832ca94 Enable POST codes in EC init instead of per-board
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 07:37:40 -06:00
d1db553e8c system76/*: Call EC function to read POST codes
Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 07:37:40 -06:00
f8d81a1e1b ec/it5570e: Add function to read POST codes
Logic for reading port 0x80/0x81 is common to the IT5570E.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 07:37:40 -06:00
43651cf2c2 ec/it*: Remove vendor string from signature
Per the specs, a 16-byte signature is stored at 0x40. All proprietary EC
ROMs store a space-padded 16-byte vendor string at 0x50, but it isn't
required.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 07:36:27 -06:00
a8229d9e62 Move power limit functions to common board code
Logic for changing power limit is the same for all boards with GPUs. It
is still called from board_event() instead of in power_event() to
maintain the current behavior of checking every main cycle.

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 07:35:52 -06:00
3f446e5c6e Move eSPI files to board common code
The eSPI logic is the same for all TGL boards using it. None of it is
moved to IT5570E due to the call to power_cpu_reset().

Signed-off-by: Tim Crawford <tcrawford@system76.com>
2021-07-09 07:34:51 -06:00
8ea0403850 Smooth fan speed changes (#190)
* SMOOTH_FANS, SMOOTH_FANS_UP, SMOOTH_FANS_DOWN build flags to smooth fan speed changes.
Defaults 40, set SMOOTH_FANS=0 to disable and keep sharp fan speed changes

* fix for ACPI CPU temperature

* allow for a floor to be set for fan smoothing and specifically configure oryp6/7 to start smoothing at 25% to mitigate fan buzzing below 25%

* update default config values for fans

* update all devices to use defaults for heatup, cooldown, update galp5 fan curves

* Decrease default cooldown time from 20 to 10

Co-authored-by: Jacob Kauffmann <jacob@system76.com>
2021-06-14 14:22:29 -06:00
df469a9eea Reduce copying of keyboard layouts 2021-06-04 16:22:10 -06:00
4742fd9742 Fix adding src/board/system76/common headers to INCLUDE 2021-06-04 16:22:10 -06:00
b3b2a312b7 Define GPCRn values in EC header 2021-06-03 09:48:55 -06:00
1b539e1206 Make touchpad access non-blocking 2021-05-24 19:02:47 -06:00
532219c3f8 Allow battery thresholds to be set in config.mk
The start/end thresholds are user-configurable values. This will allow
us to override these with profile values if desired.
2021-05-14 15:55:26 -06:00
76e02c9514 Set battery charging thresholds in common.mk
Battery threshold control is entirely software-defined and does not
depend on any board-specific behavior.
2021-05-14 15:55:26 -06:00
285d622fbc kbc: Reduce timeout from 10ms to 1ms
Fix ACPI timeout and delay on S3 resume when holding a key.

A timeout greater than 1ms results in the excessive delay (~10s) still
occurring on an oryp5 (IT8587).
2021-05-14 15:06:50 -06:00
4963e04a83 Reindent files using spaces 2021-05-07 12:44:48 -06:00
720af4b2b0 Use BIT macro
Mostly done with the cocci script. macro.h was then added manually.
2021-05-07 11:24:25 -06:00
606ba01b48 default to fan syncing but support disabling fan syncing with SYNC_FANS=0 build flag 2021-05-01 06:33:40 -06:00
f0c42f5839 Sync dGPU and PECI fans (at highest requested duty) 2021-05-01 06:33:40 -06:00
16778e4a41 Report all keys as released when lid is closed 2021-04-02 13:38:28 -06:00
a04d353096 Fix fan_max keeping fan on when in S0iX 2021-04-02 13:38:28 -06:00
2401fcc50d oryp6, oryp7: Fix buzzing at lowest fan speed 2021-03-16 18:51:55 -06:00
0017450cbb Add LED_SAVE command 2021-03-16 10:33:46 -06:00
66a970fa51 oryp6, oryp7: Improved fan curve for video chat 2021-03-08 15:54:19 -07:00
2ef4cd7bbd Add matrix command 2021-03-01 11:50:31 -07:00
c931eb4eef Do not repeat K_FAN_TOGGLE 2021-02-26 15:51:47 -07:00
67e143178d Always notify OS of SCI when pmc_sci is called 2021-02-26 15:51:47 -07:00
b11bc64bba tool: API and CLI for LED matrix mode 2021-02-26 12:18:02 -07:00