Description: Reinitialize on any libusb error. This allows g15daemon to correctly recover after suspend/resume. Author: Alexander Ponyatykh Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libusb/+bug/1357556 Forwarded: no Last-Update: 2015-05-18 =================================================================== --- a/g15daemon/main.c +++ b/g15daemon/main.c @@ -203,11 +203,10 @@ g15daemon_send_event(masterlist->current->lcd, G15_EVENT_KEYPRESS, keypresses); lastkeys = keypresses; - - }else if(retval == -ENODEV && LIBG15_VERSION>=1200) { + }else if(retval != G15_NO_ERROR && retval != G15_ERROR_TIMEOUT && LIBG15_VERSION>=1200) { + g15daemon_log(LOG_WARNING,"Keyboard error (%d).. Reinitializing\n", retval); pthread_mutex_lock(&g15lib_mutex); while((retval=re_initLibG15() != G15_NO_ERROR) && !leaving){ - g15daemon_log(LOG_WARNING,"Keyboard has gone.. Retrying\n"); sleep(1); } if(!leaving) {