fel: Detach (and reattach on exit) the awusb kernel driver if loaded
This commit is contained in:
parent
6829404a44
commit
9d30ca8e86
13
fel.c
13
fel.c
@ -278,6 +278,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
int rc;
|
||||
libusb_device_handle *handle = NULL;
|
||||
int iface_detached = -1;
|
||||
rc = libusb_init(NULL);
|
||||
assert(rc == 0);
|
||||
|
||||
@ -301,6 +302,13 @@ int main(int argc, char **argv)
|
||||
exit(1);
|
||||
}
|
||||
rc = libusb_claim_interface(handle, 0);
|
||||
#if defined(__linux__)
|
||||
if (rc != LIBUSB_SUCCESS) {
|
||||
libusb_detach_kernel_driver(handle, 0);
|
||||
iface_detached = 0;
|
||||
rc = libusb_claim_interface(handle, 0);
|
||||
}
|
||||
#endif
|
||||
assert(rc == 0);
|
||||
|
||||
while (argc > 1 ) {
|
||||
@ -345,5 +353,10 @@ int main(int argc, char **argv)
|
||||
argv+=skip;
|
||||
}
|
||||
|
||||
#if defined(__linux__)
|
||||
if (iface_detached >= 0)
|
||||
libusb_attach_kernel_driver(handle, iface_detached);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user