return status;
}
-#ifdef USB_FSERIAL_INCLUDED
-
-static void
-gser_old_unbind(struct usb_configuration *c, struct usb_function *f)
-{
- usb_free_all_descriptors(f);
- kfree(func_to_gser(f));
-}
-
-/**
- * gser_bind_config - add a generic serial function to a configuration
- * @c: the configuration to support the serial instance
- * @port_num: /dev/ttyGS* port this interface will use
- * Context: single threaded during gadget setup
- *
- * Returns zero on success, else negative errno.
- */
-int __init gser_bind_config(struct usb_configuration *c, u8 port_num)
-{
- struct f_gser *gser;
- int status;
-
- /* allocate and initialize one new instance */
- gser = kzalloc(sizeof *gser, GFP_KERNEL);
- if (!gser)
- return -ENOMEM;
-
- gser->port_num = port_num;
-
- gser->port.func.name = "gser";
- gser->port.func.strings = gser_strings;
- gser->port.func.bind = gser_bind;
- gser->port.func.unbind = gser_old_unbind;
- gser->port.func.set_alt = gser_set_alt;
- gser->port.func.disable = gser_disable;
-
- status = usb_add_function(c, &gser->port.func);
- if (status)
- kfree(gser);
- return status;
-}
-
-#else
-
static void gser_free_inst(struct usb_function_instance *f)
{
struct f_serial_opts *opts;
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Al Borchers");
MODULE_AUTHOR("David Brownell");
-
-#endif