Compare commits

...
4 Commits
Author SHA1 Message Date
Drashna Jaelre 32ff7be266 Fix RG Sleep issues for Teensy Controllers
Appearenly, teensy controllers have some issues with waking up.  If the rgblight is called "too soon", it will cause the controller to lock up, intermittently. Adding a 10 ms
delay seems to fix this issue, as it lets it have enough time to handle things properly.

This has been tested extensively on my Ergodox EZ, and can be seen in the @drashna userspace, under the "suspend_wakeup_init_user" function.
2018-09-11 13:05:17 -07:00
Dean Camera df8e417032 Fix mismatched aliased event and event stub function prototypes. 2018-09-11 12:52:57 -07:00
Dean Camera c7e1b53913 Remove unneccesary ATTR_CONST from stub functions (thanks to NicoHood). 2018-09-11 12:52:57 -07:00
Miguel Garcia Rodriguez e9a67f8fde Fix installation for linux finding ID:fedora in os_release 2018-09-10 20:52:34 -07:00
16 changed files with 42 additions and 14 deletions

No files matched your search

@@ -231,12 +231,14 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
*/ */
bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0; bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
(void)HostReady;
if (CDCInterfaceInfo == &VirtualSerial1_CDC_Interface) if (CDCInterfaceInfo == &VirtualSerial1_CDC_Interface)
{ {
// CDC interface 1's host is ready to send/receive data // CDC interface 1's host is ready to send/receive data if HostReady is true
} }
else else
{ {
// CDC interface 2's host is ready to send/receive data // CDC interface 2's host is ready to send/receive data if HostReady is true
} }
} }
@@ -199,4 +199,6 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
in the pending data from the USB endpoints. in the pending data from the USB endpoints.
*/ */
bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0; bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
(void)HostReady;
} }
@@ -238,6 +238,8 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
in the pending data from the USB endpoints. in the pending data from the USB endpoints.
*/ */
bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0; bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
(void)HostReady;
} }
/** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed. /** Mass Storage class driver callback function the reception of SCSI commands from the host, which must be processed.
@@ -279,4 +279,6 @@ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t *const C
in the pending data from the USB endpoints. in the pending data from the USB endpoints.
*/ */
bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0; bool HostReady = (CDCInterfaceInfo->State.ControlLineStates.HostToDevice & CDC_CONTROL_LINE_OUT_DTR) != 0;
(void)HostReady;
} }
@@ -188,7 +188,7 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* const AudioIn
return true; return true;
} }
void Audio_Device_Event_Stub(void) void Audio_Device_Event_Stub(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
{ {
} }
@@ -377,7 +377,7 @@
#if !defined(__DOXYGEN__) #if !defined(__DOXYGEN__)
/* Function Prototypes: */ /* Function Prototypes: */
#if defined(__INCLUDE_FROM_AUDIO_DEVICE_C) #if defined(__INCLUDE_FROM_AUDIO_DEVICE_C)
void Audio_Device_Event_Stub(void) ATTR_CONST; void Audio_Device_Event_Stub(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
void EVENT_Audio_Device_StreamStartStop(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) void EVENT_Audio_Device_StreamStartStop(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(Audio_Device_Event_Stub); ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(Audio_Device_Event_Stub);
@@ -353,10 +353,15 @@ static int CDC_Device_getchar_Blocking(FILE* Stream)
} }
#endif #endif
void CDC_Device_Event_Stub(void) void CDC_Device_Event_Stub(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{ {
} }
void CDC_Device_Event_Stub_2(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t _1)
{
CDC_Device_Event_Stub(CDCInterfaceInfo);
}
#endif #endif
@@ -362,7 +362,8 @@
static int CDC_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1); static int CDC_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
#endif #endif
void CDC_Device_Event_Stub(void) ATTR_CONST; void CDC_Device_Event_Stub(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
void CDC_Device_Event_Stub_2(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t _1);
void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub); ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
@@ -370,7 +371,7 @@
ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub); ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Device_Event_Stub);
void EVENT_CDC_Device_BreakSent(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, void EVENT_CDC_Device_BreakSent(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
const uint8_t Duration) ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) const uint8_t Duration) ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1)
ATTR_ALIAS(CDC_Device_Event_Stub); ATTR_ALIAS(CDC_Device_Event_Stub_2);
#endif #endif
#endif #endif
@@ -305,7 +305,7 @@ static int PRNT_Device_getchar_Blocking(FILE* Stream)
} }
#endif #endif
void PRNT_Device_Event_Stub(void) void PRNT_Device_Event_Stub(USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo)
{ {
} }
@@ -273,7 +273,7 @@
static int PRNT_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1); static int PRNT_Device_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
#endif #endif
void PRNT_Device_Event_Stub(void) ATTR_CONST; void PRNT_Device_Event_Stub(USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo);
void EVENT_PRNT_Device_SoftReset(USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo) void EVENT_PRNT_Device_SoftReset(USB_ClassInfo_PRNT_Device_t* const PRNTInterfaceInfo)
ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(PRNT_Device_Event_Stub); ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(PRNT_Device_Event_Stub);
@@ -503,7 +503,7 @@ static int CDC_Host_getchar_Blocking(FILE* Stream)
} }
#endif #endif
void CDC_Host_Event_Stub(void) void CDC_Host_Event_Stub(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
{ {
} }
@@ -360,7 +360,7 @@
static int CDC_Host_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1); static int CDC_Host_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1);
#endif #endif
void CDC_Host_Event_Stub(void) ATTR_CONST; void CDC_Host_Event_Stub(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo);
void EVENT_CDC_Host_ControLineStateChanged(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo) void EVENT_CDC_Host_ControLineStateChanged(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo)
ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Host_Event_Stub); ATTR_WEAK ATTR_NON_NULL_PTR_ARG(1) ATTR_ALIAS(CDC_Host_Event_Stub);
+9
View File
@@ -37,3 +37,12 @@ void USB_Event_Stub(void)
} }
void USB_Event_Stub_2(const uint8_t _1)
{
USB_Event_Stub();
}
void USB_Event_Stub_3(const uint8_t _1, const uint8_t _2)
{
USB_Event_Stub();
}
+4 -2
View File
@@ -332,19 +332,21 @@
/* Function Prototypes: */ /* Function Prototypes: */
#if defined(__INCLUDE_FROM_EVENTS_C) #if defined(__INCLUDE_FROM_EVENTS_C)
void USB_Event_Stub(void); void USB_Event_Stub(void);
void USB_Event_Stub_2(const uint8_t _1);
void USB_Event_Stub_3(const uint8_t _1, const uint8_t _2);
#if defined(USB_CAN_BE_BOTH) #if defined(USB_CAN_BE_BOTH)
void EVENT_USB_UIDChange(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub); void EVENT_USB_UIDChange(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
#endif #endif
#if defined(USB_CAN_BE_HOST) #if defined(USB_CAN_BE_HOST)
void EVENT_USB_Host_HostError(const uint8_t ErrorCode) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub); void EVENT_USB_Host_HostError(const uint8_t ErrorCode) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub_2);
void EVENT_USB_Host_DeviceAttached(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub); void EVENT_USB_Host_DeviceAttached(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_Host_DeviceUnattached(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub); void EVENT_USB_Host_DeviceUnattached(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_Host_DeviceEnumerationComplete(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub); void EVENT_USB_Host_DeviceEnumerationComplete(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode,
const uint8_t SubErrorCode) const uint8_t SubErrorCode)
ATTR_WEAK ATTR_ALIAS(USB_Event_Stub); ATTR_WEAK ATTR_ALIAS(USB_Event_Stub_3);
void EVENT_USB_Host_StartOfFrame(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub); void EVENT_USB_Host_StartOfFrame(void) ATTR_WEAK ATTR_ALIAS(USB_Event_Stub);
#endif #endif
+3
View File
@@ -189,6 +189,9 @@ void suspend_wakeup_init(void)
#endif #endif
led_set(host_keyboard_leds()); led_set(host_keyboard_leds());
#if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE) #if defined(RGBLIGHT_SLEEP) && defined(RGBLIGHT_ENABLE)
#ifdef BOOTLOADER_TEENSY
wait_ms(10);
#endif
rgblight_enable_noeeprom(); rgblight_enable_noeeprom();
#ifdef RGBLIGHT_ANIMATIONS #ifdef RGBLIGHT_ANIMATIONS
rgblight_timer_enable(); rgblight_timer_enable();
+1 -1
View File
@@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
if grep ID /etc/os-release | grep -q rhel; then if grep ID /etc/os-release | grep -qE "rhel|fedora"; then
# RPM based OS # RPM based OS
sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc \ sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc \
avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs \ avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs \