• Neeraj Sanjay Kale's avatar
    Bluetooth: btnxpuart: Enable flow control before checking boot signature · b0310d6e
    Neeraj Sanjay Kale authored
    This enables flow control before checking for bootloader signature and
    deciding whether FW download is needed or not. In case of V1 bootloader
    chips w8987 and w8997, it is observed that if WLAN FW is downloaded first
    and power save is enabled in wlan core, bootloader signatures are not
    emitted by the BT core when the chip is put to sleep. As a result, the
    driver skips FW download and subsequent HCI commands get timeout errors
    in dmesg as shown below:
    
    [  112.898867] Bluetooth: hci0: Opcode 0x c03 failed: -110
    [  114.914865] Bluetooth: hci0: Setting baudrate failed (-110)
    [  116.930856] Bluetooth: hci0: Setting wake-up method failed (-110)
    
    By enabling the flow control, the host enables its RTS pin, and an
    interrupt in chip's UART peripheral causes the bootloader to wake up,
    enabling the bootloader signatures, which then helps in downloading
    the bluetooth FW file.
    
    This changes all instances of 0/1 for serdev_device_set_flow_control()
    to false/true.
    Signed-off-by: default avatarNeeraj Sanjay Kale <neeraj.sanjaykale@nxp.com>
    Signed-off-by: default avatarLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
    b0310d6e
btnxpuart.c 35.8 KB