linux/drivers/bluetooth
Martin Blumenstingl b85b0ee100 Bluetooth: btrtl: add support for retrieving the UART settings
The UART settings are embedded in the config blob. This has to be parsed
to successfully initialize the Bluetooth part of the RTL8723BS (which is
an SDIO chip, but the Bluetooth part is connected via UART).

The Realtek "rtl8723bs_bt" and "rtl8723ds_bt" userspace Bluetooth UART
initialization tools (rtk_hciattach) use the following sequence:
- send H5 sync pattern (already supported by hci_h5)
- get LMP version (already supported by btrtl)
- get ROM version (already supported by btrtl)
- load the firmware and config for the current chipset (already
  supported by btrtl)
- read UART settings from the config blob (part of this patch)
- send UART settings via a vendor command to the device (which changes
  the baudrate of the device and enables or disables flow control
  depending on the config)
- change the baudrate and flow control settings on the host
- send the firmware and config blob to the device (already supported by
  btrtl)

Sending the last firmware and config blob download command
(rtl_download_cmd) fails if the UART settings are not updated
beforehand. This is presumably because the device applies the config
right after the firmware and config blob download - which means that at
this point the host is using different UART settings than the device
(which will obviously result in non-working communication).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Jeremy Cline <jeremy@jcline.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2018-08-03 13:27:46 +02:00
..
ath3k.c Bluetooth: ath3k: fix checkpatch warning 2018-02-07 09:46:09 +01:00
bcm203x.c Bluetooth: mark expected switch fall-throughs 2017-10-14 09:25:51 +02:00
bfusb.c bluetooth: bfusb: Replace GFP_ATOMIC with GFP_KERNEL in bfusb_send_frame() 2018-07-23 18:05:00 +02:00
bluecard_cs.c bluetooth: bluecard_cs: Replace GFP_ATOMIC with GFP_KERNEL in bluecard_hci_set_baud_rate() 2018-07-23 18:05:00 +02:00
bpa10x.c bluetooth: bpa10x: Replace GFP_ATOMIC with GFP_KERNEL in bpa10x_send_frame() 2018-07-23 18:05:00 +02:00
bt3c_cs.c Bluetooth: Use bt_dev_err and bt_dev_info when possible 2017-10-30 12:25:45 +02:00
btbcm.c Bluetooth: btbcm: btbcm_initialize(): Initialize hw_name to "BCM" 2018-05-18 06:37:51 +02:00
btbcm.h Bluetooth: btbcm: Allow using btbcm_initialize() for reinit 2018-05-18 06:37:51 +02:00
btintel.c Bluetooth: btintel: Create common function for firmware download 2018-01-25 09:28:40 +01:00
btintel.h Bluetooth: btintel: Create common function for firmware download 2018-01-25 09:28:40 +01:00
btmrvl_debugfs.c Bluetooth: btmrvl: Re-use kstrtol_from_user() 2018-05-30 08:16:05 +02:00
btmrvl_drv.h Bluetooth: btmrvl: support sysfs initiated firmware coredump 2018-05-29 15:59:50 +02:00
btmrvl_main.c Bluetooth: btmrvl: support sysfs initiated firmware coredump 2018-05-29 15:59:50 +02:00
btmrvl_sdio.c bluetooth: btmrvl_sdio: Replace GFP_ATOMIC with GFP_KERNEL in btmrvl_sdio_card_to_host() 2018-07-23 18:05:00 +02:00
btmrvl_sdio.h btmrvl: add platform specific wakeup interrupt support 2016-05-02 19:26:15 +02:00
btqca.c Bluetooth: btqca: Add AR3002 rampatch support 2018-05-18 06:37:52 +02:00
btqca.h Bluetooth: btqca: Add AR3002 rampatch support 2018-05-18 06:37:52 +02:00
btqcomsmd.c Bluetooth: btqcomsmd: Fix rx/tx stats 2018-05-18 06:37:50 +02:00
btrsi.c Bluetooth: btrsi: remove unused including <linux/version.h> 2018-04-01 21:43:02 +03:00
btrtl.c Bluetooth: btrtl: add support for retrieving the UART settings 2018-08-03 13:27:46 +02:00
btrtl.h Bluetooth: btrtl: add support for retrieving the UART settings 2018-08-03 13:27:46 +02:00
btsdio.c Bluetooth: btsdio: Do not bind to non-removable BCM43341 2017-12-13 00:28:41 +01:00
btusb.c Bluetooth: btusb: Use bt_dev_err for Intel firmware loading errors 2018-08-03 14:14:51 +03:00
btwilink.c Bluetooth: Style fix - align block comments 2017-07-22 08:39:39 +02:00
dtl1_cs.c networking: add and use skb_put_u8() 2017-06-16 11:48:40 -04:00
h4_recv.h Bluetooth: bpa10x: Use separate h4_recv_buf helper 2018-04-01 14:25:32 +02:00
hci_ag6xx.c Bluetooth: hci_uart: Add diag and address support for Intel/AG6xx 2016-02-29 19:25:22 +02:00
hci_ath.c Bluetooth: hci_ath: Replace mdelay with msleep in ath_wakeup_ar3k 2018-02-07 09:47:04 +01:00
hci_bcm.c Bluetooth: hci_serdev: Move serdev_device_close/open into common hci_serdev code 2018-05-30 08:47:42 +02:00
hci_bcsp.c Bluetooth: Convert timers to use timer_setup() 2017-10-06 20:37:11 +02:00
hci_h4.c Bluetooth: Use bt_dev_err and bt_dev_info when possible 2017-10-30 12:25:45 +02:00
hci_h5.c Bluetooth: Convert timers to use timer_setup() 2017-10-06 20:37:11 +02:00
hci_intel.c bluetooth: hci_intel: Replace GFP_ATOMIC with GFP_KERNEL in inject_cmd_complete() 2018-07-23 18:05:00 +02:00
hci_ldisc.c Bluetooth: hci_serdev: Fix HCI_UART_INIT_PENDING not working 2018-05-30 08:49:20 +02:00
hci_ll.c Bluetooth: hci_serdev: Move serdev_device_close/open into common hci_serdev code 2018-05-30 08:47:42 +02:00
hci_mrvl.c networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
hci_nokia.c bluetooth: hci_nokia: Don't include linux/unaligned/le_struct.h directly. 2018-06-17 08:38:55 +09:00
hci_qca.c bluetooth: hci_qca: Replace GFP_ATOMIC with GFP_KERNEL 2018-07-23 18:05:01 +02:00
hci_serdev.c Bluetooth: hci_serdev: Fix HCI_UART_INIT_PENDING not working 2018-05-30 08:49:20 +02:00
hci_uart.h Bluetooth: hci_serdev: Fix HCI_UART_INIT_PENDING not working 2018-05-30 08:49:20 +02:00
hci_vhci.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
Kconfig Bluetooth: hci_qca: Add serdev support 2018-05-18 06:37:51 +02:00
Makefile Bluetooth: Remove unused btuart_cs driver 2018-04-01 14:25:32 +02:00