2011-08-12 15:00:15

by Peter Hurley

[permalink] [raw]
Subject: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

QVZEVFBfQ09OTkVDVF9USU1FT1VUIGNvbnRyb2xzIHRoZSBkZWxheSBiZXR3ZWVuIEhTUC9IRlAN
CmNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBhbmQgQVZEVFAgc2lnbmFsIGNoYW5uZWwgZXN0YWJs
aXNobWVudC4NClRoZSBvcmlnaW5hbCB2YWx1ZSBvZiAxIHNlYy4gaXMgdG9vIHNob3J0IHRvIGF2
b2lkIHJhY2luZyBmb3IgQVZEVFANCmNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCAoZWcuLCBpZiB0
aGUgZGV2aWNlIGNvbnRpbnVlcyB0byBjb25maWd1cmUNCnRoZSBIRlAgc2VydmljZSBsZXZlbCBj
b25uZWN0aW9uIHdpdGggYWRkJ2wgQVQgY21kcykuDQoNClNvbWUgZGV2aWNlcyBoYXZlIGJyb2tl
biBBVkRUUCBpbXBsZW1lbnRhdGlvbnMgdGhhdCBqdXN0IGNhbm5vdA0KaGFuZGxlIHRoZSByYWNl
IGNvbmRpdGlvbnMgdGhhdCBhcmlzZSBpZiBib3RoIGRldmljZXMgYXJlIGF0dGVtcHRpbmcNCnN0
cmVhbSBlc3RhYmxpc2htZW50IGF0IHRoZSBzYW1lIHRpbWUuIEhvd2V2ZXIsIHRoZXNlIGNvbmRp
dGlvbnMgYXJpc2UNCm9ubHkgd2hlbiB0aGUgcmVtb3RlIGRldmljZSBpcyB0aGUgQUNMIGluaXRp
YXRvciAoYW5kIGluIHByYWN0aWNlLCB0aGUNClJGQ09NTSBpbml0aWF0b3IgYXMgd2VsbCkuICBU
aGlzIGZpeCBidW1wcyBvdXQgdGhlIHRpbWVvdXQgdmFsdWUgb25seQ0Kd2hlbiB0aGUgaGVhZHNl
dCBoYXMgaW5pdGlhdGVkIHRoZSBsaW5rLg0KLS0tDQoNCnYyOiBGb2xsb3cgZXN0YWJsaXNoZWQg
bmFtaW5nIGNvbnZlbnRpb24NCg0KIGF1ZGlvL2RldmljZS5jICB8ICAgIDkgKysrKysrKystDQog
YXVkaW8vaGVhZHNldC5jIHwgICAxNyArKysrKysrKysrKysrKysrKw0KIGF1ZGlvL2hlYWRzZXQu
aCB8ICAgIDQgKysrKw0KIGF1ZGlvL21hbmFnZXIuYyB8ICAgIDEgKw0KIDQgZmlsZXMgY2hhbmdl
ZCwgMzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2F1ZGlv
L2RldmljZS5jIGIvYXVkaW8vZGV2aWNlLmMNCmluZGV4IDE4ZTg3M2UuLjRlMWU5ZTMgMTAwNjQ0
DQotLS0gYS9hdWRpby9kZXZpY2UuYw0KKysrIGIvYXVkaW8vZGV2aWNlLmMNCkBAIC02MSw2ICs2
MSw3IEBADQogDQogI2RlZmluZSBDT05UUk9MX0NPTk5FQ1RfVElNRU9VVCAyDQogI2RlZmluZSBB
VkRUUF9DT05ORUNUX1RJTUVPVVQgMQ0KKyNkZWZpbmUgQVZEVFBfQ09OTkVDVF9USU1FT1VUX0JP
T1NUIDENCiAjZGVmaW5lIEhFQURTRVRfQ09OTkVDVF9USU1FT1VUIDENCiANCiB0eXBlZGVmIGVu
dW0gew0KQEAgLTMwNSw2ICszMDYsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gYXZkdHBfY29ubmVjdF90
aW1lb3V0KGdwb2ludGVyIHVzZXJfZGF0YSkNCiBzdGF0aWMgZ2Jvb2xlYW4gZGV2aWNlX3NldF9h
dmR0cF90aW1lcihzdHJ1Y3QgYXVkaW9fZGV2aWNlICpkZXYpDQogew0KIAlzdHJ1Y3QgZGV2X3By
aXYgKnByaXYgPSBkZXYtPnByaXY7DQorCWd1aW50IHRpbWVvdXQgPSBBVkRUUF9DT05ORUNUX1RJ
TUVPVVQ7DQogDQogCWlmICghZGV2LT5zaW5rKQ0KIAkJcmV0dXJuIEZBTFNFOw0KQEAgLTMxMiw3
ICszMTQsMTIgQEAgc3RhdGljIGdib29sZWFuIGRldmljZV9zZXRfYXZkdHBfdGltZXIoc3RydWN0
IGF1ZGlvX2RldmljZSAqZGV2KQ0KIAlpZiAocHJpdi0+YXZkdHBfdGltZXIpDQogCQlyZXR1cm4g
RkFMU0U7DQogDQotCXByaXYtPmF2ZHRwX3RpbWVyID0gZ190aW1lb3V0X2FkZF9zZWNvbmRzKEFW
RFRQX0NPTk5FQ1RfVElNRU9VVCwNCisJLyogaWYgdGhlIGhlYWRzZXQgaXMgdGhlIEhTUC9IRlAg
UkZDT01NIGluaXRpYXRvciwgZ2l2ZSB0aGUgaGVhZHNldA0KKwkgICB0aW1lIHRvIGluaXRpYXRl
IEFWRFRQIHNpZ25hbGxpbmcgKGFuZCBhdm9pZCBmdXJ0aGVyIHJhY2luZykgKi8NCisJaWYgKGRl
di0+aGVhZHNldCAmJiBoZWFkc2V0X2dldF9yZmNvbW1faW5pdGlhdG9yKGRldikpDQorCQl0aW1l
b3V0ICs9IEFWRFRQX0NPTk5FQ1RfVElNRU9VVF9CT09TVDsNCisNCisJcHJpdi0+YXZkdHBfdGlt
ZXIgPSBnX3RpbWVvdXRfYWRkX3NlY29uZHModGltZW91dCwNCiAJCQkJCQkJYXZkdHBfY29ubmVj
dF90aW1lb3V0LA0KIAkJCQkJCQlkZXYpOw0KIA0KZGlmZiAtLWdpdCBhL2F1ZGlvL2hlYWRzZXQu
YyBiL2F1ZGlvL2hlYWRzZXQuYw0KaW5kZXggOGU2M2FmYy4uYmRjOTFkYSAxMDA2NDQNCi0tLSBh
L2F1ZGlvL2hlYWRzZXQuYw0KKysrIGIvYXVkaW8vaGVhZHNldC5jDQpAQCAtMTY3LDYgKzE2Nyw3
IEBAIHN0cnVjdCBoZWFkc2V0IHsNCiANCiAJZ2Jvb2xlYW4gaGZwX2FjdGl2ZTsNCiAJZ2Jvb2xl
YW4gc2VhcmNoX2hmcDsNCisJZ2Jvb2xlYW4gcmZjb21tX2luaXRpYXRvcjsNCiANCiAJaGVhZHNl
dF9zdGF0ZV90IHN0YXRlOw0KIAlzdHJ1Y3QgcGVuZGluZ19jb25uZWN0ICpwZW5kaW5nOw0KQEAg
LTE2MzMsNiArMTYzNCw3IEBAIHN0YXRpYyBpbnQgcmZjb21tX2Nvbm5lY3Qoc3RydWN0IGF1ZGlv
X2RldmljZSAqZGV2LCBoZWFkc2V0X3N0cmVhbV9jYl90IGNiLA0KIAl9DQogDQogCWhzLT5oZnBf
YWN0aXZlID0gaHMtPmhmcF9oYW5kbGUgIT0gMCA/IFRSVUUgOiBGQUxTRTsNCisJaHMtPnJmY29t
bV9pbml0aWF0b3IgPSBGQUxTRTsNCiANCiAJaGVhZHNldF9zZXRfc3RhdGUoZGV2LCBIRUFEU0VU
X1NUQVRFX0NPTk5FQ1RJTkcpOw0KIA0KQEAgLTI0NDIsNiArMjQ0NCwyMSBAQCB2b2lkIHNldF9o
ZnBfYWN0aXZlKHN0cnVjdCBhdWRpb19kZXZpY2UgKmRldiwgZ2Jvb2xlYW4gYWN0aXZlKQ0KIAlo
cy0+aGZwX2FjdGl2ZSA9IGFjdGl2ZTsNCiB9DQogDQorZ2Jvb2xlYW4gaGVhZHNldF9nZXRfcmZj
b21tX2luaXRpYXRvcihzdHJ1Y3QgYXVkaW9fZGV2aWNlICpkZXYpDQorew0KKwlzdHJ1Y3QgaGVh
ZHNldCAqaHMgPSBkZXYtPmhlYWRzZXQ7DQorDQorCXJldHVybiBocy0+cmZjb21tX2luaXRpYXRv
cjsNCit9DQorDQordm9pZCBoZWFkc2V0X3NldF9yZmNvbW1faW5pdGlhdG9yKHN0cnVjdCBhdWRp
b19kZXZpY2UgKmRldiwgDQorCQkJCQlnYm9vbGVhbiBpbml0aWF0b3IpDQorew0KKwlzdHJ1Y3Qg
aGVhZHNldCAqaHMgPSBkZXYtPmhlYWRzZXQ7DQorDQorCWhzLT5yZmNvbW1faW5pdGlhdG9yID0g
aW5pdGlhdG9yOw0KK30NCisNCiBHSU9DaGFubmVsICpoZWFkc2V0X2dldF9yZmNvbW0oc3RydWN0
IGF1ZGlvX2RldmljZSAqZGV2KQ0KIHsNCiAJc3RydWN0IGhlYWRzZXQgKmhzID0gZGV2LT5oZWFk
c2V0Ow0KZGlmZiAtLWdpdCBhL2F1ZGlvL2hlYWRzZXQuaCBiL2F1ZGlvL2hlYWRzZXQuaA0KaW5k
ZXggN2NlODhjOC4uODE4MGQ2OSAxMDA2NDQNCi0tLSBhL2F1ZGlvL2hlYWRzZXQuaA0KKysrIGIv
YXVkaW8vaGVhZHNldC5oDQpAQCAtODIsNiArODIsMTAgQEAgZ2Jvb2xlYW4gaGVhZHNldF9jYW5j
ZWxfc3RyZWFtKHN0cnVjdCBhdWRpb19kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGlkKTsNCiBn
Ym9vbGVhbiBnZXRfaGZwX2FjdGl2ZShzdHJ1Y3QgYXVkaW9fZGV2aWNlICpkZXYpOw0KIHZvaWQg
c2V0X2hmcF9hY3RpdmUoc3RydWN0IGF1ZGlvX2RldmljZSAqZGV2LCBnYm9vbGVhbiBhY3RpdmUp
Ow0KIA0KK2dib29sZWFuIGhlYWRzZXRfZ2V0X3JmY29tbV9pbml0aWF0b3Ioc3RydWN0IGF1ZGlv
X2RldmljZSAqZGV2KTsNCit2b2lkIGhlYWRzZXRfc2V0X3JmY29tbV9pbml0aWF0b3Ioc3RydWN0
IGF1ZGlvX2RldmljZSAqZGV2LA0KKwkJCQkJCQlnYm9vbGVhbiBpbml0aWF0b3IpOw0KKw0KIHZv
aWQgaGVhZHNldF9zZXRfYXV0aG9yaXplZChzdHJ1Y3QgYXVkaW9fZGV2aWNlICpkZXYpOw0KIGlu
dCBoZWFkc2V0X2Nvbm5lY3RfcmZjb21tKHN0cnVjdCBhdWRpb19kZXZpY2UgKmRldiwgR0lPQ2hh
bm5lbCAqY2hhbik7DQogaW50IGhlYWRzZXRfY29ubmVjdF9zY28oc3RydWN0IGF1ZGlvX2Rldmlj
ZSAqZGV2LCBHSU9DaGFubmVsICppbyk7DQpkaWZmIC0tZ2l0IGEvYXVkaW8vbWFuYWdlci5jIGIv
YXVkaW8vbWFuYWdlci5jDQppbmRleCAwNWNhNjU0Li40ZTRjY2E1IDEwMDY0NA0KLS0tIGEvYXVk
aW8vbWFuYWdlci5jDQorKysgYi9hdWRpby9tYW5hZ2VyLmMNCkBAIC01MDgsNiArNTA4LDcgQEAg
c3RhdGljIHZvaWQgYWdfY29uZmlybShHSU9DaGFubmVsICpjaGFuLCBncG9pbnRlciBkYXRhKQ0K
IAl9DQogDQogCXNldF9oZnBfYWN0aXZlKGRldmljZSwgaGZwX2FjdGl2ZSk7DQorCWhlYWRzZXRf
c2V0X3JmY29tbV9pbml0aWF0b3IoZGV2aWNlLCBUUlVFKTsNCiANCiAJaWYgKGhlYWRzZXRfY29u
bmVjdF9yZmNvbW0oZGV2aWNlLCBjaGFuKSA8IDApIHsNCiAJCWVycm9yKCJoZWFkc2V0X2Nvbm5l
Y3RfcmZjb21tIGZhaWxlZCIpOw0KLS0gDQoxLjcuNC4xDQoNCg==


