• Martin Blumenstingl's avatar
    Bluetooth: btrtl: split the device initialization into smaller parts · 26503ad2
    Martin Blumenstingl authored
    This prepares the btrtl code so it can be used to initialize Bluetooth
    modules connected via UART (these are found for example on the RTL8723BS
    and RTL8723DS SDIO chips, which come with an embedded UART Bluetooth
    module).
    
    The Realtek "rtl8723bs_bt" and "rtl8723ds_bt" userspace Bluetooth UART
    initialization tools (rtk_hciattach) use the following sequence:
    1) send H5 sync pattern (already supported by hci_h5)
    2) get LMP version (already supported by btrtl)
    3) get ROM version (already supported by btrtl)
    4) load the firmware and config for the current chipset (already
       supported by btrtl)
    5) read UART settings from the config blob (currently not supported)
    6) 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)
    7) change the baudrate and flow control settings on the host
    8) send the firmware and config blob to the device (already supported by
       btrtl)
    
    The main reason why the initialization has to be split is step #7. This
    requires changes to the underlying "bus", which should be kept outside
    of the "generic" btrtl driver.
    The idea for this split is borrowed from the btbcm driver but adjusted
    where needed (the btrtl driver for example needs two blobs: firmware and
    config, while the btbcm only needs one).
    
    This also prepares the code for step #5 (parsing the config blob) by
    centralizing the code which loads the firmware and config blobs and
    storing the result in the new struct btrtl_device_info.
    Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: default avatarJeremy Cline <jeremy@jcline.org>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
    26503ad2
btrtl.c 15.4 KB