Re: [PATCH 2/2] Bluetooth: mgmt: Fix enabling LE while powered off

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

 



Hi Andrzej,

On Mon, Aug 27, 2012 at 04:47:30PM +0200, Andrzej Kaczmarek wrote:
> Set LE called when hdev is up but still has HCI_AUTO_OFF flag set will
> only change dev_flags and enable feature in host but won't enable feature
> in controller. As a resulit it's not possible to e.g. start LE only or
> interleaved discovery due to missing LE Supported flag in local features.
> 
> This patch ensures HCI Write LE Host Supported is sent when Set Powered is
> called to clear HCI_AUTO_OFF flag.
> 
> Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@xxxxxxxxx>
> ---
>  net/bluetooth/mgmt.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index ccc6716..f73441f 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -2897,6 +2897,17 @@ int mgmt_powered(struct hci_dev *hdev, u8 powered)
>  			hci_send_cmd(hdev, HCI_OP_WRITE_SSP_MODE, 1, &ssp);
>  		}
>  
> +		if (test_bit(HCI_LE_ENABLED, &hdev->dev_flags)) {
> +			struct hci_cp_write_le_host_supported cp;
> +
> +			memset(&cp, 0, sizeof(cp));

Why memset is needed here?

Best regards 
Andrei Emeltchenko 

> +			cp.le = 1;
> +			cp.simul = !!(hdev->features[6] & LMP_SIMUL_LE_BR);
> +
> +			hci_send_cmd(hdev, HCI_OP_WRITE_LE_HOST_SUPPORTED,
> +				     sizeof(cp), &cp);
> +		}
> +
>  		update_class(hdev);
>  		update_name(hdev, hdev->dev_name);
>  		update_eir(hdev);
> -- 
> 1.7.11.3
> 
> --
> 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
--
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