Re: [PATCH v7 6/8] Bluetooth: Parameters for outgoing SCO connections

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

 



Hi,

On Fri, May 17, 2013 at 5:55 AM, Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote:
> Hi Fred,
>
>> In order to establish a transparent SCO connection, the correct settings must
>> be specified in the Setup Synchronous Connection request. For that,
>> voice_setting is added to ACL connection flags to set up the desired
>> parameters. If this value is zero, a legacy SCO connection will be requested.
>> This patch uses T2 settings.
>>
>> Signed-off-by: Frédéric Dalleau <frederic.dalleau@xxxxxxxxxxxxxxx>
>> ---
>> include/net/bluetooth/hci_core.h |    1 +
>> net/bluetooth/hci_conn.c         |   22 ++++++++++++++++++----
>> 2 files changed, 19 insertions(+), 4 deletions(-)
>>
>> diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
>> index a6fd544..b5996b3 100644
>> --- a/include/net/bluetooth/hci_core.h
>> +++ b/include/net/bluetooth/hci_core.h
>> @@ -320,6 +320,7 @@ struct hci_conn {
>>       __u32           passkey_notify;
>>       __u8            passkey_entered;
>>       __u16           disc_timeout;
>> +     __u16           setting;
>>       unsigned long   flags;
>>
>>       __u8            remote_cap;
>> diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
>> index d1d9919..cd7452e 100644
>> --- a/net/bluetooth/hci_conn.c
>> +++ b/net/bluetooth/hci_conn.c
>> @@ -185,13 +185,25 @@ void hci_setup_sync(struct hci_conn *conn, __u16 handle)
>>       conn->attempt++;
>>
>>       cp.handle   = cpu_to_le16(handle);
>> -     cp.pkt_type = cpu_to_le16(conn->pkt_type);
>>
>>       cp.tx_bandwidth   = __constant_cpu_to_le32(0x00001f40);
>>       cp.rx_bandwidth   = __constant_cpu_to_le32(0x00001f40);
>> -     cp.max_latency    = __constant_cpu_to_le16(0xffff);
>> -     cp.voice_setting  = cpu_to_le16(hdev->voice_setting);
>> -     cp.retrans_effort = 0xff;
>
> same here. What are we doing with Add_SCO fallback on older controllers.
>
> We could just reject setting transparent air mode for controllers that do not support eSCO command procedures. And the only valid option there would be CVSD then. Which is default.

I have seem some controllers (IIRC CSR 2.0) that don't have eSCO but
have support for transparent air mode, in these cases we want to use
the Setup SCO/Accept SCO procedures.

>
> In case we use Add_SCO is is important that the voice setting programmed into the controller is actually 16-bit CVSD at that time. That needs to be taken care of as well.
>
> Regards
>
> Marcel
>
> --
> 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


Cheers,
--
Vinicius
--
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