Commit Graph

151 Commits

Author SHA1 Message Date
QMK Bot
91d129ca45 Merge remote-tracking branch 'origin/develop' into xap 2023-06-26 21:56:42 +00:00
Stefan Kerkmann
a87c74ebe1
[Bug] Fix non-functional S3 wakeup / resume from suspense (#19780)
* Update ChibiOS-Contrib for USB suspend fixes

* Remove S3 wakup workaround

ChibiOS OTGv1 driver has a remote wakeup bug that prevents the device to
resume it's operation. 02516cbc24 
introduced a hotfix that forcefully restarted the usb driver as a workaround. 
This workaround broke multiple boards which do not use this driver / 
peripheral. With the update of ChibiOS this hotfix is now obsolete.

* Remove restart_usb_driver overrides

they are no longer necessary as the workaround is not needed anymore
for stm32f4

* Remove unused RP_USB_USE_SOF_INTR defines

The SOF interrupt is enabled dynamically by the RP2040 usb driver
2023-06-26 23:55:52 +02:00
QMK Bot
78680e1f09 Merge remote-tracking branch 'origin/develop' into xap 2023-06-26 08:37:34 +00:00
Purdea Andrei
3ebdb1258b
Chibios USB: Take into account if host wants remote wakeup or not (#21287)
According to the USB 2.0 spec, remote wakeup should be disabled by
default, and should only be enabled if the host explicitly requests
it. The chibios driver code already takes care of storing this
information, and returning it on GET_STATUS requests. However our
application code has been ignoring it so far.

This is a USB compliance issue, but also a bug that causes trouble
in some cases: On RP2040 targets this has been causing problems if
a key is held down while the keyboard is plugged in. The keyboard
would fail to enumerate until all keys are released. With this
change that behavior is fixed.

Note that for LUFA targets this is already done correctly.
2023-06-26 10:36:32 +02:00
QMK Bot
ff8d9fa382 Merge remote-tracking branch 'origin/develop' into xap 2023-06-22 14:07:41 +00:00
Ryan
aad5746682
Move protocol makefiles into their respective folders (#21332)
* Move protocol makefiles into their respective folders

* Fix USB-USB converter
2023-06-22 15:07:28 +01:00
QMK Bot
84d5af3157 Merge remote-tracking branch 'origin/develop' into xap 2023-01-17 01:55:04 +00:00
Ryan
7acc3f4449
ChibiOS: Consolidate report sending code (#19607) 2023-01-16 17:54:26 -08:00
zvecr
2f7be506de Remove assumption on XAP interface number 2023-01-16 02:03:41 +00:00
QMK Bot
df2a4556b6 Merge remote-tracking branch 'origin/develop' into xap 2023-01-15 23:30:12 +00:00
Sergey Vlasov
955829bfd0
Fix joystick build for ChibiOS (#19602)
`joystick_report_t` was renamed to `report_joystick_t`, but apparently
one place in the code was missed.
2023-01-15 23:29:29 +00:00
QMK Bot
805f49299a Merge remote-tracking branch 'origin/develop' into xap 2023-01-15 08:41:36 +00:00
Ryan
a92071494a
usb_main.c: remove CH_KERNEL_MAJOR check (#19597) 2023-01-15 19:40:52 +11:00
QMK Bot
9e9e2c775a Merge remote-tracking branch 'origin/develop' into xap 2022-12-08 17:11:29 +00:00
QMK Bot
1786932d9f
[CI] Format code according to conventions (#19265) 2022-12-09 04:10:52 +11:00
QMK Bot
93e253d941 Merge remote-tracking branch 'origin/develop' into xap 2022-12-08 17:09:14 +00:00
Jack Humbert
a23333eb58
Return USB HID GET_REPORT requests (#14814)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-09 04:08:36 +11:00
QMK Bot
1af901f991 Merge remote-tracking branch 'origin/develop' into xap 2022-12-08 16:46:05 +00:00
Ruslan Sayfutdinov
85ee55ff3b
Detect host OS based on USB fingerprint (#18463)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-12-09 03:45:30 +11:00
QMK Bot
527975a37b Merge remote-tracking branch 'origin/develop' into xap 2022-12-08 15:57:08 +00:00
lokher
0d7edbbcbe
Fixed NKRO issue caused by HID_SET_PROTOCOL on Chibios platform (#17588) 2022-12-09 02:56:36 +11:00
Nick Brassel
1d0787d861
Merge remote-tracking branch 'upstream/develop' into xap 2022-11-27 04:39:46 +11:00
Ryan
1e95f7be8f
Joystick feature improvements (#19052) 2022-11-27 03:14:45 +11:00
zvecr
ff2f0d943b ChibiOS - Non blocking xap_send_base 2022-11-23 21:27:17 +00:00
QMK Bot
8c4ff20201 Merge remote-tracking branch 'origin/develop' into xap 2022-10-22 17:16:46 +00:00
Sergey Vlasov
1ea54e5052
ChibiOS USB: Add a dummy IN callback to work around LLD bugs (#18811)
In #18631 some IN notification callbacks that were doing nothing were
removed, which should be a valid thing to do (ChibiOS HAL checks the
`in_cb` and `out_cb` pointers for being non-NULL before invoking those
optional callbacks).  However, it turned out that some less popular USB
LLDs (KINETIS and MIMXRT1062) have their own checks for those pointers,
and (incorrectly) skip the ChibiOS callback handling when those pointers
are NULL, which breaks the code for the `USB_USE_WAIT` configuration
option (the waiting thread never gets resumed if the corresponding
callback pointer is NULL).

Add those dummy callbacks again (but use a single function for all of
them instead of individual ones for each endpoint); this restores the
KINETIS and MIMXRT1062 boards to the working state while the LLDs are
getting fixed.
2022-10-22 18:16:09 +01:00
QMK Bot
7bc4c16673 Merge remote-tracking branch 'origin/develop' into xap 2022-10-19 06:18:30 +00:00
Nick Brassel
f99b9ba270
Widen the ARM Cortex-M family support. Allow USB peripheral change. (#18767) 2022-10-19 17:17:49 +11:00
QMK Bot
9e93a37c5c Merge remote-tracking branch 'origin/develop' into xap 2022-10-12 23:29:25 +00:00
Ryan
2078a56369
Fix joystick functionality for ChibiOS and OTG (Blackpill) (#18631)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-10-13 10:28:49 +11:00
QMK Bot
cd1cbddd70 Merge remote-tracking branch 'origin/develop' into xap 2022-10-07 02:35:35 +00:00
Ryan
6dbbeea46a
Refactor send_extra (#18615) 2022-10-06 19:35:01 -07:00
Stefan Kerkmann
907640e40e
[Bug] XAP: Fix unaligned memory access in config blob handler and USB task loop condition (#18612)
* Fix unaligned memory access in config blob handler

data* points in the middle of an u8 array, casting this to an u16* and
dereferencing it leads to an unaligned memory access - which hardfaults
on Cortex M0 mcus e.g. RP2040s.

* Actually read until there is no more data to be read
2022-10-05 20:26:53 +01:00
QMK Bot
2ce2b84d72 Merge remote-tracking branch 'origin/develop' into xap 2022-10-04 22:19:54 +00:00
Ryan
09d3e27710
Refactor more host code (programmable button & digitizer) (#18565) 2022-10-05 09:19:12 +11:00
QMK Bot
08708002aa Merge remote-tracking branch 'origin/develop' into xap 2022-10-02 13:36:04 +00:00
Stefan Kerkmann
6f13a76530
[Core] ChibiOS: Fix USB bus disconnect handling (#18566) 2022-10-02 15:35:33 +02:00
Drashna Jael're
5db8ab38d9
Merge remote-tracking branch 'origin/develop' into xap 2022-09-29 13:30:12 -07:00
Ryan
be8907d634
Further refactoring of joystick feature (#18437) 2022-09-27 18:37:13 +10:00
QMK Bot
a1da56d6bf Merge remote-tracking branch 'origin/develop' into xap 2022-09-02 20:51:11 +00:00
Ryan
f76b55d5ad
Adjust EXTRAKEY_ENABLE ifdefs for send_extra() (#18249) 2022-09-02 21:50:36 +01:00
QMK Bot
ac46d4a756 Merge remote-tracking branch 'origin/develop' into xap 2022-09-02 19:38:58 +00:00
Ryan
09d668eb0e
Simplify extrakeys sending at the host driver level (#18230)
* Simplify extrakeys sending at the host driver level

* There are two arguments here

* Wrong syntax

* Adjust keyboards which use a custom host driver
2022-09-02 20:38:27 +01:00
QMK Bot
2c2dabb725 Merge remote-tracking branch 'origin/develop' into xap 2022-08-04 11:06:03 +00:00
Nick Brassel
543f54a483
[Core] STM32_USB_USE_OTG1 => USB_ENDPOINTS_ARE_REORDERABLE (#17647) 2022-08-04 21:05:16 +10:00
QMK Bot
f6d689a980 Merge remote-tracking branch 'origin/develop' into xap 2022-06-30 11:20:40 +00:00
Stefan Kerkmann
d717396708
[Core] Add Raspberry Pi RP2040 support (#14877)
* Disable RESET keycode because of naming conflicts

* Add Pico SDK as submodule

* Add RP2040 build support to QMK

* Adjust USB endpoint structs for RP2040

* Add RP2040 bootloader and double-tap reset routine

* Add generic and pro micro RP2040 boards

* Add RP2040 onekey keyboard

* Add WS2812 PIO DMA enabled driver and documentation

Supports regular and open-drain output configuration. RP2040 GPIOs are
sadly not 5V tolerant, so this is a bit use-less or needs extra hardware
or you take the risk to fry your hardware.

* Adjust SIO Driver for RP2040

* Adjust I2C Driver for RP2040

* Adjust SPI Driver for RP2040

* Add PIO serial driver and documentation

* Add general RP2040 documentation

* Apply suggestions from code review

Co-authored-by: Nick Brassel <nick@tzarc.org>

Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-06-30 13:19:27 +02:00
QMK Bot
38b540d233 Merge remote-tracking branch 'origin/develop' into xap 2022-05-14 22:17:47 +00:00
Stefan Kerkmann
4d107feca9
Check for ongoing transfers on the OUT endpoint (#16974)
...when attempting to start a receiving USB transfer. Previously, we would
check on the IN endpoint which is the transmitting part of the USB endpoint.
This is wrong and lead to two USB transfers being started immediately
after each other in case of e.g. RAW HID endpoints:

1. When finishing an OUT transfer the low level USB driver calls the out_cb
callback, which in turn initiates another OUT transfer by calling
qmkusbDataReceived.

2. When the raw hid receive channel runs empty inside the raw_hid task,
another OUT transfer is started to potentially fill the channel again. This
happens by calling ibnotify.

Both events occur directly after each other, thus triggering the bug.
2022-05-14 23:17:14 +01:00
QMK Bot
940c53f420 Merge remote-tracking branch 'origin/develop' into xap 2022-04-22 07:49:03 +00:00