static int hci_uart_set_proto(struct hci_uart *hu, int id) { const struct hci_uart_proto *p; int err; p = hci_uart_get_proto(id); if (!p) return -EPROTONOSUPPORT; err = p->open(hu); if (err) return err; hu->proto = p; set_bit(HCI_UART_PROTO_READY, &hu->flags); err = hci_uart_register_dev(hu); if (err) { clear_bit(HCI_UART_PROTO_READY, &hu->flags); p->close(hu); return err; } return 0; }
static int hci_uart_set_proto(struct hci_uart *hu, int id) { struct hci_uart_proto *p; int err; p = hci_uart_get_proto(id); if (!p) return -EPROTONOSUPPORT; err = p->open(hu); if (err) return err; hu->proto = p; err = hci_uart_register_dev(hu); if (err) { p->close(hu); return err; } return 0; }
static int hci_uart_set_proto(struct hci_uart *hu, int id) { struct hci_uart_proto *p; int err; p = hci_uart_get_proto(id); if (!p) return -EPROTONOSUPPORT; //diag_printf("hci_uart_set_proto02,p=%x\n",p); err = p->open(hu); if (err) return err; hu->proto = p; //diag_printf("open h4 success\n"); err = hci_uart_register_dev(hu); if (err) { p->close(hu); return err; } return 0; }