Re: [PATCH] Bluetooth: Increase command tx timeout

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Szymon,

On Wed, 2011-07-20 at 15:12 -0400, Szymon Janc wrote:
> Some CSR chips require more time for HCI reset command to complete.
> Too short timeout caused next command being sent before reset
> complete event resulting in
> [23101.792031] hci_cmd_timer: hci0 command tx timeout
> [23102.792046] hci_cmd_timer: hci0 command tx timeout
> after pluging in dongle and non functional bt.
> 
> Signed-off-by: Szymon Janc <szymon@xxxxxxxxxxx>
> ---
>  include/net/bluetooth/hci.h |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
> index be30aab..12a527c 100644
> --- a/include/net/bluetooth/hci.h
> +++ b/include/net/bluetooth/hci.h
> @@ -121,7 +121,7 @@ enum {
>  #define HCI_PAIRING_TIMEOUT	(60000)	/* 60 seconds */
>  #define HCI_IDLE_TIMEOUT	(6000)	/* 6 seconds */
>  #define HCI_INIT_TIMEOUT	(10000)	/* 10 seconds */
> -#define HCI_CMD_TIMEOUT		(1000)	/* 1 seconds */
> +#define HCI_CMD_TIMEOUT		(3000)	/* 3 seconds */
>  
>  /* HCI data types */
>  #define HCI_COMMAND_PKT		0x01

Respectfully, I disagree that this is the correct fix for this problem.

After an HCI_Reset, *no* hci commands should be issued until after the
*successful* Command Complete is received. IMHO, the current code
suffers two defects:
  - it doesn't wait for Command Complete after the Reset command is sent
  - it ignores the result code from that Command Complete

I believe the proper fix is to _loop_ over the HCI_Reset until a
successful Command Complete is received.

Regards,
Peter

 
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux