aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev_api.c
diff options
context:
space:
mode:
authorNeeraj Sanjay Kale <[email protected]>2025-07-14 07:30:15 +0000
committerLuiz Augusto von Dentz <[email protected]>2025-07-23 14:32:06 +0000
commit634fd53a63be4798da356dbc7251046b713d992a (patch)
tree09707238a9fe32ffeae59b7ddf0fd250b2953ade /net/core/dev_api.c
parentBluetooth: ISO: Support SCM_TIMESTAMPING for ISO TS (diff)
downloadkernel-634fd53a63be4798da356dbc7251046b713d992a.tar.gz
kernel-634fd53a63be4798da356dbc7251046b713d992a.zip
Bluetooth: btnxpuart: Correct the Independent Reset handling after FW dump
This adds proper handling for the independent reset command sent by the driver after FW dump is complete. In normal scenario, the independent reset vendor command gives a success response before jumping to bootcode. However, when FW goes in a bad state, and sends out FW dump packets, the independent reset command does not get any response from the controller. [ 159.807732] Bluetooth: hci0: ==== Start FW dump === [ 180.759060] Bluetooth: hci0: ==== FW dump complete === [ 182.779208] Bluetooth: hci0: command 0xfcfc tx timeout [ 183.364974] Bluetooth: hci0: ChipID: 7601, Version: 0 [ 183.368490] Bluetooth: hci0: Request Firmware: nxp/uartspi_n61x_v1.bin.se [ 184.679977] Bluetooth: hci0: FW Download Complete: 417064 bytes [ 187.963102] Bluetooth: hci0: Opcode 0x0c03 failed: -110 As a fix for such scenario, the independent reset vendor command is sent using the __hci_cmd_send() API, which does not expect any response for vendor commands. __hci_cmd_send is non blocking, so before the tx_work is scheduled, it sometimes gets canceled and 3F|FC command is never sent. Adding a small delay after __hci_cmd_send allows the command to be sent to the controller. Signed-off-by: Neeraj Sanjay Kale <[email protected]> Tested-by: Jean-Yves Salaün <[email protected]> Signed-off-by: Luiz Augusto von Dentz <[email protected]>
Diffstat (limited to 'net/core/dev_api.c')
0 files changed, 0 insertions, 0 deletions