+static void handle_quanta(struct usbdev_data *data, struct blob_attr **tb)
+{
+ int type = LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE | LIBUSB_ENDPOINT_IN;
+
+ detach_driver(data);
+ send_control_packet(data, type, 0xff, 0, 0, 8);
+}
+
+static void handle_blackberry(struct usbdev_data *data, struct blob_attr **tb)
+{
+ int type = LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE | LIBUSB_ENDPOINT_IN;
+
+ detach_driver(data);
+ send_control_packet(data, type, 0xb1, 0x0000, 0, 8);
+ send_control_packet(data, type, 0xa9, 0x000e, 0, 8);
+}
+
+static void handle_pantech(struct usbdev_data *data, struct blob_attr **tb)
+{
+ int type = LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE | LIBUSB_ENDPOINT_OUT;
+ int val = 1;
+
+ if (tb[DATA_MODEVAL])
+ val = blobmsg_get_u32(tb[DATA_MODEVAL]);
+ detach_driver(data);
+ if (val > 1)
+ send_control_packet(data, type, 0x70, val, 0, 0);
+}
+