diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-05-30 19:28:19 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-05-30 19:28:19 +0200 |
commit | c90c4320a4b60fe299505d5186fb501002b0f625 (patch) | |
tree | 9392fa95859c59ebfa5d0f1a27f5e39f90d56d8b | |
parent | 5da2894852546646990c6fee47c9521143176c1a (diff) |
detach the kernel driver before mode switch
-rw-r--r-- | switch.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -7,9 +7,14 @@ enum { __DATA_MAX }; +static void detach_driver(struct usbdev_data *data) +{ + libusb_detach_kernel_driver(data->devh, data->interface); +} + static void handle_generic(struct usbdev_data *data, struct blob_attr **tb) { - fprintf(stderr, "Do generic switch!\n"); + detach_driver(data); } static void handle_huawei(struct usbdev_data *data, struct blob_attr **tb) @@ -34,11 +39,13 @@ static void handle_qisda(struct usbdev_data *data, struct blob_attr **tb) static void handle_gct(struct usbdev_data *data, struct blob_attr **tb) { + detach_driver(data); /* TODO */ } static void handle_kobil(struct usbdev_data *data, struct blob_attr **tb) { + detach_driver(data); /* TODO */ } @@ -54,6 +61,7 @@ static void handle_mobile_action(struct usbdev_data *data, struct blob_attr **tb static void handle_cisco(struct usbdev_data *data, struct blob_attr **tb) { + detach_driver(data); /* TODO */ } |