Эх сурвалжийг харах

Revert to old init order for host driver (#15029)

* Partially revert 14888
Joel Challis 3 жил өмнө
parent
commit
634e42b2b4

+ 12 - 3
quantum/main.c

@@ -19,11 +19,21 @@
 void platform_setup(void);
 
 void protocol_setup(void);
-void protocol_init(void);
+void protocol_pre_init(void);
+void protocol_post_init(void);
 void protocol_pre_task(void);
 void protocol_post_task(void);
 
-// Bodge as refactoring vusb sucks....
+// Bodge as refactoring this area sucks....
+void protocol_init(void) __attribute__((weak));
+void protocol_init(void) {
+    protocol_pre_init();
+
+    keyboard_init();
+
+    protocol_post_init();
+}
+
 void protocol_task(void) __attribute__((weak));
 void protocol_task(void) {
     protocol_pre_task();
@@ -44,7 +54,6 @@ int main(void) {
     keyboard_setup();
 
     protocol_init();
-    keyboard_init();
 
     /* Main loop */
     while (true) {

+ 3 - 3
tmk_core/protocol/chibios/chibios.c

@@ -140,7 +140,7 @@ void protocol_setup(void) {
     // chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);
 }
 
-void protocol_init(void) {
+void protocol_pre_init(void) {
     /* Init USB */
     usb_event_queue_init();
     init_usb_driver(&USB_DRIVER);
@@ -173,10 +173,10 @@ void protocol_init(void) {
     wait_ms(50);
 
     print("USB configured.\n");
-
-    host_set_driver(driver);
 }
 
+void protocol_post_init(void) { host_set_driver(driver); }
+
 void protocol_pre_task(void) {
     usb_event_queue_task();
 

+ 3 - 3
tmk_core/protocol/lufa/lufa.c

@@ -1072,7 +1072,7 @@ void protocol_setup(void) {
     usb_device_state_init();
 }
 
-void protocol_init(void) {
+void protocol_pre_init(void) {
     setup_usb();
     sei();
 
@@ -1094,10 +1094,10 @@ void protocol_init(void) {
 #else
     USB_USBTask();
 #endif
-
-    host_set_driver(&lufa_driver);
 }
 
+void protocol_post_init(void) { host_set_driver(&lufa_driver); }
+
 void protocol_pre_task(void) {
 #if !defined(NO_USB_STARTUP_CHECK)
     if (USB_DeviceState == DEVICE_STATE_Suspended) {

+ 3 - 2
tmk_core/protocol/vusb/protocol.c

@@ -113,12 +113,13 @@ void protocol_setup(void) {
 #endif
 }
 
-void protocol_init(void) {
+void protocol_pre_init(void) {
     setup_usb();
     sei();
+}
 
+void protocol_post_init(void) {
     host_set_driver(vusb_driver());
-
     wait_ms(50);
 }