On Wed, 2016-11-30 at 16:54 +0200, Luiz Augusto von Dentz wrote: > Hi, > > On Wed, Nov 30, 2016 at 11:42 AM, Anthony Bourguignon > <contact@xxxxxxxxxx> wrote: > > Le mardi 29 novembre 2016 à 20:51 -0800, Cameron Gutman a écrit : > > > Hi, > > > > > > I'm interesting in continuing the debugging of the Xbox One S > > > controller's issues with the BlueZ stack (original report [0]). > > > I confirmed the issue still affects v4.9-rc7. I've also tried > > > Vinicius's patch from [1] applied on v4.9-rc7 without success. > > > > > > The controller is updated with the latest firmware and connects > > > reliably to (at least) macOS Sierra, Windows 10 14393, Android > > > 6.0.1, 7.0, and 7.1.1 (including devices using 3.10 and 3.18 > > > based kernels). > > > > > > I'm happy to collect logs, test other patches, etc. > > > > Steam has made a patch referencing the xbox one S controller : > > https://github.com/ValveSoftware/steamlink-sdk/commit/d6afa93787217 > > 033a0f0f5db5f557b252c36260e#diff- > > 45ba5a41f43606276c9bf9018eed43c2 > > > > You should check this. > > That is a big hammer, instead I was thinking in just ignoring the > Unknown option since basic mode is default, so please check with the > following patch. > No dice. I think ignoring it won't work because it's the controller itself initiating the disconnect. Attached an hcidump log with the patch applied and another with disable_ertm set to 1.
HCI sniffer - Bluetooth packet analyzer ver 5.43 device: hci0 snap_len: 1500 filter: 0xffffffffffffffff > HCI Event: Vendor (0xff) plen 2 > HCI Event: Vendor (0xff) plen 2 > HCI Event: Connect Request (0x04) plen 10 bdaddr C8:3F:26:0D:A4:57 class 0x000508 type ACL < HCI Command: Accept Connection Request (0x01|0x0009) plen 7 bdaddr C8:3F:26:0D:A4:57 role 0x00 Role: Master > HCI Event: Command Status (0x0f) plen 4 Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1 > HCI Event: Role Change (0x12) plen 8 status 0x00 bdaddr C8:3F:26:0D:A4:57 role 0x00 Role: Master > HCI Event: Vendor (0xff) plen 4 > HCI Event: Connect Complete (0x03) plen 11 status 0x00 handle 256 bdaddr C8:3F:26:0D:A4:57 type ACL encrypt 0x00 < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2 handle 256 > HCI Event: Command Status (0x0f) plen 4 Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1 > HCI Event: Max Slots Change (0x1b) plen 3 handle 256 slots 5 > HCI Event: Read Remote Supported Features (0x0b) plen 11 status 0x00 handle 256 Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xfd 0x7b 0x87 < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3 handle 256 page 1 > HCI Event: Command Status (0x0f) plen 4 Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1 > HCI Event: Link Key Request (0x17) plen 6 bdaddr C8:3F:26:0D:A4:57 < HCI Command: Link Key Request Reply (0x01|0x000b) plen 22 bdaddr C8:3F:26:0D:A4:57 key 4723E829AE0274800390B1AE4AA4504D > HCI Event: Command Complete (0x0e) plen 10 Link Key Request Reply (0x01|0x000b) ncmd 1 status 0x00 bdaddr C8:3F:26:0D:A4:57 > HCI Event: Read Remote Extended Features (0x23) plen 13 status 0x00 handle 256 page 1 max 3 Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 < HCI Command: Remote Name Request (0x01|0x0019) plen 10 bdaddr C8:3F:26:0D:A4:57 mode 2 clkoffset 0x0000 < ACL data: handle 256 flags 0x00 dlen 10 L2CAP(s): Info req: type 2 > HCI Event: Command Status (0x0f) plen 4 Remote Name Request (0x01|0x0019) status 0x00 ncmd 1 > HCI Event: Encrypt Change (0x08) plen 4 status 0x00 handle 256 encrypt 0x01 < HCI Command: Read Encryption Key Size (0x05|0x0008) plen 2 > HCI Event: Command Complete (0x0e) plen 7 Read Encryption Key Size (0x05|0x0008) ncmd 1 > ACL data: handle 256 flags 0x02 dlen 12 L2CAP(s): Connect req: psm 17 scid 0x0040 < ACL data: handle 256 flags 0x00 dlen 16 L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 1 status 0 Connection pending - No futher information available < ACL data: handle 256 flags 0x00 dlen 10 L2CAP(s): Info req: type 2 > ACL data: handle 256 flags 0x02 dlen 16 L2CAP(s): Info rsp: type 2 result 0 Extended feature mask 0x0010 Streaming mode > HCI Event: Remote Name Req Complete (0x07) plen 255 status 0x00 bdaddr C8:3F:26:0D:A4:57 name 'Xbox Wireless Controller' > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 16 L2CAP(s): Info rsp: type 2 result 0 Extended feature mask 0x0010 Streaming mode < ACL data: handle 256 flags 0x00 dlen 16 L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0 Connection successful < ACL data: handle 256 flags 0x00 dlen 23 L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 11 RFC 0x00 (Basic) > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 16 L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4 MTU 1480 < ACL data: handle 256 flags 0x00 dlen 18 L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4 MTU 1480 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 15 L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 3 clen 1 Failure - unknown options RFC < ACL data: handle 256 flags 0x00 dlen 12 L2CAP(s): Disconn req: dcid 0x0040 scid 0x0040 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 12 L2CAP(s): Disconn rsp: dcid 0x0040 scid 0x0040 < HCI Command: Disconnect (0x01|0x0006) plen 3 handle 256 reason 0x13 Reason: Remote User Terminated Connection > HCI Event: Command Status (0x0f) plen 4 Disconnect (0x01|0x0006) status 0x00 ncmd 1 > HCI Event: Disconn Complete (0x05) plen 4 status 0x00 handle 256 reason 0x16 Reason: Connection Terminated by Local Host
HCI sniffer - Bluetooth packet analyzer ver 5.43 device: hci0 snap_len: 1500 filter: 0xffffffffffffffff > HCI Event: Disconn Complete (0x05) plen 4 status 0x00 handle 256 reason 0x08 Reason: Connection Timeout < HCI Command: Write Scan Enable (0x03|0x001a) plen 1 enable 2 > HCI Event: Command Complete (0x0e) plen 4 Write Scan Enable (0x03|0x001a) ncmd 2 status 0x00 > HCI Event: Vendor (0xff) plen 2 > HCI Event: Vendor (0xff) plen 2 > HCI Event: Connect Request (0x04) plen 10 bdaddr C8:3F:26:0D:A4:57 class 0x000508 type ACL < HCI Command: Accept Connection Request (0x01|0x0009) plen 7 bdaddr C8:3F:26:0D:A4:57 role 0x00 Role: Master > HCI Event: Command Status (0x0f) plen 4 Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1 > HCI Event: Role Change (0x12) plen 8 status 0x00 bdaddr C8:3F:26:0D:A4:57 role 0x00 Role: Master > HCI Event: Vendor (0xff) plen 4 > HCI Event: Connect Complete (0x03) plen 11 status 0x00 handle 256 bdaddr C8:3F:26:0D:A4:57 type ACL encrypt 0x00 < HCI Command: Read Remote Supported Features (0x01|0x001b) plen 2 handle 256 > HCI Event: Command Status (0x0f) plen 4 Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1 < HCI Command: Write Scan Enable (0x03|0x001a) plen 1 enable 0 > HCI Event: Command Complete (0x0e) plen 4 Write Scan Enable (0x03|0x001a) ncmd 2 status 0x00 > HCI Event: Max Slots Change (0x1b) plen 3 handle 256 slots 5 > HCI Event: Read Remote Supported Features (0x0b) plen 11 status 0x00 handle 256 Features: 0xbf 0x3e 0x8d 0xfe 0xdb 0xfd 0x7b 0x87 < HCI Command: Read Remote Extended Features (0x01|0x001c) plen 3 handle 256 page 1 > HCI Event: Command Status (0x0f) plen 4 Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1 > HCI Event: Link Key Request (0x17) plen 6 bdaddr C8:3F:26:0D:A4:57 < HCI Command: Link Key Request Reply (0x01|0x000b) plen 22 bdaddr C8:3F:26:0D:A4:57 key 8EFE498AD09511DDD149C146B3E43C0C > HCI Event: Command Complete (0x0e) plen 10 Link Key Request Reply (0x01|0x000b) ncmd 1 status 0x00 bdaddr C8:3F:26:0D:A4:57 > HCI Event: Read Remote Extended Features (0x23) plen 13 status 0x00 handle 256 page 1 max 3 Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 < HCI Command: Remote Name Request (0x01|0x0019) plen 10 bdaddr C8:3F:26:0D:A4:57 mode 2 clkoffset 0x0000 < ACL data: handle 256 flags 0x00 dlen 10 L2CAP(s): Info req: type 2 > HCI Event: Command Status (0x0f) plen 4 Remote Name Request (0x01|0x0019) status 0x00 ncmd 1 > HCI Event: Encrypt Change (0x08) plen 4 status 0x00 handle 256 encrypt 0x01 < HCI Command: Read Encryption Key Size (0x05|0x0008) plen 2 > HCI Event: Command Complete (0x0e) plen 7 Read Encryption Key Size (0x05|0x0008) ncmd 1 > ACL data: handle 256 flags 0x02 dlen 12 L2CAP(s): Connect req: psm 17 scid 0x0040 < ACL data: handle 256 flags 0x00 dlen 16 L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 1 status 0 Connection pending - No futher information available < ACL data: handle 256 flags 0x00 dlen 10 L2CAP(s): Info req: type 2 > ACL data: handle 256 flags 0x02 dlen 16 L2CAP(s): Info rsp: type 2 result 0 Extended feature mask 0x0010 Streaming mode > HCI Event: Remote Name Req Complete (0x07) plen 255 status 0x00 bdaddr C8:3F:26:0D:A4:57 name 'Xbox Wireless Controller' > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 16 L2CAP(s): Info rsp: type 2 result 0 Extended feature mask 0x0010 Streaming mode < ACL data: handle 256 flags 0x00 dlen 16 L2CAP(s): Connect rsp: dcid 0x0040 scid 0x0040 result 0 status 0 Connection successful < ACL data: handle 256 flags 0x00 dlen 12 L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 0 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 16 L2CAP(s): Config req: dcid 0x0040 flags 0x00 clen 4 MTU 1480 < ACL data: handle 256 flags 0x00 dlen 18 L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 4 MTU 1480 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 14 L2CAP(s): Config rsp: scid 0x0040 flags 0x00 result 0 clen 0 Success > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 12 L2CAP(s): Connect req: psm 19 scid 0x0041 < ACL data: handle 256 flags 0x00 dlen 16 L2CAP(s): Connect rsp: dcid 0x0041 scid 0x0041 result 1 status 2 Connection pending - Authorization pending < ACL data: handle 256 flags 0x00 dlen 16 L2CAP(s): Connect rsp: dcid 0x0041 scid 0x0041 result 0 status 0 Connection successful < ACL data: handle 256 flags 0x00 dlen 12 L2CAP(s): Config req: dcid 0x0041 flags 0x00 clen 0 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 16 L2CAP(s): Config req: dcid 0x0041 flags 0x00 clen 4 MTU 1480 < ACL data: handle 256 flags 0x00 dlen 18 L2CAP(s): Config rsp: scid 0x0041 flags 0x00 result 0 clen 4 MTU 1480 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 14 L2CAP(s): Config rsp: scid 0x0041 flags 0x00 result 0 clen 0 Success > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Max Slots Change (0x1b) plen 3 handle 256 slots 1 < ACL data: handle 256 flags 0x00 dlen 6 L2CAP(d): cid 0x0040 len 2 [psm 17] HIDP: Get report: Input report > HCI Event: Mode Change (0x14) plen 6 status 0x00 handle 256 mode 0x02 interval 12 Mode: Sniff > ACL data: handle 256 flags 0x02 dlen 22 L2CAP(d): cid 0x0041 len 18 [psm 19] HIDP: Data: Input report > ACL data: handle 256 flags 0x02 dlen 22 L2CAP(d): cid 0x0041 len 18 [psm 19] HIDP: Data: Input report > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 5 L2CAP(d): cid 0x0040 len 1 [psm 17] HIDP: Handshake: Invalid report ID < ACL data: handle 256 flags 0x00 dlen 6 L2CAP(d): cid 0x0040 len 2 [psm 17] HIDP: Get report: Input report < HCI Command: Exit Sniff Mode (0x02|0x0004) plen 2 handle 256 > HCI Event: Command Status (0x0f) plen 4 Exit Sniff Mode (0x02|0x0004) status 0x00 ncmd 1 > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > HCI Event: Mode Change (0x14) plen 6 status 0x00 handle 256 mode 0x00 interval 0 Mode: Active > HCI Event: Max Slots Change (0x1b) plen 3 handle 256 slots 5 > HCI Event: Max Slots Change (0x1b) plen 3 handle 256 slots 1 > ACL data: handle 256 flags 0x02 dlen 5 L2CAP(d): cid 0x0040 len 1 [psm 17] HIDP: Handshake: Invalid report ID < ACL data: handle 256 flags 0x00 dlen 6 L2CAP(d): cid 0x0040 len 2 [psm 17] HIDP: Get report: Input report > HCI Event: Mode Change (0x14) plen 6 status 0x00 handle 256 mode 0x02 interval 12 Mode: Sniff > HCI Event: Number of Completed Packets (0x13) plen 5 handle 256 packets 1 > ACL data: handle 256 flags 0x02 dlen 5 L2CAP(d): cid 0x0040 len 1 [psm 17] HIDP: Handshake: Invalid report ID > ACL data: handle 256 flags 0x02 dlen 7 L2CAP(d): cid 0x0041 len 3 [psm 19] HIDP: Data: Input report