summaryrefslogtreecommitdiffstats
path: root/daemon/usb-linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/usb-linux.c')
-rw-r--r--daemon/usb-linux.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/daemon/usb-linux.c b/daemon/usb-linux.c
index 0edc557..1f70f46 100644
--- a/daemon/usb-linux.c
+++ b/daemon/usb-linux.c
@@ -53,6 +53,7 @@ static struct collection device_list;
53static struct timeval next_dev_poll_time; 53static struct timeval next_dev_poll_time;
54 54
55static int devlist_failures; 55static int devlist_failures;
56static int device_polling;
56 57
57static void usb_disconnect(struct usb_device *dev) 58static void usb_disconnect(struct usb_device *dev)
58{ 59{
@@ -214,7 +215,7 @@ static int start_rx(struct usb_device *dev)
214 return 0; 215 return 0;
215} 216}
216 217
217static int usb_discover(void) 218int usb_discover(void)
218{ 219{
219 int cnt, i, res; 220 int cnt, i, res;
220 int valid_count = 0; 221 int valid_count = 0;
@@ -393,10 +394,18 @@ void usb_get_fds(struct fdlist *list)
393 free(usbfds); 394 free(usbfds);
394} 395}
395 396
397void usb_autodiscover(int enable)
398{
399 usbmuxd_log(LL_DEBUG, "usb polling enable: %d", enable);
400 device_polling = enable;
401}
402
396static int dev_poll_remain_ms(void) 403static int dev_poll_remain_ms(void)
397{ 404{
398 int msecs; 405 int msecs;
399 struct timeval tv; 406 struct timeval tv;
407 if(!device_polling)
408 return 100000; // devices will never be polled if this is > 0
400 gettimeofday(&tv, NULL); 409 gettimeofday(&tv, NULL);
401 msecs = (next_dev_poll_time.tv_sec - tv.tv_sec) * 1000; 410 msecs = (next_dev_poll_time.tv_sec - tv.tv_sec) * 1000;
402 msecs += (next_dev_poll_time.tv_usec - tv.tv_usec) / 1000; 411 msecs += (next_dev_poll_time.tv_usec - tv.tv_usec) / 1000;
@@ -493,6 +502,7 @@ int usb_init(void)
493 usbmuxd_log(LL_DEBUG, "usb_init for linux / libusb 1.0"); 502 usbmuxd_log(LL_DEBUG, "usb_init for linux / libusb 1.0");
494 503
495 devlist_failures = 0; 504 devlist_failures = 0;
505 device_polling = 1;
496 res = libusb_init(NULL); 506 res = libusb_init(NULL);
497 //libusb_set_debug(NULL, 3); 507 //libusb_set_debug(NULL, 3);
498 if(res != 0) { 508 if(res != 0) {