-
-
Notifications
You must be signed in to change notification settings - Fork 39.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollback #7967, ChibiOS thread safety #8173
Conversation
Looks like this will need to be looked at sooner rather than later, testing #7769 showed that the Qwiic OLED driver does the start->transmit pattern, so it attempts to acquire the lock twice and fails as it's not recursive. |
At this point it's likely builds for boards using the OLED after #7967 got merged are locking up. |
… in a followup PR.
Modified this PR to rollback #7967, specifically to fix the Qwiic OLED issue. Will do a new followup PR to fix all I2C usage across the platform to correctly invoke start/stop, and only perform lock acquisition in those functions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, I'd rather that the QWIIC stuff got fixed, rather than reverting.
But short term, this is okay, but long term...
* 'master' of https://github.com/qmk/qmk_firmware: (108 commits) `send_unicode_string()`: Add support for code points > 0xFFFF (qmk#8236) [Keyboard] Add Wete (qmk#8229) Improvements to extrakey HID descriptors (qmk#8156) Hineybush h87a lock indicators (qmk#8237) Add VIA support for Prime_L (qmk#8233) Hub16 - Bug removal + clean up code (qmk#8227) [Keyboard] ai03 Equinox (qmk#8224) [Keyboard] Add zfrontier/big_switch (qmk#8205) Gingham Update (qmk#8225) A proper `send_string()` for the Unicode feature (qmk#8155) Rollback PR qmk#7967 in preference of fixing I2C start/stop properly, in a followup PR. (qmk#8173) Add mouse support to SEND_STRING (qmk#8223) Add link to "Useful functions" in macro docs (qmk#7446) New functionality for cformat (qmk#7893) Update main.c (qmk#8198) format code according to conventions [skip ci] Fix QWIIC OLED for AVR (qmk#7769) VIA Support: KBD75 rev1/rev2 (qmk#8214) Update TMOv2 for new key (qmk#7759) Added custom keymap for preonic (qmk#7548) ...
* upstream/master: (26 commits) Fixed OS detection such that OSX doesn't take over the world (qmk#8248) [Keyboard] Add Prime_EXL Plus to handwired (qmk#8238) format code according to conventions [skip ci] New feature: PERMISSIVE_HOLD_PER_KEY (qmk#7994) Split - Avoid race condition during matrix_init_quantum (qmk#8235) Acheron VIA support (qmk#8204) `send_unicode_string()`: Add support for code points > 0xFFFF (qmk#8236) [Keyboard] Add Wete (qmk#8229) Improvements to extrakey HID descriptors (qmk#8156) Hineybush h87a lock indicators (qmk#8237) Add VIA support for Prime_L (qmk#8233) Hub16 - Bug removal + clean up code (qmk#8227) [Keyboard] ai03 Equinox (qmk#8224) [Keyboard] Add zfrontier/big_switch (qmk#8205) Gingham Update (qmk#8225) A proper `send_string()` for the Unicode feature (qmk#8155) Rollback PR qmk#7967 in preference of fixing I2C start/stop properly, in a followup PR. (qmk#8173) Add mouse support to SEND_STRING (qmk#8223) Add link to "Useful functions" in macro docs (qmk#7446) New functionality for cformat (qmk#7893) ...
… in a followup PR. (qmk#8173)
… in a followup PR. (qmk#8173)
… in a followup PR. (qmk#8173)
… in a followup PR. (qmk#8173)
… in a followup PR. (qmk#8173)
… in a followup PR. (qmk#8173)
Description
i2c_start
andi2c_stop
were actually only really useful for people who want to explicitly invoke ChibiOS i2c functions. With mutual exclusion enabled, there were instances ofi2c_start
->i2c_transmit
which would deadlock as the mutexes are non-recursive.This PR turnsi2c_start
andi2c_stop
into no-ops in order to maintain the previous interface, and folds thei2c_stop
functionality into the other transmission functions -- they were already effectively doingi2c_start
anyway.Modified this PR to rollback #7967, specifically to fix the Qwiic OLED issue. Will do a new followup PR to fix all I2C usage across the platform to correctly invoke start/stop, and only perform lock acquisition in those functions.
Types of Changes
Checklist