diff options
Diffstat (limited to 'drivers/bluetooth/hci_h5.c')
| -rw-r--r-- | drivers/bluetooth/hci_h5.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/bluetooth/hci_h5.c b/drivers/bluetooth/hci_h5.c index 6455bc4fb5bb..fefc37b98b4a 100644 --- a/drivers/bluetooth/hci_h5.c +++ b/drivers/bluetooth/hci_h5.c @@ -463,6 +463,8 @@ static int h5_rx_3wire_hdr(struct hci_uart *hu, unsigned char c)  	if (H5_HDR_RELIABLE(hdr) && H5_HDR_SEQ(hdr) != h5->tx_ack) {  		bt_dev_err(hu->hdev, "Out-of-order packet arrived (%u != %u)",  			   H5_HDR_SEQ(hdr), h5->tx_ack); +		set_bit(H5_TX_ACK_REQ, &h5->flags); +		hci_uart_tx_wakeup(hu);  		h5_reset_rx(h5);  		return 0;  	} @@ -936,6 +938,8 @@ static int h5_btrtl_setup(struct h5 *h5)  	err = btrtl_download_firmware(h5->hu->hdev, btrtl_dev);  	/* Give the device some time before the hci-core sends it a reset */  	usleep_range(10000, 20000); +	if (err) +		goto out_free;  	btrtl_set_quirks(h5->hu->hdev, btrtl_dev); @@ -1100,6 +1104,8 @@ static const struct of_device_id rtl_bluetooth_of_match[] = {  	  .data = (const void *)&h5_data_rtl8822cs },  	{ .compatible = "realtek,rtl8723bs-bt",  	  .data = (const void *)&h5_data_rtl8723bs }, +	{ .compatible = "realtek,rtl8723cs-bt", +	  .data = (const void *)&h5_data_rtl8723bs },  	{ .compatible = "realtek,rtl8723ds-bt",  	  .data = (const void *)&h5_data_rtl8723bs },  #endif  |