diff options
Diffstat (limited to 'src/transport/mtp_usb_driver.c')
-rw-r--r-- | src/transport/mtp_usb_driver.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/transport/mtp_usb_driver.c b/src/transport/mtp_usb_driver.c index 6fde025..a856151 100644 --- a/src/transport/mtp_usb_driver.c +++ b/src/transport/mtp_usb_driver.c @@ -23,17 +23,26 @@ static const mtp_usb_driver_t *usb_driver; /* * FUNCTIONS */ -mtp_bool _transport_init_usb_device(void) +mtp_bool _transport_select_driver(void) { if (access(MTP_DRIVER_PATH, F_OK) == 0) { usb_driver = &mtp_usb_driver_slp; - } else if (access(MTP_EP0_PATH, F_OK) == 0 || sd_listen_fds(0) >= 4) { + DBG("SLP driver selected"); + return TRUE; + } + + if (access(MTP_EP0_PATH, F_OK) == 0 || sd_listen_fds(0) >= 4) { usb_driver = &mtp_usb_driver_ffs; - } else { - ERR("No suport for USB gadgets in kernel"); - return FALSE; + DBG("FFS driver selected"); + return TRUE; } + ERR("No suport for USB gadgets in kernel"); + return FALSE; +} + +mtp_bool _transport_init_usb_device(void) +{ return usb_driver->transport_init_usb_device(); } |