hci_serdev.c (91de76e661a266731fc2889a398ad1694df9d523) hci_serdev.c (2064ee332e4c1b7495cf68b84355c213d8fe71fd)
1/*
2 * Bluetooth HCI serdev driver lib
3 *
4 * Copyright (C) 2017 Linaro, Ltd., Rob Herring <robh@kernel.org>
5 *
6 * Based on hci_ldisc.c:
7 *
8 * Copyright (C) 2000-2001 Qualcomm Incorporated

--- 171 unchanged lines hidden (view full) ---

180 else if (hu->proto->oper_speed)
181 speed = hu->proto->oper_speed;
182 else
183 speed = 0;
184
185 if (hu->proto->set_baudrate && speed) {
186 err = hu->proto->set_baudrate(hu, speed);
187 if (err)
1/*
2 * Bluetooth HCI serdev driver lib
3 *
4 * Copyright (C) 2017 Linaro, Ltd., Rob Herring <robh@kernel.org>
5 *
6 * Based on hci_ldisc.c:
7 *
8 * Copyright (C) 2000-2001 Qualcomm Incorporated

--- 171 unchanged lines hidden (view full) ---

180 else if (hu->proto->oper_speed)
181 speed = hu->proto->oper_speed;
182 else
183 speed = 0;
184
185 if (hu->proto->set_baudrate && speed) {
186 err = hu->proto->set_baudrate(hu, speed);
187 if (err)
188 BT_ERR("%s: failed to set baudrate", hdev->name);
188 bt_dev_err(hdev, "Failed to set baudrate");
189 else
190 serdev_device_set_baudrate(hu->serdev, speed);
191 }
192
193 if (hu->proto->setup)
194 return hu->proto->setup(hu);
195
196 if (!test_bit(HCI_UART_VND_DETECT, &hu->hdev_flags))
197 return 0;
198
199 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL,
200 HCI_INIT_TIMEOUT);
201 if (IS_ERR(skb)) {
189 else
190 serdev_device_set_baudrate(hu->serdev, speed);
191 }
192
193 if (hu->proto->setup)
194 return hu->proto->setup(hu);
195
196 if (!test_bit(HCI_UART_VND_DETECT, &hu->hdev_flags))
197 return 0;
198
199 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL,
200 HCI_INIT_TIMEOUT);
201 if (IS_ERR(skb)) {
202 BT_ERR("%s: Reading local version information failed (%ld)",
203 hdev->name, PTR_ERR(skb));
202 bt_dev_err(hdev, "Reading local version info failed (%ld)",
203 PTR_ERR(skb));
204 return 0;
205 }
206
207 if (skb->len != sizeof(*ver)) {
204 return 0;
205 }
206
207 if (skb->len != sizeof(*ver)) {
208 BT_ERR("%s: Event length mismatch for version information",
209 hdev->name);
208 bt_dev_err(hdev, "Event length mismatch for version info");
210 }
211
212 kfree_skb(skb);
213 return 0;
214}
215
216/** hci_uart_write_wakeup - transmit buffer wakeup
217 * @serdev: serial device

--- 152 unchanged lines hidden ---
209 }
210
211 kfree_skb(skb);
212 return 0;
213}
214
215/** hci_uart_write_wakeup - transmit buffer wakeup
216 * @serdev: serial device

--- 152 unchanged lines hidden ---