>For DM1/DH1 packet this seems to work ok (a bit slow), but when I increase 
>the packet size lots of kernel messages starts showing up in the recieving 
>end. I've tried on a machine with an Intel controller with uhci.o and 
>usb-uhci.o and on a machine with an Opti controller and ohci.o. They give 
>different error messages, but none of them seems to do the trick.
>You previously asked me for some dumps, but I havn't gotten arround to 
>installing hcidump, so I hope the following will be enough - otherwise say so.
>The errors seem to be rather alike, so to me that suggests that the 
>problem is with hci-usb and not the usb drivers...
hcidump won't help in this case, packets are dropped at usb level.
Please send me hciconfig -a output.

Dumps indeed look similar  but I'm pretty sure that it's not hci_usb driver 
problem.
Seems like USB transaction got screwed up somehow.

USB folks, any ideas why this could happened ?
Here is details.

Bluetooth spec defines its own Host Controller Interface (HCI).
Data packet packets are called ACL packets. Each packet has the following 
header
typedef struct {
         __u16   handle;
         __u16   dlen;
} __attribute__ ((packed))      hci_acl_hdr;

Complete ACL packet has to be sent/received in one USB transaction. Only 
the first USB packet in transaction
has ACL header in it.
Somehow transaction got completely screwed with this particular device 
(SiliconWave BlueFrog).

Here is a receive dump

hci_usb_rx_complete: hci0 corrupted ACL packet: count 199, dlen 60
hci_usb: dump, len 199
hci_usb: 00 10 3C 00 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 00 10 3C 00 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 00 10 3C 00 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F
hci_usb: 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 00 10 03 00 7F 7F 7F

"00 10 3C 00" is correct ACL header with data len set to 60 bytes. 7F is a 
payload sent by our test tool.
So as you see somehow bunch of valid ACL packets got merged into one 
transaction.
Can this be a bug in HCDs or somewhere else in USB stack ?

Max


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to