static int gport_connect(struct f_gser *gser) { unsigned port_num; pr_debug("%s: transport:%s f_gser:%p gserial:%p port_num:%d\n", __func__, transport_to_str(gser->transport), gser, &gser->port, gser->port_num); port_num = gserial_ports[gser->port_num].client_port_num; switch (gser->transport) { case USB_GADGET_FSERIAL_TRANSPORT_TTY: gserial_connect(&gser->port, port_num); break; case USB_GADGET_FSERIAL_TRANSPORT_SDIO: gsdio_connect(&gser->port, port_num); break; case USB_GADGET_FSERIAL_TRANSPORT_SMD: gsmd_connect(&gser->port, port_num); break; default: pr_err("%s: Un-supported transport: %s\n", __func__, transport_to_str(gser->transport)); return -ENODEV; } return 0; }
static int gport_connect(struct f_gser *gser) { unsigned port_num; int ret; pr_debug("%s: transport: %s f_gser: %p gserial: %p port_num: %d\n", __func__, xport_to_str(gser->transport), gser, &gser->port, gser->port_num); port_num = gserial_ports[gser->port_num].client_port_num; switch (gser->transport) { case USB_GADGET_XPORT_TTY: gserial_connect(&gser->port, port_num); break; case USB_GADGET_XPORT_SDIO: gsdio_connect(&gser->port, port_num); break; case USB_GADGET_XPORT_SMD: gsmd_connect(&gser->port, port_num); break; case USB_GADGET_XPORT_HSIC: ret = ghsic_ctrl_connect(&gser->port, port_num); if (ret) { pr_err("%s: ghsic_ctrl_connect failed: err:%d\n", __func__, ret); return ret; } ret = ghsic_data_connect(&gser->port, port_num); if (ret) { pr_err("%s: ghsic_data_connect failed: err:%d\n", __func__, ret); ghsic_ctrl_disconnect(&gser->port, port_num); return ret; } break; case USB_GADGET_XPORT_HSUART: ret = ghsuart_data_connect(&gser->port, port_num); if (ret) { pr_err("%s: ghsuart_data_connect failed: err:%d\n", __func__, ret); return ret; } break; default: pr_err("%s: Un-supported transport: %s\n", __func__, xport_to_str(gser->transport)); return -ENODEV; } return 0; }