Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [OS Detection] Improve MacOS detection (#24708) | Drashna Jaelre | 10 days | 1 | -1/+1 |
| | |||||
* | [Bug] Fix compiliation issues with OS Detection (#24502) | Drashna Jaelre | 2024-10-19 | 1 | -1/+1 |
| | |||||
* | [Core] `usb_device_state`: consolidate usb state handling across ↵ | Stefan Kerkmann | 2024-10-18 | 1 | -13/+13 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implementations (#24258) * usb_device_state: add idle_rate, led and protocol Previously all usb drivers and platform implementations (expect for our oddball atsam) tracked the same two global variables: - keyboard_protocol: to indicate if we are in report or boot protocol - keyboard_idle: for the idle_rate of the keyboard endpoint And a local variable that was exposed trough some indirection: - keyboard_led_state: for the currently set indicator leds (caps lock etc.) These have all been moved into the usb_device_state struct wich is accessible by getters and setters. This reduces code duplication and centralizes the state management across platforms and drivers. Signed-off-by: Stefan Kerkmann <[email protected]> * usb_device_state: reset protocol on reset The usb hid specification section 7.2.6 states: When initialized, all devices default to report protocol. However the host should not make any assumptions about the device’s state and should set the desired protocol whenever initializing a device. Thus on reset we should always do exactly that. Signed-off-by: Stefan Kerkmann <[email protected]> * keyboards: fix oversize warnings Signed-off-by: Stefan Kerkmann <[email protected]> --------- Signed-off-by: Stefan Kerkmann <[email protected]> | ||||
* | Tweak OS detect, add OS_DETECTION_SINGLE_REPORT (#24379) | Andre Brait | 2024-10-06 | 1 | -21/+33 |
| | | | | | | | | | | | | | | | | | | | | | | | | | * Default OS_DETECTION_DEBOUNCE bumped from 200ms to 250ms * Add OS_DETECTION_SINGLE_REPORT to prevent undesired multiple reports * Prevents random stability issues on ARM MacBooks after switching via KVM * Works for every device I could test, including ARM MacBooks * Disabled by default to keep current behavior * Add Troubleshooting section on documentation * Tweak reset logic to prevent a freeze with some KVMs The USB stack on ARM MacBooks is more similar to that of iOS and, for some reason, it seems to like sending packets that influence the OS detection and results in a second OS_MACOS report being sent at a random period of time after plugging the keyboard back. This does not always happen and the consequences of this vary based on what the user is doing in the callback, but since this is not obvious and it's hard to debug, I've decided to add a flag for those affected by such issue. The stability issue I had in mine was a combination of factors and I found the actual cause being my own bad math when changing the default layer, but this change alone is also confirmed to fix it. Lastly, soem KVMs seem to leave the USB controlled in a suspended state when cold-booting Windows, meaning the keyboard would hang and the reset logic would not work. This tunes it so that it can get out of such state. Also retested for compatibility with my old KVM to ensure the logic works for both. | ||||
* | OS Detection - Entire file should not be wrapped with ifdef (#23108) | Joel Challis | 2024-02-19 | 1 | -38/+32 |
| | |||||
* | [Core] Add OS detection callbacks (#21777) | Andre Brait | 2024-02-17 | 1 | -50/+120 |
| | |||||
* | Make "detected_host_os()" available on the SLAVE side of the split keyboard ↵ | ngs-ch | 2023-04-04 | 1 | -19/+26 |
| | | | | | | | (#19854) Co-authored-by: ngs.ch <ngs.ch> Co-authored-by: Drashna Jaelre <[email protected]> | ||||
* | Detect host OS based on USB fingerprint (#18463) | Ruslan Sayfutdinov | 2022-12-09 | 1 | -0/+129 |
Co-authored-by: Drashna Jaelre <[email protected]> Co-authored-by: Nick Brassel <[email protected]> |