2011-08-22 07:54:57

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

Hi Peter,

On Fri, Aug 12, 2011, Peter Hurley wrote:
> AVDTP_CONNECT_TIMEOUT controls the delay between HSP/HFP
> connection establishment and AVDTP signal channel establishment.
> The original value of 1 sec. is too short to avoid racing for AVDTP
> connection establishment (eg., if the device continues to configure
> the HFP service level connection with add'l AT cmds).
>
> Some devices have broken AVDTP implementations that just cannot
> handle the race conditions that arise if both devices are attempting
> stream establishment at the same time. However, these conditions arise
> only when the remote device is the ACL initiator (and in practice, the
> RFCOMM initiator as well). This fix bumps out the timeout value only
> when the headset has initiated the link.
> ---
>
> v2: Follow established naming convention
>
> audio/device.c | 9 ++++++++-
> audio/headset.c | 17 +++++++++++++++++
> audio/headset.h | 4 ++++
> audio/manager.c | 1 +
> 4 files changed, 30 insertions(+), 1 deletions(-)

The patch has been applied, but could you please make sure you send
clean patches in the future. Now I got this from git:

/home/jh/src/bluez/.git/rebase-apply/patch:19: trailing whitespace.
#define AVDTP_CONNECT_TIMEOUT_BOOST 1
/home/jh/src/bluez/.git/rebase-apply/patch:27: trailing whitespace.
guint timeout = AVDTP_CONNECT_TIMEOUT;
/home/jh/src/bluez/.git/rebase-apply/patch:36: trailing whitespace.
/* if the headset is the HSP/HFP RFCOMM initiator, give the headset
/home/jh/src/bluez/.git/rebase-apply/patch:37: trailing whitespace.
time to initiate AVDTP signalling (and avoid further racing) */
/home/jh/src/bluez/.git/rebase-apply/patch:38: trailing whitespace.
if (dev->headset && headset_get_rfcomm_initiator(dev))
warning: squelched 25 whitespace errors
warning: 1 line applied after fixing whitespace errors.

Johan

2011-08-15 12:00:48

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

Hi Peter,

On Mon, Aug 15, 2011 at 2:22 PM, Peter Hurley <[email protected]> wrote:
> Hi Luiz,
>
> On Mon, 2011-08-15 at 04:21 -0400, Luiz Augusto von Dentz wrote:
>> Hi Peter,
>>
>> On Mon, Aug 15, 2011 at 4:06 AM, Peter Hurley <[email protected]> wrote:
>> > .... AVDTP Set Configuration ....
>> >
>> > 2011-08-11 18:35:04.637300 < ACL data: handle 13 flags 0x00 dlen 18
>> > ? ?L2CAP(d): cid 0x0055 len 14 [psm 25]
>> > ? ? ?AVDTP(s): Set config cmd: transaction 7 nsp 0x00
>> > ? ? ? ?ACP SEID 1 - INT SEID 1
>> > ? ? ? ?Media Transport
>> > ? ? ? ?Media Codec - SBC
>> > ? ? ? ? ?44.1kHz
>> > ? ? ? ? ?JointStereo
>> > ? ? ? ? ?16 Blocks
>> > ? ? ? ? ?8 Subbands
>> > ? ? ? ? ?Loudness
>> > ? ? ? ? ?Bitpool Range 2-44
>> >
>> > .... Now, what can we do about what happens next? ....
>> >
>> > 2011-08-11 18:35:04.651185 > ACL data: handle 13 flags 0x02 dlen 6
>> > ? ?L2CAP(d): cid 0x0041 len 2 [psm 25]
>> > ? ? ?AVDTP(s): Discover cmd: transaction 10 nsp 0x00
>> > 2011-08-11 18:35:04.651237 < ACL data: handle 13 flags 0x00 dlen 8
>> > ? ?L2CAP(d): cid 0x0055 len 4 [psm 25]
>> > ? ? ?AVDTP(s): Discover rsp: transaction 10 nsp 0x00
>> > ? ? ? ?ACP SEID 1 - Audio Source (InUse)
>> > 2011-08-11 18:35:04.653184 > HCI Event: Number of Completed Packets (0x13) plen 5
>> > ? ?handle 13 packets 2
>> > 2011-08-11 18:35:04.693186 > ACL data: handle 13 flags 0x02 dlen 8
>> > ? ?L2CAP(d): cid 0x0041 len 4 [psm 25]
>> > ? ? ?AVDTP(s): Set config rej: transaction 7 nsp 0x00
>> > ? ? ? ?Reserved
>> > ? ? ? ?Error code 19
>> > 2011-08-11 18:35:04.761186 > ACL data: handle 13 flags 0x02 dlen 12
>> > ? ?L2CAP(s): Disconn req: dcid 0x0041 scid 0x0055
>> > 2011-08-11 18:35:04.761202 < ACL data: handle 13 flags 0x00 dlen 12
>> > ? ?L2CAP(s): Disconn rsp: dcid 0x0041 scid 0x0055
>> >
>> > The headset has disconnected the AVDTP signaling channel because we have
>> > marked the SEP as "in use" (which is, of course, exactly what was
>> > required prior to issuing the Set Config). Like I wrote in the commit
>> > message, "broken AVDTP implementations".
>>
>> Ouch, looks pretty much broken, btw what device is that?
>
> This headset is a Motorola S9 HD.
>
>> > My point here is a lot has happened before discovering that something is
>> > wrong. I'm not even sure if this headset would respond to an attempt to
>> > restart from this - maybe.
>>
>> What happen if you try to connect A2DP manually (AudioSink.Connect)
>> latter? If it does succeeds then there is a chance retrying would
>> help.
>
> It might take me a little while to re-test this approach. I'll let you
> know what I find out.
>
>> > In the baseline trial with existing delay of 1 sec. (using HSP profile),
>> > the headset simply never responds to the GET_CAPABILITIES for seid 2 -
>> > the connection times out after 5 seconds and is disconnected:
>> >
>> > 2011-08-12 06:36:16.992657 < ACL data: handle 13 flags 0x00 dlen 6
>> > ? ?L2CAP(d): cid 0x0056 len 2 [psm 25]
>> > ? ? ?AVDTP(s): Discover cmd: transaction 3 nsp 0x00
>> > 2011-08-12 06:36:17.078604 > ACL data: handle 13 flags 0x02 dlen 10
>> > ? ?L2CAP(d): cid 0x0041 len 6 [psm 25]
>> > ? ? ?AVDTP(s): Discover rsp: transaction 3 nsp 0x00
>> > ? ? ? ?ACP SEID 1 - Audio Sink
>> > ? ? ? ?ACP SEID 2 - Audio Sink
>> > 2011-08-12 06:36:17.078692 < ACL data: handle 13 flags 0x00 dlen 7
>> > ? ?L2CAP(d): cid 0x0056 len 3 [psm 25]
>> > ? ? ?AVDTP(s): Capabilities cmd: transaction 4 nsp 0x00
>> > ? ? ? ?ACP SEID 1
>> > 2011-08-12 06:36:17.083599 > HCI Event: Number of Completed Packets (0x13) plen 5
>> > ? ?handle 13 packets 2
>> > 2011-08-12 06:36:17.122604 > HCI Event: Link Supervision Timeout Change (0x38) plen 4
>> > ? ?handle 13 timeout 8064
>> > 2011-08-12 06:36:17.372605 > ACL data: handle 13 flags 0x02 dlen 16
>> > ? ?L2CAP(d): cid 0x0041 len 12 [psm 25]
>> > ? ? ?AVDTP(s): Capabilities rsp: transaction 4 nsp 0x00
>> > ? ? ? ?Media Transport
>> > ? ? ? ?Media Codec - SBC
>> > ? ? ? ? ?16kHz 32kHz 44.1kHz 48kHz
>> > ? ? ? ? ?Mono DualChannel Stereo JointStereo
>> > ? ? ? ? ?4 8 12 16 Blocks
>> > ? ? ? ? ?4 8 Subbands
>> > ? ? ? ? ?SNR Loudness
>> > ? ? ? ? ?Bitpool Range 2-44
>> > 2011-08-12 06:36:17.372720 < ACL data: handle 13 flags 0x00 dlen 7
>> > ? ?L2CAP(d): cid 0x0056 len 3 [psm 25]
>> > ? ? ?AVDTP(s): Capabilities cmd: transaction 5 nsp 0x00
>> > ? ? ? ?ACP SEID 2
>> > 2011-08-12 06:36:17.594603 > HCI Event: Number of Completed Packets (0x13) plen 5
>> > ? ?handle 13 packets 1
>> > 2011-08-12 06:36:22.406607 > HCI Event: Max Slots Change (0x1b) plen 3
>> > ? ?handle 13 slots 1
>> > 2011-08-12 06:36:22.596605 > HCI Event: Mode Change (0x14) plen 6
>> > ? ?status 0x00 handle 13 mode 0x02 interval 1024
>> > ? ?Mode: Sniff
>> > 2011-08-12 06:36:23.573334 < ACL data: handle 13 flags 0x00 dlen 12
>> > ? ?L2CAP(s): Disconn req: dcid 0x0056 scid 0x0041
>> > 2011-08-12 06:36:24.094607 > HCI Event: Number of Completed Packets (0x13) plen 5
>> > ? ?handle 13 packets 1
>> > 2011-08-12 06:36:24.519609 > ACL data: handle 13 flags 0x02 dlen 12
>> > ? ?L2CAP(s): Disconn rsp: dcid 0x0056 scid 0x0041
>>
>> Looks like the device really don't like that we start sending commands
>> while it is the initiator of the connection, afaik we are just
>> following the recommendations from the white paper but since they are
>> only recommendations some implementations may ignore them completely.
>
> The GAVDP spec is so unclear regarding the INT and ACP roles that I
> think there's support for both models.
>
>> Retrying should work in this case because it might force the remote
>> stack to enter acceptor mode, but this is only valid when we are
>> acting as A2DP source as a A2DP sink we should probably not retry at
>> all.
>
> I will re-test this as soon as I can and report the results.

Could you please try the following:

diff --git a/audio/device.c b/audio/device.c
index b2de468..46cecc4 100644
--- a/audio/device.c
+++ b/audio/device.c
@@ -62,6 +62,7 @@
#define CONTROL_CONNECT_TIMEOUT 2
#define AVDTP_CONNECT_TIMEOUT 1
#define HEADSET_CONNECT_TIMEOUT 1
+#define MAX_RETRIES 1

typedef enum {
AUDIO_STATE_DISCONNECTED,
@@ -89,6 +90,7 @@ struct dev_priv {
guint avdtp_timer;
guint headset_timer;
guint dc_id;
+ guint retries;

gboolean disconnecting;
gboolean authorized;
@@ -247,6 +249,8 @@ static void device_set_state(struct audio_device
*dev, audio_state_t new_state)
} else if (new_state == AUDIO_STATE_CONNECTING)
priv->dc_id = device_add_disconnect_watch(dev->btd_dev,
disconnect_cb, dev, NULL);
+ else
+ dev->priv->retries = 0;

if (dev->priv->state == new_state) {
DBG("state change attempted from %s to %s",
@@ -405,6 +409,10 @@ static void device_sink_cb(struct audio_device *dev,
default:
break;
}
+ } else if (dev->priv->retries != MAX_RETRIES &&
+ dev->auto_connect) {
+ dev->priv->retries++;
+ device_set_avdtp_timer(dev);
}
break;
case SINK_STATE_CONNECTING:
@@ -477,10 +485,20 @@ static void device_headset_cb(struct audio_device *dev,
}
if (priv->sink_state == SINK_STATE_DISCONNECTED)
device_set_state(dev, AUDIO_STATE_DISCONNECTED);
- else if (old_state == HEADSET_STATE_CONNECTING &&
- (priv->sink_state == SINK_STATE_CONNECTED ||
- priv->sink_state == SINK_STATE_PLAYING))
- device_set_state(dev, AUDIO_STATE_CONNECTED);
+ else if (old_state == HEADSET_STATE_CONNECTING) {
+ switch (priv->sink_state) {
+ case SINK_STATE_CONNECTED:
+ case SINK_STATE_RESUMING:
+ case SINK_STATE_PLAYING:
+ device_set_state(dev, AUDIO_STATE_CONNECTED);
+ default:
+ break;
+ }
+ } else if (dev->priv->retries != MAX_RETRIES &&
+ dev->auto_connect) {
+ dev->priv->retries++;
+ device_set_headset_timer(dev);
+ }
break;
case HEADSET_STATE_CONNECTING:
device_remove_headset_timer(dev);

--
Luiz Augusto von Dentz

2011-08-15 11:22:40

by Peter Hurley

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

SGkgTHVpeiwNCg0KT24gTW9uLCAyMDExLTA4LTE1IGF0IDA0OjIxIC0wNDAwLCBMdWl6IEF1Z3Vz
dG8gdm9uIERlbnR6IHdyb3RlOg0KPiBIaSBQZXRlciwNCj4gDQo+IE9uIE1vbiwgQXVnIDE1LCAy
MDExIGF0IDQ6MDYgQU0sIFBldGVyIEh1cmxleSA8cGV0ZXJAaHVybGV5c29mdHdhcmUuY29tPiB3
cm90ZToNCj4gPiAuLi4uIEFWRFRQIFNldCBDb25maWd1cmF0aW9uIC4uLi4NCj4gPg0KPiA+IDIw
MTEtMDgtMTEgMTg6MzU6MDQuNjM3MzAwIDwgQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAw
IGRsZW4gMTgNCj4gPiAgICBMMkNBUChkKTogY2lkIDB4MDA1NSBsZW4gMTQgW3BzbSAyNV0NCj4g
PiAgICAgIEFWRFRQKHMpOiBTZXQgY29uZmlnIGNtZDogdHJhbnNhY3Rpb24gNyBuc3AgMHgwMA0K
PiA+ICAgICAgICBBQ1AgU0VJRCAxIC0gSU5UIFNFSUQgMQ0KPiA+ICAgICAgICBNZWRpYSBUcmFu
c3BvcnQNCj4gPiAgICAgICAgTWVkaWEgQ29kZWMgLSBTQkMNCj4gPiAgICAgICAgICA0NC4xa0h6
DQo+ID4gICAgICAgICAgSm9pbnRTdGVyZW8NCj4gPiAgICAgICAgICAxNiBCbG9ja3MNCj4gPiAg
ICAgICAgICA4IFN1YmJhbmRzDQo+ID4gICAgICAgICAgTG91ZG5lc3MNCj4gPiAgICAgICAgICBC
aXRwb29sIFJhbmdlIDItNDQNCj4gPg0KPiA+IC4uLi4gTm93LCB3aGF0IGNhbiB3ZSBkbyBhYm91
dCB3aGF0IGhhcHBlbnMgbmV4dD8gLi4uLg0KPiA+DQo+ID4gMjAxMS0wOC0xMSAxODozNTowNC42
NTExODUgPiBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDIgZGxlbiA2DQo+ID4gICAgTDJD
QVAoZCk6IGNpZCAweDAwNDEgbGVuIDIgW3BzbSAyNV0NCj4gPiAgICAgIEFWRFRQKHMpOiBEaXNj
b3ZlciBjbWQ6IHRyYW5zYWN0aW9uIDEwIG5zcCAweDAwDQo+ID4gMjAxMS0wOC0xMSAxODozNTow
NC42NTEyMzcgPCBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDAgZGxlbiA4DQo+ID4gICAg
TDJDQVAoZCk6IGNpZCAweDAwNTUgbGVuIDQgW3BzbSAyNV0NCj4gPiAgICAgIEFWRFRQKHMpOiBE
aXNjb3ZlciByc3A6IHRyYW5zYWN0aW9uIDEwIG5zcCAweDAwDQo+ID4gICAgICAgIEFDUCBTRUlE
IDEgLSBBdWRpbyBTb3VyY2UgKEluVXNlKQ0KPiA+IDIwMTEtMDgtMTEgMTg6MzU6MDQuNjUzMTg0
ID4gSENJIEV2ZW50OiBOdW1iZXIgb2YgQ29tcGxldGVkIFBhY2tldHMgKDB4MTMpIHBsZW4gNQ0K
PiA+ICAgIGhhbmRsZSAxMyBwYWNrZXRzIDINCj4gPiAyMDExLTA4LTExIDE4OjM1OjA0LjY5MzE4
NiA+IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMiBkbGVuIDgNCj4gPiAgICBMMkNBUChk
KTogY2lkIDB4MDA0MSBsZW4gNCBbcHNtIDI1XQ0KPiA+ICAgICAgQVZEVFAocyk6IFNldCBjb25m
aWcgcmVqOiB0cmFuc2FjdGlvbiA3IG5zcCAweDAwDQo+ID4gICAgICAgIFJlc2VydmVkDQo+ID4g
ICAgICAgIEVycm9yIGNvZGUgMTkNCj4gPiAyMDExLTA4LTExIDE4OjM1OjA0Ljc2MTE4NiA+IEFD
TCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMiBkbGVuIDEyDQo+ID4gICAgTDJDQVAocyk6IERp
c2Nvbm4gcmVxOiBkY2lkIDB4MDA0MSBzY2lkIDB4MDA1NQ0KPiA+IDIwMTEtMDgtMTEgMTg6MzU6
MDQuNzYxMjAyIDwgQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAwIGRsZW4gMTINCj4gPiAg
ICBMMkNBUChzKTogRGlzY29ubiByc3A6IGRjaWQgMHgwMDQxIHNjaWQgMHgwMDU1DQo+ID4NCj4g
PiBUaGUgaGVhZHNldCBoYXMgZGlzY29ubmVjdGVkIHRoZSBBVkRUUCBzaWduYWxpbmcgY2hhbm5l
bCBiZWNhdXNlIHdlIGhhdmUNCj4gPiBtYXJrZWQgdGhlIFNFUCBhcyAiaW4gdXNlIiAod2hpY2gg
aXMsIG9mIGNvdXJzZSwgZXhhY3RseSB3aGF0IHdhcw0KPiA+IHJlcXVpcmVkIHByaW9yIHRvIGlz
c3VpbmcgdGhlIFNldCBDb25maWcpLiBMaWtlIEkgd3JvdGUgaW4gdGhlIGNvbW1pdA0KPiA+IG1l
c3NhZ2UsICJicm9rZW4gQVZEVFAgaW1wbGVtZW50YXRpb25zIi4NCj4gDQo+IE91Y2gsIGxvb2tz
IHByZXR0eSBtdWNoIGJyb2tlbiwgYnR3IHdoYXQgZGV2aWNlIGlzIHRoYXQ/DQoNClRoaXMgaGVh
ZHNldCBpcyBhIE1vdG9yb2xhIFM5IEhELg0KDQo+ID4gTXkgcG9pbnQgaGVyZSBpcyBhIGxvdCBo
YXMgaGFwcGVuZWQgYmVmb3JlIGRpc2NvdmVyaW5nIHRoYXQgc29tZXRoaW5nIGlzDQo+ID4gd3Jv
bmcuIEknbSBub3QgZXZlbiBzdXJlIGlmIHRoaXMgaGVhZHNldCB3b3VsZCByZXNwb25kIHRvIGFu
IGF0dGVtcHQgdG8NCj4gPiByZXN0YXJ0IGZyb20gdGhpcyAtIG1heWJlLg0KPiANCj4gV2hhdCBo
YXBwZW4gaWYgeW91IHRyeSB0byBjb25uZWN0IEEyRFAgbWFudWFsbHkgKEF1ZGlvU2luay5Db25u
ZWN0KQ0KPiBsYXR0ZXI/IElmIGl0IGRvZXMgc3VjY2VlZHMgdGhlbiB0aGVyZSBpcyBhIGNoYW5j
ZSByZXRyeWluZyB3b3VsZA0KPiBoZWxwLg0KDQpJdCBtaWdodCB0YWtlIG1lIGEgbGl0dGxlIHdo
aWxlIHRvIHJlLXRlc3QgdGhpcyBhcHByb2FjaC4gSSdsbCBsZXQgeW91DQprbm93IHdoYXQgSSBm
aW5kIG91dC4NCg0KPiA+IEluIHRoZSBiYXNlbGluZSB0cmlhbCB3aXRoIGV4aXN0aW5nIGRlbGF5
IG9mIDEgc2VjLiAodXNpbmcgSFNQIHByb2ZpbGUpLA0KPiA+IHRoZSBoZWFkc2V0IHNpbXBseSBu
ZXZlciByZXNwb25kcyB0byB0aGUgR0VUX0NBUEFCSUxJVElFUyBmb3Igc2VpZCAyIC0NCj4gPiB0
aGUgY29ubmVjdGlvbiB0aW1lcyBvdXQgYWZ0ZXIgNSBzZWNvbmRzIGFuZCBpcyBkaXNjb25uZWN0
ZWQ6DQo+ID4NCj4gPiAyMDExLTA4LTEyIDA2OjM2OjE2Ljk5MjY1NyA8IEFDTCBkYXRhOiBoYW5k
bGUgMTMgZmxhZ3MgMHgwMCBkbGVuIDYNCj4gPiAgICBMMkNBUChkKTogY2lkIDB4MDA1NiBsZW4g
MiBbcHNtIDI1XQ0KPiA+ICAgICAgQVZEVFAocyk6IERpc2NvdmVyIGNtZDogdHJhbnNhY3Rpb24g
MyBuc3AgMHgwMA0KPiA+IDIwMTEtMDgtMTIgMDY6MzY6MTcuMDc4NjA0ID4gQUNMIGRhdGE6IGhh
bmRsZSAxMyBmbGFncyAweDAyIGRsZW4gMTANCj4gPiAgICBMMkNBUChkKTogY2lkIDB4MDA0MSBs
ZW4gNiBbcHNtIDI1XQ0KPiA+ICAgICAgQVZEVFAocyk6IERpc2NvdmVyIHJzcDogdHJhbnNhY3Rp
b24gMyBuc3AgMHgwMA0KPiA+ICAgICAgICBBQ1AgU0VJRCAxIC0gQXVkaW8gU2luaw0KPiA+ICAg
ICAgICBBQ1AgU0VJRCAyIC0gQXVkaW8gU2luaw0KPiA+IDIwMTEtMDgtMTIgMDY6MzY6MTcuMDc4
NjkyIDwgQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAwIGRsZW4gNw0KPiA+ICAgIEwyQ0FQ
KGQpOiBjaWQgMHgwMDU2IGxlbiAzIFtwc20gMjVdDQo+ID4gICAgICBBVkRUUChzKTogQ2FwYWJp
bGl0aWVzIGNtZDogdHJhbnNhY3Rpb24gNCBuc3AgMHgwMA0KPiA+ICAgICAgICBBQ1AgU0VJRCAx
DQo+ID4gMjAxMS0wOC0xMiAwNjozNjoxNy4wODM1OTkgPiBIQ0kgRXZlbnQ6IE51bWJlciBvZiBD
b21wbGV0ZWQgUGFja2V0cyAoMHgxMykgcGxlbiA1DQo+ID4gICAgaGFuZGxlIDEzIHBhY2tldHMg
Mg0KPiA+IDIwMTEtMDgtMTIgMDY6MzY6MTcuMTIyNjA0ID4gSENJIEV2ZW50OiBMaW5rIFN1cGVy
dmlzaW9uIFRpbWVvdXQgQ2hhbmdlICgweDM4KSBwbGVuIDQNCj4gPiAgICBoYW5kbGUgMTMgdGlt
ZW91dCA4MDY0DQo+ID4gMjAxMS0wOC0xMiAwNjozNjoxNy4zNzI2MDUgPiBBQ0wgZGF0YTogaGFu
ZGxlIDEzIGZsYWdzIDB4MDIgZGxlbiAxNg0KPiA+ICAgIEwyQ0FQKGQpOiBjaWQgMHgwMDQxIGxl
biAxMiBbcHNtIDI1XQ0KPiA+ICAgICAgQVZEVFAocyk6IENhcGFiaWxpdGllcyByc3A6IHRyYW5z
YWN0aW9uIDQgbnNwIDB4MDANCj4gPiAgICAgICAgTWVkaWEgVHJhbnNwb3J0DQo+ID4gICAgICAg
IE1lZGlhIENvZGVjIC0gU0JDDQo+ID4gICAgICAgICAgMTZrSHogMzJrSHogNDQuMWtIeiA0OGtI
eg0KPiA+ICAgICAgICAgIE1vbm8gRHVhbENoYW5uZWwgU3RlcmVvIEpvaW50U3RlcmVvDQo+ID4g
ICAgICAgICAgNCA4IDEyIDE2IEJsb2Nrcw0KPiA+ICAgICAgICAgIDQgOCBTdWJiYW5kcw0KPiA+
ICAgICAgICAgIFNOUiBMb3VkbmVzcw0KPiA+ICAgICAgICAgIEJpdHBvb2wgUmFuZ2UgMi00NA0K
PiA+IDIwMTEtMDgtMTIgMDY6MzY6MTcuMzcyNzIwIDwgQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFn
cyAweDAwIGRsZW4gNw0KPiA+ICAgIEwyQ0FQKGQpOiBjaWQgMHgwMDU2IGxlbiAzIFtwc20gMjVd
DQo+ID4gICAgICBBVkRUUChzKTogQ2FwYWJpbGl0aWVzIGNtZDogdHJhbnNhY3Rpb24gNSBuc3Ag
MHgwMA0KPiA+ICAgICAgICBBQ1AgU0VJRCAyDQo+ID4gMjAxMS0wOC0xMiAwNjozNjoxNy41OTQ2
MDMgPiBIQ0kgRXZlbnQ6IE51bWJlciBvZiBDb21wbGV0ZWQgUGFja2V0cyAoMHgxMykgcGxlbiA1
DQo+ID4gICAgaGFuZGxlIDEzIHBhY2tldHMgMQ0KPiA+IDIwMTEtMDgtMTIgMDY6MzY6MjIuNDA2
NjA3ID4gSENJIEV2ZW50OiBNYXggU2xvdHMgQ2hhbmdlICgweDFiKSBwbGVuIDMNCj4gPiAgICBo
YW5kbGUgMTMgc2xvdHMgMQ0KPiA+IDIwMTEtMDgtMTIgMDY6MzY6MjIuNTk2NjA1ID4gSENJIEV2
ZW50OiBNb2RlIENoYW5nZSAoMHgxNCkgcGxlbiA2DQo+ID4gICAgc3RhdHVzIDB4MDAgaGFuZGxl
IDEzIG1vZGUgMHgwMiBpbnRlcnZhbCAxMDI0DQo+ID4gICAgTW9kZTogU25pZmYNCj4gPiAyMDEx
LTA4LTEyIDA2OjM2OjIzLjU3MzMzNCA8IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMCBk
bGVuIDEyDQo+ID4gICAgTDJDQVAocyk6IERpc2Nvbm4gcmVxOiBkY2lkIDB4MDA1NiBzY2lkIDB4
MDA0MQ0KPiA+IDIwMTEtMDgtMTIgMDY6MzY6MjQuMDk0NjA3ID4gSENJIEV2ZW50OiBOdW1iZXIg
b2YgQ29tcGxldGVkIFBhY2tldHMgKDB4MTMpIHBsZW4gNQ0KPiA+ICAgIGhhbmRsZSAxMyBwYWNr
ZXRzIDENCj4gPiAyMDExLTA4LTEyIDA2OjM2OjI0LjUxOTYwOSA+IEFDTCBkYXRhOiBoYW5kbGUg
MTMgZmxhZ3MgMHgwMiBkbGVuIDEyDQo+ID4gICAgTDJDQVAocyk6IERpc2Nvbm4gcnNwOiBkY2lk
IDB4MDA1NiBzY2lkIDB4MDA0MQ0KPiANCj4gTG9va3MgbGlrZSB0aGUgZGV2aWNlIHJlYWxseSBk
b24ndCBsaWtlIHRoYXQgd2Ugc3RhcnQgc2VuZGluZyBjb21tYW5kcw0KPiB3aGlsZSBpdCBpcyB0
aGUgaW5pdGlhdG9yIG9mIHRoZSBjb25uZWN0aW9uLCBhZmFpayB3ZSBhcmUganVzdA0KPiBmb2xs
b3dpbmcgdGhlIHJlY29tbWVuZGF0aW9ucyBmcm9tIHRoZSB3aGl0ZSBwYXBlciBidXQgc2luY2Ug
dGhleSBhcmUNCj4gb25seSByZWNvbW1lbmRhdGlvbnMgc29tZSBpbXBsZW1lbnRhdGlvbnMgbWF5
IGlnbm9yZSB0aGVtIGNvbXBsZXRlbHkuDQoNClRoZSBHQVZEUCBzcGVjIGlzIHNvIHVuY2xlYXIg
cmVnYXJkaW5nIHRoZSBJTlQgYW5kIEFDUCByb2xlcyB0aGF0IEkNCnRoaW5rIHRoZXJlJ3Mgc3Vw
cG9ydCBmb3IgYm90aCBtb2RlbHMuDQoNCj4gUmV0cnlpbmcgc2hvdWxkIHdvcmsgaW4gdGhpcyBj
YXNlIGJlY2F1c2UgaXQgbWlnaHQgZm9yY2UgdGhlIHJlbW90ZQ0KPiBzdGFjayB0byBlbnRlciBh
Y2NlcHRvciBtb2RlLCBidXQgdGhpcyBpcyBvbmx5IHZhbGlkIHdoZW4gd2UgYXJlDQo+IGFjdGlu
ZyBhcyBBMkRQIHNvdXJjZSBhcyBhIEEyRFAgc2luayB3ZSBzaG91bGQgcHJvYmFibHkgbm90IHJl
dHJ5IGF0DQo+IGFsbC4NCg0KSSB3aWxsIHJlLXRlc3QgdGhpcyBhcyBzb29uIGFzIEkgY2FuIGFu
ZCByZXBvcnQgdGhlIHJlc3VsdHMuDQoNClJlZ2FyZHMsDQpQZXRlciBIdXJsZXkgDQo=

2011-08-15 10:40:30

by Peter Hurley

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

SGkgTHVpeiwNCg0KT24gTW9uLCAyMDExLTA4LTE1IGF0IDA1OjQyIC0wNDAwLCBMdWl6IEF1Z3Vz
dG8gdm9uIERlbnR6IHdyb3RlOg0KPiBIaSBQZXRlciwNCj4gDQo+IE9uIE1vbiwgQXVnIDE1LCAy
MDExIGF0IDExOjIxIEFNLCBMdWl6IEF1Z3VzdG8gdm9uIERlbnR6DQo+IDxsdWl6LmRlbnR6QGdt
YWlsLmNvbT4gd3JvdGU6DQo+ID4gTG9va3MgbGlrZSB0aGUgZGV2aWNlIHJlYWxseSBkb24ndCBs
aWtlIHRoYXQgd2Ugc3RhcnQgc2VuZGluZyBjb21tYW5kcw0KPiA+IHdoaWxlIGl0IGlzIHRoZSBp
bml0aWF0b3Igb2YgdGhlIGNvbm5lY3Rpb24sIGFmYWlrIHdlIGFyZSBqdXN0DQo+ID4gZm9sbG93
aW5nIHRoZSByZWNvbW1lbmRhdGlvbnMgZnJvbSB0aGUgd2hpdGUgcGFwZXIgYnV0IHNpbmNlIHRo
ZXkgYXJlDQo+ID4gb25seSByZWNvbW1lbmRhdGlvbnMgc29tZSBpbXBsZW1lbnRhdGlvbnMgbWF5
IGlnbm9yZSB0aGVtIGNvbXBsZXRlbHkuDQo+ID4gUmV0cnlpbmcgc2hvdWxkIHdvcmsgaW4gdGhp
cyBjYXNlIGJlY2F1c2UgaXQgbWlnaHQgZm9yY2UgdGhlIHJlbW90ZQ0KPiA+IHN0YWNrIHRvIGVu
dGVyIGFjY2VwdG9yIG1vZGUsIGJ1dCB0aGlzIGlzIG9ubHkgdmFsaWQgd2hlbiB3ZSBhcmUNCj4g
PiBhY3RpbmcgYXMgQTJEUCBzb3VyY2UgYXMgYSBBMkRQIHNpbmsgd2Ugc2hvdWxkIHByb2JhYmx5
IG5vdCByZXRyeSBhdA0KPiA+IGFsbC4NCj4gDQo+IEl0IHNlZW1zIHRoZXJlIGlzIHNvbWV0aGlu
ZyBjYWxsaW5nIEF1ZGlvLkNvbm5lY3QgaW4geW91ciBzeXN0ZW0gc2luY2UNCj4gZGV2aWNlX3Nl
dF9hdmR0cF90aW1lciBpcyBvbmx5IGNhbGxlZCB3aGVuIGF1dG9fY29ubmVjdCBpcyBzZXQsIHRo
aXMNCj4gbm9ybWFsbHkgaGFwcGVuIG9ubHkgYWZ0ZXIgcGFyaW5nLCBub3Qgc3VyZSBpZiB0aGF0
IGlzIHRoZSBjYXNlLg0KDQpJIGJlbGlldmUgYXV0b19jb25uZWN0IGlzIGJlaW5nIHNldCBpbiBh
Z19jb25maXJtICh3aGljaCBpcyB0aGUgUkZDT01NDQphY2NlcHQgY2FsbGJhY2spIGZyb20gdGhl
IGRlZmF1bHQgdmFsdWUgaW4gbWFuYWdlci5jLiBUaGVzZSAyIHRyaWFscw0KZGlkbid0IGludm9s
dmUgcGFpcmluZyAobGV0IG1lIGtub3cgaWYgeW91J2QgbGlrZSB0aGUgY29tcGxldGUNCmNhcHR1
cmVzKS4NCg0KUmVnYXJkcywNClBldGVyIEh1cmxleSANCg==

2011-08-15 09:42:52

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

Hi Peter,

On Mon, Aug 15, 2011 at 11:21 AM, Luiz Augusto von Dentz
<[email protected]> wrote:
> Looks like the device really don't like that we start sending commands
> while it is the initiator of the connection, afaik we are just
> following the recommendations from the white paper but since they are
> only recommendations some implementations may ignore them completely.
> Retrying should work in this case because it might force the remote
> stack to enter acceptor mode, but this is only valid when we are
> acting as A2DP source as a A2DP sink we should probably not retry at
> all.

It seems there is something calling Audio.Connect in your system since
device_set_avdtp_timer is only called when auto_connect is set, this
normally happen only after paring, not sure if that is the case.

--
Luiz Augusto von Dentz

2011-08-15 08:21:50

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

Hi Peter,

On Mon, Aug 15, 2011 at 4:06 AM, Peter Hurley <[email protected]> wrote:
> .... AVDTP Set Configuration ....
>
> 2011-08-11 18:35:04.637300 < ACL data: handle 13 flags 0x00 dlen 18
> ? ?L2CAP(d): cid 0x0055 len 14 [psm 25]
> ? ? ?AVDTP(s): Set config cmd: transaction 7 nsp 0x00
> ? ? ? ?ACP SEID 1 - INT SEID 1
> ? ? ? ?Media Transport
> ? ? ? ?Media Codec - SBC
> ? ? ? ? ?44.1kHz
> ? ? ? ? ?JointStereo
> ? ? ? ? ?16 Blocks
> ? ? ? ? ?8 Subbands
> ? ? ? ? ?Loudness
> ? ? ? ? ?Bitpool Range 2-44
>
> .... Now, what can we do about what happens next? ....
>
> 2011-08-11 18:35:04.651185 > ACL data: handle 13 flags 0x02 dlen 6
> ? ?L2CAP(d): cid 0x0041 len 2 [psm 25]
> ? ? ?AVDTP(s): Discover cmd: transaction 10 nsp 0x00
> 2011-08-11 18:35:04.651237 < ACL data: handle 13 flags 0x00 dlen 8
> ? ?L2CAP(d): cid 0x0055 len 4 [psm 25]
> ? ? ?AVDTP(s): Discover rsp: transaction 10 nsp 0x00
> ? ? ? ?ACP SEID 1 - Audio Source (InUse)
> 2011-08-11 18:35:04.653184 > HCI Event: Number of Completed Packets (0x13) plen 5
> ? ?handle 13 packets 2
> 2011-08-11 18:35:04.693186 > ACL data: handle 13 flags 0x02 dlen 8
> ? ?L2CAP(d): cid 0x0041 len 4 [psm 25]
> ? ? ?AVDTP(s): Set config rej: transaction 7 nsp 0x00
> ? ? ? ?Reserved
> ? ? ? ?Error code 19
> 2011-08-11 18:35:04.761186 > ACL data: handle 13 flags 0x02 dlen 12
> ? ?L2CAP(s): Disconn req: dcid 0x0041 scid 0x0055
> 2011-08-11 18:35:04.761202 < ACL data: handle 13 flags 0x00 dlen 12
> ? ?L2CAP(s): Disconn rsp: dcid 0x0041 scid 0x0055
>
> The headset has disconnected the AVDTP signaling channel because we have
> marked the SEP as "in use" (which is, of course, exactly what was
> required prior to issuing the Set Config). Like I wrote in the commit
> message, "broken AVDTP implementations".

Ouch, looks pretty much broken, btw what device is that?

> My point here is a lot has happened before discovering that something is
> wrong. I'm not even sure if this headset would respond to an attempt to
> restart from this - maybe.

What happen if you try to connect A2DP manually (AudioSink.Connect)
latter? If it does succeeds then there is a chance retrying would
help.

> In the baseline trial with existing delay of 1 sec. (using HSP profile),
> the headset simply never responds to the GET_CAPABILITIES for seid 2 -
> the connection times out after 5 seconds and is disconnected:
>
> 2011-08-12 06:36:16.992657 < ACL data: handle 13 flags 0x00 dlen 6
> ? ?L2CAP(d): cid 0x0056 len 2 [psm 25]
> ? ? ?AVDTP(s): Discover cmd: transaction 3 nsp 0x00
> 2011-08-12 06:36:17.078604 > ACL data: handle 13 flags 0x02 dlen 10
> ? ?L2CAP(d): cid 0x0041 len 6 [psm 25]
> ? ? ?AVDTP(s): Discover rsp: transaction 3 nsp 0x00
> ? ? ? ?ACP SEID 1 - Audio Sink
> ? ? ? ?ACP SEID 2 - Audio Sink
> 2011-08-12 06:36:17.078692 < ACL data: handle 13 flags 0x00 dlen 7
> ? ?L2CAP(d): cid 0x0056 len 3 [psm 25]
> ? ? ?AVDTP(s): Capabilities cmd: transaction 4 nsp 0x00
> ? ? ? ?ACP SEID 1
> 2011-08-12 06:36:17.083599 > HCI Event: Number of Completed Packets (0x13) plen 5
> ? ?handle 13 packets 2
> 2011-08-12 06:36:17.122604 > HCI Event: Link Supervision Timeout Change (0x38) plen 4
> ? ?handle 13 timeout 8064
> 2011-08-12 06:36:17.372605 > ACL data: handle 13 flags 0x02 dlen 16
> ? ?L2CAP(d): cid 0x0041 len 12 [psm 25]
> ? ? ?AVDTP(s): Capabilities rsp: transaction 4 nsp 0x00
> ? ? ? ?Media Transport
> ? ? ? ?Media Codec - SBC
> ? ? ? ? ?16kHz 32kHz 44.1kHz 48kHz
> ? ? ? ? ?Mono DualChannel Stereo JointStereo
> ? ? ? ? ?4 8 12 16 Blocks
> ? ? ? ? ?4 8 Subbands
> ? ? ? ? ?SNR Loudness
> ? ? ? ? ?Bitpool Range 2-44
> 2011-08-12 06:36:17.372720 < ACL data: handle 13 flags 0x00 dlen 7
> ? ?L2CAP(d): cid 0x0056 len 3 [psm 25]
> ? ? ?AVDTP(s): Capabilities cmd: transaction 5 nsp 0x00
> ? ? ? ?ACP SEID 2
> 2011-08-12 06:36:17.594603 > HCI Event: Number of Completed Packets (0x13) plen 5
> ? ?handle 13 packets 1
> 2011-08-12 06:36:22.406607 > HCI Event: Max Slots Change (0x1b) plen 3
> ? ?handle 13 slots 1
> 2011-08-12 06:36:22.596605 > HCI Event: Mode Change (0x14) plen 6
> ? ?status 0x00 handle 13 mode 0x02 interval 1024
> ? ?Mode: Sniff
> 2011-08-12 06:36:23.573334 < ACL data: handle 13 flags 0x00 dlen 12
> ? ?L2CAP(s): Disconn req: dcid 0x0056 scid 0x0041
> 2011-08-12 06:36:24.094607 > HCI Event: Number of Completed Packets (0x13) plen 5
> ? ?handle 13 packets 1
> 2011-08-12 06:36:24.519609 > ACL data: handle 13 flags 0x02 dlen 12
> ? ?L2CAP(s): Disconn rsp: dcid 0x0056 scid 0x0041

Looks like the device really don't like that we start sending commands
while it is the initiator of the connection, afaik we are just
following the recommendations from the white paper but since they are
only recommendations some implementations may ignore them completely.
Retrying should work in this case because it might force the remote
stack to enter acceptor mode, but this is only valid when we are
acting as A2DP source as a A2DP sink we should probably not retry at
all.

--
Luiz Augusto von Dentz

2011-08-15 01:06:03

by Peter Hurley

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

SGkgTHVpeiwNCg0KT24gU3VuLCAyMDExLTA4LTE0IGF0IDE1OjU3IC0wNDAwLCBMdWl6IEF1Z3Vz
dG8gdm9uIERlbnR6IHdyb3RlOg0KPiBIaSBQZXRlciwNCj4gDQo+IE9uIEZyaSwgQXVnIDEyLCAy
MDExIGF0IDY6MDAgUE0sIFBldGVyIEh1cmxleSA8cGV0ZXJAaHVybGV5c29mdHdhcmUuY29tPiB3
cm90ZToNCj4gPiBBVkRUUF9DT05ORUNUX1RJTUVPVVQgY29udHJvbHMgdGhlIGRlbGF5IGJldHdl
ZW4gSFNQL0hGUA0KPiA+IGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCBhbmQgQVZEVFAgc2lnbmFs
IGNoYW5uZWwgZXN0YWJsaXNobWVudC4NCj4gPiBUaGUgb3JpZ2luYWwgdmFsdWUgb2YgMSBzZWMu
IGlzIHRvbyBzaG9ydCB0byBhdm9pZCByYWNpbmcgZm9yIEFWRFRQDQo+ID4gY29ubmVjdGlvbiBl
c3RhYmxpc2htZW50IChlZy4sIGlmIHRoZSBkZXZpY2UgY29udGludWVzIHRvIGNvbmZpZ3VyZQ0K
PiA+IHRoZSBIRlAgc2VydmljZSBsZXZlbCBjb25uZWN0aW9uIHdpdGggYWRkJ2wgQVQgY21kcyku
DQo+ID4NCj4gPiBTb21lIGRldmljZXMgaGF2ZSBicm9rZW4gQVZEVFAgaW1wbGVtZW50YXRpb25z
IHRoYXQganVzdCBjYW5ub3QNCj4gPiBoYW5kbGUgdGhlIHJhY2UgY29uZGl0aW9ucyB0aGF0IGFy
aXNlIGlmIGJvdGggZGV2aWNlcyBhcmUgYXR0ZW1wdGluZw0KPiA+IHN0cmVhbSBlc3RhYmxpc2ht
ZW50IGF0IHRoZSBzYW1lIHRpbWUuIEhvd2V2ZXIsIHRoZXNlIGNvbmRpdGlvbnMgYXJpc2UNCj4g
PiBvbmx5IHdoZW4gdGhlIHJlbW90ZSBkZXZpY2UgaXMgdGhlIEFDTCBpbml0aWF0b3IgKGFuZCBp
biBwcmFjdGljZSwgdGhlDQo+ID4gUkZDT01NIGluaXRpYXRvciBhcyB3ZWxsKS4gIFRoaXMgZml4
IGJ1bXBzIG91dCB0aGUgdGltZW91dCB2YWx1ZSBvbmx5DQo+ID4gd2hlbiB0aGUgaGVhZHNldCBo
YXMgaW5pdGlhdGVkIHRoZSBsaW5rLg0KPiA+IC0tLQ0KPiA+DQo+ID4gdjI6IEZvbGxvdyBlc3Rh
Ymxpc2hlZCBuYW1pbmcgY29udmVudGlvbg0KPiANCj4gSG93IGFib3V0IGlmIHdlIGFkZCBzb21l
IHJldHJ5IGxvZ2ljPyBJIHRoaW5rIGl0IHdvdWxkIGJlIG1vcmUNCj4gZWZmaWNpZW50IHNpbmNl
IGl0IHdvdWxkIG5vdCBhZGQgYW4gZXh0cmEgZGVsYXkgZm9yIGRldmljZXMgdGhhdCBkbw0KPiBu
b3QgaGF2ZSBzdWNoIHByb2JsZW0sIHBlcmhhcHMgd2UgY2FuIGV2ZW4gZWxpbWluYXRlIHRoZSAx
IHNlYyB3ZQ0KPiBjdXJyZW50bHkgaGF2ZSBhbmQganVzdCByZXRyeSBpZiB3ZSBkZXRlY3QgYSBj
b2xsaXNpb24gaGFzIGhhcHBlbmVkLg0KDQpJJ20gbm90IGF0dGFjaGVkIHRvIGEgcGFydGljdWxh
ciBzb2x1dGlvbiAtIHRiaCwgSSBkb24ndCByZWFsbHkgY2FyZSBpZg0KY29sbGVjdGl2ZWx5IHRo
ZSBkZWNpc2lvbiBpcyB0byByZWZ1c2UgdG8gYWRkcmVzcyBpbnRlcm9wZXJhYmlsaXR5IHdpdGgN
CiJicm9rZW4iIGRldmljZXMuIEknbSBhd2FyZSB0aGF0IHRoaXMgaXMgbGVzcyB0aGFuIHBsZWFz
YW50IGFuZCBJDQpzZXJpb3VzbHkgY29uc2lkZXJlZCBub3Qgc3VibWl0dGluZyB0aGlzIGF0IGFs
bC4NCg0KQXMgZmFyIGFzIHRha2luZyBhIGRpZmZlcmVudCBhcHByb2FjaCAoYmUgaXQgcmV0cnkg
b3Igd2hhdGV2ZXIpLCBoZXJlJ3MNCndoYXQgd2UncmUgdXAgYWdhaW5zdC4gSW4gdGhlIHRyaWFs
IGV4Y2VycHRlZCBiZWxvdywgd2UgcmVtb3ZlZCB0aGUNCmV4dHJhIGRlbGF5ICh0aHVzIHZpcnR1
YWxseSBndWFyYW50ZWVpbmcgbm8gcmFjZSkuIEV4Y2VycHQgb2YNCmhzX2Nvbm4udHJpYWwjMkE6
DQoNCi4uLi4gaGVhZHNldCBpbml0aWF0ZXMgUkZDT01NIC4uLi4NCg0KMjAxMS0wOC0xMSAxODoz
NTowMi4yNjQxODUgPiBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDIgZGxlbiAxMg0KICAg
IEwyQ0FQKHMpOiBDb25uZWN0IHJlcTogcHNtIDMgc2NpZCAweDAwNTMNCjIwMTEtMDgtMTEgMTg6
MzU6MDIuMjY0MjAxIDwgQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAwIGRsZW4gMTYNCiAg
ICBMMkNBUChzKTogQ29ubmVjdCByc3A6IGRjaWQgMHgwMDQwIHNjaWQgMHgwMDUzIHJlc3VsdCAw
IHN0YXR1cyAwDQogICAgICBDb25uZWN0aW9uIHN1Y2Nlc3NmdWwNCg0KLi4uLiA8c25pcCB0eXBp
Y2FsIFJGQ09NTSBpbml0PiAuLi4uDQoNCjIwMTEtMDgtMTEgMTg6MzU6MDMuNzc4MTg1ID4gQUNM
IGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAyIGRsZW4gMjgNCiAgICBMMkNBUChkKTogY2lkIDB4
MDA0MCBsZW4gMjQgW3BzbSAzXQ0KICAgICAgUkZDT01NKGQpOiBVSUg6IGNyIDEgZGxjaSAyNiBw
ZiAxIGlsZW4gMTkgZmNzIDB4ZjggY3JlZGl0cyAyDQogICAgICAwMDAwOiA0MSA1NCAyYiA0MyA0
ZCA0NSA1MiAzZCAgMzMgMmMgMjAgMzAgMmMgMjAgMzAgMmMgIEFUK0NNRVI9MywgMCwgMCwNCiAg
ICAgIDAwMTA6IDIwIDMxIDBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEuDQoyMDExLTA4LTExIDE4OjM1OjAzLjc3ODI1NiA8IEFDTCBkYXRhOiBoYW5kbGUgMTMg
ZmxhZ3MgMHgwMCBkbGVuIDE0DQogICAgTDJDQVAoZCk6IGNpZCAweDAwNTMgbGVuIDEwIFtwc20g
M10NCiAgICAgIFJGQ09NTShkKTogVUlIOiBjciAwIGRsY2kgMjYgcGYgMCBpbGVuIDYgZmNzIDB4
M2UgDQogICAgICAwMDAwOiAwZCAwYSA0ZiA0YiAwZCAwYSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC4uT0suLg0KDQouLi4uIEhGUCBTTEMgLT4gaW1tZWRpYXRlbHkgaW5pdGlhdGUg
QVZEVFAgc2lnbmFsaW5nIGNoYW5uZWwgLi4uLg0KDQoyMDExLTA4LTExIDE4OjM1OjAzLjc3ODQx
MCA8IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMCBkbGVuIDEyDQogICAgTDJDQVAocyk6
IENvbm5lY3QgcmVxOiBwc20gMjUgc2NpZCAweDAwNDENCjIwMTEtMDgtMTEgMTg6MzU6MDMuNzg0
MTgzID4gSENJIEV2ZW50OiBOdW1iZXIgb2YgQ29tcGxldGVkIFBhY2tldHMgKDB4MTMpIHBsZW4g
NQ0KICAgIGhhbmRsZSAxMyBwYWNrZXRzIDINCjIwMTEtMDgtMTEgMTg6MzU6MDMuNzk1MTgzID4g
QUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAyIGRsZW4gMTYNCiAgICBMMkNBUChzKTogQ29u
bmVjdCByc3A6IGRjaWQgMHgwMDU1IHNjaWQgMHgwMDQxIHJlc3VsdCAxIHN0YXR1cyAyDQogICAg
ICBDb25uZWN0aW9uIHBlbmRpbmcgLSBBdXRob3JpemF0aW9uIHBlbmRpbmcNCjIwMTEtMDgtMTEg
MTg6MzU6MDQuMTc3MTg1ID4gQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAyIGRsZW4gMTkN
CiAgICBMMkNBUChkKTogY2lkIDB4MDA0MCBsZW4gMTUgW3BzbSAzXQ0KICAgICAgUkZDT01NKGQp
OiBVSUg6IGNyIDEgZGxjaSAyNiBwZiAxIGlsZW4gMTAgZmNzIDB4ZjggY3JlZGl0cyAxDQogICAg
ICAwMDAwOiA0MSA1NCAyYiA1NiA0NyA1MyAzZCAzMSAgMzUgMGQgICAgICAgICAgICAgICAgICAg
IEFUK1ZHUz0xNS4NCjIwMTEtMDgtMTEgMTg6MzU6MDQuMTc3MjYwIDwgQUNMIGRhdGE6IGhhbmRs
ZSAxMyBmbGFncyAweDAwIGRsZW4gMTQNCiAgICBMMkNBUChkKTogY2lkIDB4MDA1MyBsZW4gMTAg
W3BzbSAzXQ0KICAgICAgUkZDT01NKGQpOiBVSUg6IGNyIDAgZGxjaSAyNiBwZiAwIGlsZW4gNiBm
Y3MgMHgzZSANCiAgICAgIDAwMDA6IDBkIDBhIDRmIDRiIDBkIDBhICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLi5PSy4uDQoyMDExLTA4LTExIDE4OjM1OjA0LjMzMDE4NCA+IEhDSSBF
dmVudDogTnVtYmVyIG9mIENvbXBsZXRlZCBQYWNrZXRzICgweDEzKSBwbGVuIDUNCiAgICBoYW5k
bGUgMTMgcGFja2V0cyAxDQoyMDExLTA4LTExIDE4OjM1OjA0LjM0MDE4NSA+IEFDTCBkYXRhOiBo
YW5kbGUgMTMgZmxhZ3MgMHgwMiBkbGVuIDE2DQogICAgTDJDQVAocyk6IENvbm5lY3QgcnNwOiBk
Y2lkIDB4MDA1NSBzY2lkIDB4MDA0MSByZXN1bHQgMCBzdGF0dXMgMA0KICAgICAgQ29ubmVjdGlv
biBzdWNjZXNzZnVsDQoNCi4uLi4gc2lnbmFsaW5nIGNoYW5uZWwgT0sgLT4gY29uZmlnIGNoYW4g
Li4uLg0KDQoyMDExLTA4LTExIDE4OjM1OjA0LjM0MDE5NyA8IEFDTCBkYXRhOiBoYW5kbGUgMTMg
ZmxhZ3MgMHgwMCBkbGVuIDEyDQogICAgTDJDQVAocyk6IENvbmZpZyByZXE6IGRjaWQgMHgwMDU1
IGZsYWdzIDB4MDAgY2xlbiAwDQoyMDExLTA4LTExIDE4OjM1OjA0LjM1MDE4NCA+IEFDTCBkYXRh
OiBoYW5kbGUgMTMgZmxhZ3MgMHgwMiBkbGVuIDE2DQogICAgTDJDQVAocyk6IENvbmZpZyByZXE6
IGRjaWQgMHgwMDQxIGZsYWdzIDB4MDAgY2xlbiA0DQogICAgICBNVFUgODk1IA0KMjAxMS0wOC0x
MSAxODozNTowNC4zNTAxOTQgPCBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDAgZGxlbiAx
OA0KICAgIEwyQ0FQKHMpOiBDb25maWcgcnNwOiBzY2lkIDB4MDA1NSBmbGFncyAweDAwIHJlc3Vs
dCAwIGNsZW4gNA0KICAgICAgTVRVIDg5NSANCjIwMTEtMDgtMTEgMTg6MzU6MDQuMzYxMTgyID4g
SENJIEV2ZW50OiBOdW1iZXIgb2YgQ29tcGxldGVkIFBhY2tldHMgKDB4MTMpIHBsZW4gNQ0KICAg
IGhhbmRsZSAxMyBwYWNrZXRzIDINCjIwMTEtMDgtMTEgMTg6MzU6MDQuMzk1MTg0ID4gQUNMIGRh
dGE6IGhhbmRsZSAxMyBmbGFncyAweDAyIGRsZW4gMTQNCiAgICBMMkNBUChzKTogQ29uZmlnIHJz
cDogc2NpZCAweDAwNDEgZmxhZ3MgMHgwMCByZXN1bHQgMCBjbGVuIDANCiAgICAgIFN1Y2Nlc3MN
Cg0KLi4uLiBBVkRUUCBEaXNjb3ZlciArIEdldCBDYXBhYmlsaXRpZXMgLi4uLg0KDQoyMDExLTA4
LTExIDE4OjM1OjA0LjM5NTI0MCA8IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMCBkbGVu
IDYNCiAgICBMMkNBUChkKTogY2lkIDB4MDA1NSBsZW4gMiBbcHNtIDI1XQ0KICAgICAgQVZEVFAo
cyk6IERpc2NvdmVyIGNtZDogdHJhbnNhY3Rpb24gNCBuc3AgMHgwMA0KMjAxMS0wOC0xMSAxODoz
NTowNC40ODExODUgPiBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDIgZGxlbiAxMA0KICAg
IEwyQ0FQKGQpOiBjaWQgMHgwMDQxIGxlbiA2IFtwc20gMjVdDQogICAgICBBVkRUUChzKTogRGlz
Y292ZXIgcnNwOiB0cmFuc2FjdGlvbiA0IG5zcCAweDAwDQogICAgICAgIEFDUCBTRUlEIDEgLSBB
dWRpbyBTaW5rDQogICAgICAgIEFDUCBTRUlEIDIgLSBBdWRpbyBTaW5rDQoyMDExLTA4LTExIDE4
OjM1OjA0LjQ4MTI5NCA8IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMCBkbGVuIDcNCiAg
ICBMMkNBUChkKTogY2lkIDB4MDA1NSBsZW4gMyBbcHNtIDI1XQ0KICAgICAgQVZEVFAocyk6IENh
cGFiaWxpdGllcyBjbWQ6IHRyYW5zYWN0aW9uIDUgbnNwIDB4MDANCiAgICAgICAgQUNQIFNFSUQg
MQ0KMjAxMS0wOC0xMSAxODozNTowNC41MDYxODQgPiBIQ0kgRXZlbnQ6IE51bWJlciBvZiBDb21w
bGV0ZWQgUGFja2V0cyAoMHgxMykgcGxlbiA1DQogICAgaGFuZGxlIDEzIHBhY2tldHMgMg0KMjAx
MS0wOC0xMSAxODozNTowNC41MTYxODQgPiBIQ0kgRXZlbnQ6IExpbmsgU3VwZXJ2aXNpb24gVGlt
ZW91dCBDaGFuZ2UgKDB4MzgpIHBsZW4gNA0KICAgIGhhbmRsZSAxMyB0aW1lb3V0IDgwNjQNCjIw
MTEtMDgtMTEgMTg6MzU6MDQuNTYyMTg0ID4gQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAy
IGRsZW4gMTYNCiAgICBMMkNBUChkKTogY2lkIDB4MDA0MSBsZW4gMTIgW3BzbSAyNV0NCiAgICAg
IEFWRFRQKHMpOiBDYXBhYmlsaXRpZXMgcnNwOiB0cmFuc2FjdGlvbiA1IG5zcCAweDAwDQogICAg
ICAgIE1lZGlhIFRyYW5zcG9ydA0KICAgICAgICBNZWRpYSBDb2RlYyAtIFNCQw0KICAgICAgICAg
IDE2a0h6IDMya0h6IDQ0LjFrSHogNDhrSHogDQogICAgICAgICAgTW9ubyBEdWFsQ2hhbm5lbCBT
dGVyZW8gSm9pbnRTdGVyZW8gDQogICAgICAgICAgNCA4IDEyIDE2IEJsb2Nrcw0KICAgICAgICAg
IDQgOCBTdWJiYW5kcw0KICAgICAgICAgIFNOUiBMb3VkbmVzcyANCiAgICAgICAgICBCaXRwb29s
IFJhbmdlIDItNDQNCjIwMTEtMDgtMTEgMTg6MzU6MDQuNTYyMjQwIDwgQUNMIGRhdGE6IGhhbmRs
ZSAxMyBmbGFncyAweDAwIGRsZW4gNw0KICAgIEwyQ0FQKGQpOiBjaWQgMHgwMDU1IGxlbiAzIFtw
c20gMjVdDQogICAgICBBVkRUUChzKTogQ2FwYWJpbGl0aWVzIGNtZDogdHJhbnNhY3Rpb24gNiBu
c3AgMHgwMA0KICAgICAgICBBQ1AgU0VJRCAyDQoyMDExLTA4LTExIDE4OjM1OjA0LjYzNzE4NiA+
IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMiBkbGVuIDE2DQogICAgTDJDQVAoZCk6IGNp
ZCAweDAwNDEgbGVuIDEyIFtwc20gMjVdDQogICAgICBBVkRUUChzKTogQ2FwYWJpbGl0aWVzIHJz
cDogdHJhbnNhY3Rpb24gNiBuc3AgMHgwMA0KICAgICAgICBNZWRpYSBUcmFuc3BvcnQNCiAgICAg
ICAgTWVkaWEgQ29kZWMgLSBNUEVHLTEsMiBBdWRpbw0KICAgICAgICAgIDNGIDA3IEZGIEZFIA0K
DQouLi4uIEFWRFRQIFNldCBDb25maWd1cmF0aW9uIC4uLi4NCg0KMjAxMS0wOC0xMSAxODozNTow
NC42MzczMDAgPCBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDAgZGxlbiAxOA0KICAgIEwy
Q0FQKGQpOiBjaWQgMHgwMDU1IGxlbiAxNCBbcHNtIDI1XQ0KICAgICAgQVZEVFAocyk6IFNldCBj
b25maWcgY21kOiB0cmFuc2FjdGlvbiA3IG5zcCAweDAwDQogICAgICAgIEFDUCBTRUlEIDEgLSBJ
TlQgU0VJRCAxDQogICAgICAgIE1lZGlhIFRyYW5zcG9ydA0KICAgICAgICBNZWRpYSBDb2RlYyAt
IFNCQw0KICAgICAgICAgIDQ0LjFrSHogDQogICAgICAgICAgSm9pbnRTdGVyZW8gDQogICAgICAg
ICAgMTYgQmxvY2tzDQogICAgICAgICAgOCBTdWJiYW5kcw0KICAgICAgICAgIExvdWRuZXNzIA0K
ICAgICAgICAgIEJpdHBvb2wgUmFuZ2UgMi00NA0KDQouLi4uIE5vdywgd2hhdCBjYW4gd2UgZG8g
YWJvdXQgd2hhdCBoYXBwZW5zIG5leHQ/IC4uLi4NCg0KMjAxMS0wOC0xMSAxODozNTowNC42NTEx
ODUgPiBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDIgZGxlbiA2DQogICAgTDJDQVAoZCk6
IGNpZCAweDAwNDEgbGVuIDIgW3BzbSAyNV0NCiAgICAgIEFWRFRQKHMpOiBEaXNjb3ZlciBjbWQ6
IHRyYW5zYWN0aW9uIDEwIG5zcCAweDAwDQoyMDExLTA4LTExIDE4OjM1OjA0LjY1MTIzNyA8IEFD
TCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMCBkbGVuIDgNCiAgICBMMkNBUChkKTogY2lkIDB4
MDA1NSBsZW4gNCBbcHNtIDI1XQ0KICAgICAgQVZEVFAocyk6IERpc2NvdmVyIHJzcDogdHJhbnNh
Y3Rpb24gMTAgbnNwIDB4MDANCiAgICAgICAgQUNQIFNFSUQgMSAtIEF1ZGlvIFNvdXJjZSAoSW5V
c2UpDQoyMDExLTA4LTExIDE4OjM1OjA0LjY1MzE4NCA+IEhDSSBFdmVudDogTnVtYmVyIG9mIENv
bXBsZXRlZCBQYWNrZXRzICgweDEzKSBwbGVuIDUNCiAgICBoYW5kbGUgMTMgcGFja2V0cyAyDQoy
MDExLTA4LTExIDE4OjM1OjA0LjY5MzE4NiA+IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgw
MiBkbGVuIDgNCiAgICBMMkNBUChkKTogY2lkIDB4MDA0MSBsZW4gNCBbcHNtIDI1XQ0KICAgICAg
QVZEVFAocyk6IFNldCBjb25maWcgcmVqOiB0cmFuc2FjdGlvbiA3IG5zcCAweDAwDQogICAgICAg
IFJlc2VydmVkDQogICAgICAgIEVycm9yIGNvZGUgMTkNCjIwMTEtMDgtMTEgMTg6MzU6MDQuNzYx
MTg2ID4gQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAyIGRsZW4gMTINCiAgICBMMkNBUChz
KTogRGlzY29ubiByZXE6IGRjaWQgMHgwMDQxIHNjaWQgMHgwMDU1DQoyMDExLTA4LTExIDE4OjM1
OjA0Ljc2MTIwMiA8IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3MgMHgwMCBkbGVuIDEyDQogICAg
TDJDQVAocyk6IERpc2Nvbm4gcnNwOiBkY2lkIDB4MDA0MSBzY2lkIDB4MDA1NQ0KDQpUaGUgaGVh
ZHNldCBoYXMgZGlzY29ubmVjdGVkIHRoZSBBVkRUUCBzaWduYWxpbmcgY2hhbm5lbCBiZWNhdXNl
IHdlIGhhdmUNCm1hcmtlZCB0aGUgU0VQIGFzICJpbiB1c2UiICh3aGljaCBpcywgb2YgY291cnNl
LCBleGFjdGx5IHdoYXQgd2FzDQpyZXF1aXJlZCBwcmlvciB0byBpc3N1aW5nIHRoZSBTZXQgQ29u
ZmlnKS4gTGlrZSBJIHdyb3RlIGluIHRoZSBjb21taXQNCm1lc3NhZ2UsICJicm9rZW4gQVZEVFAg
aW1wbGVtZW50YXRpb25zIi4NCg0KTXkgcG9pbnQgaGVyZSBpcyBhIGxvdCBoYXMgaGFwcGVuZWQg
YmVmb3JlIGRpc2NvdmVyaW5nIHRoYXQgc29tZXRoaW5nIGlzDQp3cm9uZy4gSSdtIG5vdCBldmVu
IHN1cmUgaWYgdGhpcyBoZWFkc2V0IHdvdWxkIHJlc3BvbmQgdG8gYW4gYXR0ZW1wdCB0bw0KcmVz
dGFydCBmcm9tIHRoaXMgLSBtYXliZS4NCg0KSW4gdGhlIGJhc2VsaW5lIHRyaWFsIHdpdGggZXhp
c3RpbmcgZGVsYXkgb2YgMSBzZWMuICh1c2luZyBIU1AgcHJvZmlsZSksDQp0aGUgaGVhZHNldCBz
aW1wbHkgbmV2ZXIgcmVzcG9uZHMgdG8gdGhlIEdFVF9DQVBBQklMSVRJRVMgZm9yIHNlaWQgMiAt
DQp0aGUgY29ubmVjdGlvbiB0aW1lcyBvdXQgYWZ0ZXIgNSBzZWNvbmRzIGFuZCBpcyBkaXNjb25u
ZWN0ZWQ6DQoNCjIwMTEtMDgtMTIgMDY6MzY6MTYuOTkyNjU3IDwgQUNMIGRhdGE6IGhhbmRsZSAx
MyBmbGFncyAweDAwIGRsZW4gNg0KICAgIEwyQ0FQKGQpOiBjaWQgMHgwMDU2IGxlbiAyIFtwc20g
MjVdDQogICAgICBBVkRUUChzKTogRGlzY292ZXIgY21kOiB0cmFuc2FjdGlvbiAzIG5zcCAweDAw
DQoyMDExLTA4LTEyIDA2OjM2OjE3LjA3ODYwNCA+IEFDTCBkYXRhOiBoYW5kbGUgMTMgZmxhZ3Mg
MHgwMiBkbGVuIDEwDQogICAgTDJDQVAoZCk6IGNpZCAweDAwNDEgbGVuIDYgW3BzbSAyNV0NCiAg
ICAgIEFWRFRQKHMpOiBEaXNjb3ZlciByc3A6IHRyYW5zYWN0aW9uIDMgbnNwIDB4MDANCiAgICAg
ICAgQUNQIFNFSUQgMSAtIEF1ZGlvIFNpbmsNCiAgICAgICAgQUNQIFNFSUQgMiAtIEF1ZGlvIFNp
bmsNCjIwMTEtMDgtMTIgMDY6MzY6MTcuMDc4NjkyIDwgQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFn
cyAweDAwIGRsZW4gNw0KICAgIEwyQ0FQKGQpOiBjaWQgMHgwMDU2IGxlbiAzIFtwc20gMjVdDQog
ICAgICBBVkRUUChzKTogQ2FwYWJpbGl0aWVzIGNtZDogdHJhbnNhY3Rpb24gNCBuc3AgMHgwMA0K
ICAgICAgICBBQ1AgU0VJRCAxDQoyMDExLTA4LTEyIDA2OjM2OjE3LjA4MzU5OSA+IEhDSSBFdmVu
dDogTnVtYmVyIG9mIENvbXBsZXRlZCBQYWNrZXRzICgweDEzKSBwbGVuIDUNCiAgICBoYW5kbGUg
MTMgcGFja2V0cyAyDQoyMDExLTA4LTEyIDA2OjM2OjE3LjEyMjYwNCA+IEhDSSBFdmVudDogTGlu
ayBTdXBlcnZpc2lvbiBUaW1lb3V0IENoYW5nZSAoMHgzOCkgcGxlbiA0DQogICAgaGFuZGxlIDEz
IHRpbWVvdXQgODA2NA0KMjAxMS0wOC0xMiAwNjozNjoxNy4zNzI2MDUgPiBBQ0wgZGF0YTogaGFu
ZGxlIDEzIGZsYWdzIDB4MDIgZGxlbiAxNg0KICAgIEwyQ0FQKGQpOiBjaWQgMHgwMDQxIGxlbiAx
MiBbcHNtIDI1XQ0KICAgICAgQVZEVFAocyk6IENhcGFiaWxpdGllcyByc3A6IHRyYW5zYWN0aW9u
IDQgbnNwIDB4MDANCiAgICAgICAgTWVkaWEgVHJhbnNwb3J0DQogICAgICAgIE1lZGlhIENvZGVj
IC0gU0JDDQogICAgICAgICAgMTZrSHogMzJrSHogNDQuMWtIeiA0OGtIeiANCiAgICAgICAgICBN
b25vIER1YWxDaGFubmVsIFN0ZXJlbyBKb2ludFN0ZXJlbyANCiAgICAgICAgICA0IDggMTIgMTYg
QmxvY2tzDQogICAgICAgICAgNCA4IFN1YmJhbmRzDQogICAgICAgICAgU05SIExvdWRuZXNzIA0K
ICAgICAgICAgIEJpdHBvb2wgUmFuZ2UgMi00NA0KMjAxMS0wOC0xMiAwNjozNjoxNy4zNzI3MjAg
PCBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDAgZGxlbiA3DQogICAgTDJDQVAoZCk6IGNp
ZCAweDAwNTYgbGVuIDMgW3BzbSAyNV0NCiAgICAgIEFWRFRQKHMpOiBDYXBhYmlsaXRpZXMgY21k
OiB0cmFuc2FjdGlvbiA1IG5zcCAweDAwDQogICAgICAgIEFDUCBTRUlEIDINCjIwMTEtMDgtMTIg
MDY6MzY6MTcuNTk0NjAzID4gSENJIEV2ZW50OiBOdW1iZXIgb2YgQ29tcGxldGVkIFBhY2tldHMg
KDB4MTMpIHBsZW4gNQ0KICAgIGhhbmRsZSAxMyBwYWNrZXRzIDENCjIwMTEtMDgtMTIgMDY6MzY6
MjIuNDA2NjA3ID4gSENJIEV2ZW50OiBNYXggU2xvdHMgQ2hhbmdlICgweDFiKSBwbGVuIDMNCiAg
ICBoYW5kbGUgMTMgc2xvdHMgMQ0KMjAxMS0wOC0xMiAwNjozNjoyMi41OTY2MDUgPiBIQ0kgRXZl
bnQ6IE1vZGUgQ2hhbmdlICgweDE0KSBwbGVuIDYNCiAgICBzdGF0dXMgMHgwMCBoYW5kbGUgMTMg
bW9kZSAweDAyIGludGVydmFsIDEwMjQNCiAgICBNb2RlOiBTbmlmZg0KMjAxMS0wOC0xMiAwNjoz
NjoyMy41NzMzMzQgPCBBQ0wgZGF0YTogaGFuZGxlIDEzIGZsYWdzIDB4MDAgZGxlbiAxMg0KICAg
IEwyQ0FQKHMpOiBEaXNjb25uIHJlcTogZGNpZCAweDAwNTYgc2NpZCAweDAwNDENCjIwMTEtMDgt
MTIgMDY6MzY6MjQuMDk0NjA3ID4gSENJIEV2ZW50OiBOdW1iZXIgb2YgQ29tcGxldGVkIFBhY2tl
dHMgKDB4MTMpIHBsZW4gNQ0KICAgIGhhbmRsZSAxMyBwYWNrZXRzIDENCjIwMTEtMDgtMTIgMDY6
MzY6MjQuNTE5NjA5ID4gQUNMIGRhdGE6IGhhbmRsZSAxMyBmbGFncyAweDAyIGRsZW4gMTINCiAg
ICBMMkNBUChzKTogRGlzY29ubiByc3A6IGRjaWQgMHgwMDU2IHNjaWQgMHgwMDQxDQoNCkxldCBt
ZSBrbm93IHdoYXQgeW91IHRoaW5rLg0KDQpSZWdhcmRzLA0KUGV0ZXIgSHVybGV5DQo=

2011-08-14 19:57:43

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ v2] Increase timeout before initiating AVDTP connection

Hi Peter,

On Fri, Aug 12, 2011 at 6:00 PM, Peter Hurley <[email protected]> wrote:
> AVDTP_CONNECT_TIMEOUT controls the delay between HSP/HFP
> connection establishment and AVDTP signal channel establishment.
> The original value of 1 sec. is too short to avoid racing for AVDTP
> connection establishment (eg., if the device continues to configure
> the HFP service level connection with add'l AT cmds).
>
> Some devices have broken AVDTP implementations that just cannot
> handle the race conditions that arise if both devices are attempting
> stream establishment at the same time. However, these conditions arise
> only when the remote device is the ACL initiator (and in practice, the
> RFCOMM initiator as well). ?This fix bumps out the timeout value only
> when the headset has initiated the link.
> ---
>
> v2: Follow established naming convention

How about if we add some retry logic? I think it would be more
efficient since it would not add an extra delay for devices that do
not have such problem, perhaps we can even eliminate the 1 sec we
currently have and just retry if we detect a collision has happened.

--
Luiz Augusto von Dentz

2011-12-01 13:26:49

by sachin.athanikar

[permalink] [raw]
Subject: GAVDP & GOEP Version

Hi,

Please let me know the version of GAVDP & GOEP is used in BlueZ.

Thanks
Sachin

________________________________
Subject to local law, communications with Accenture and its affiliates including telephone calls and emails (including content), may be monitored by our systems for the purposes of security and the assessment of internal compliance with Accenture policy.
______________________________________________________________________________________

http://www.accenture.com