Skip to contentSkip to conversation

2.6.2 errors with DBT-120 (B2)

Bluez-users Todd E. Johnson 3 participants 11 messages Feb 14, 2004 – Feb 18, 2004 1 message not in the archive Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

Thanks for the quick reply! Attached is the 'hciconfig -a' in hciconfig.txt...

Bummer on the SCO support. I am looking forward to using it in an embedded linux based telematics system for vehicle hands free functionality. Anything I can do to help besides provide the 'hciconfig -a' output?

Regards,

Todd E. Johnson

hci0: Type: USB

	BD Address: 00:80:C8:1F:B0:1F ACL MTU: 192:8  SCO MTU: 64:8
	UP RUNNING PSCAN ISCAN 
	RX bytes:412 acl:0 sco:0 events:22 errors:0
	TX bytes:579 acl:0 sco:0 commands:21 errors:0
	Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
	Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
	Link policy: HOLD SNIFF PARK 
	Link mode: SLAVE ACCEPT 
	Name: 'BlueZ (0)'
	Class: 0x700408
	Service Classes: Object Transfer, Audio, Telephony
	Device Class: Audio/Video, Hands-free
	HCI Ver: 1.1 (0x1) HCI Rev: 0x1bb LMP Ver: 1.1 (0x1) LMP Subver: 0x1bb
	Manufacturer: Cambridge Silicon Radio (10)
maintainer
#1 lore raw

Hi Todd,

Quoted 3 lines

Bummer on the SCO support. I am looking forward to using it in an embedded linux based telematics system for vehicle hands free functionality.

this depends on whats your design. Do you use SCO over PCM or SCO over HCI? If your embedded device includes a PCM codec you can route the SCO traffic of the Bluetooth chip over PCM and you don't need the SCO audio support for the HCI USB driver.

Regards

Marcel

-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#2 lore raw

[Bluez-users] bcm203x module causes kernel panic on boot

I'm a Gentoo user, and recently upgraded from 2.4.22-r5 to Gentoo Dev Sources 2.6.2. After suffering the following areas, I patched with the -mh2 patch, but they persisted.

I use a Belkin F8T001, and bluez-bluefw has always been a bit tempremental with me, so I jumped at the chance of using the bcm203x module in the kernel. Looking through the mailing list, I copied BCM2033-FW.bin and BCM2033-MD.hex to /usr/lib/hotplug/firmware/, unmerged bluefw gave things a try from a power off.

Below, I've pasted sections of the subsequent boot sequence. If the PC's turned on from power off (so the adaptor has no firmware already loaded, my PC will kernel panic, but continue booting and work okay, with the bluetooth subsystem working perfectly. Subsequent soft-reboots load Linux without any kernel panics, with bluetooth still working perfectly.

So, is this panic purely cosmetic, or is something fundamentally bad going on? In addition, could I suggest some documentation on the kernel help page for the bcm203x module to say where the firmware should be acquired/kept?

Alex Holland

----------------------------------------------------------------------------------------------

* Mounting sysfs at /sys...
[ ok ]modprobe: FATAL: Module keybdev not found.

Bluetooth: Broadcom Blutonium firmware driver ver 1.0
modprobe: FATAL: Module bcm203x already in kernel.

modprobe: FATAL: Module bcm203x already in kernel.

* Mounting devpts at /dev/pts...
[ ok ] * Starting devfsd...
Bluetooth: Core ver 2.3
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: HCI USB driver ver 2.4
modprobe: FATAL: Module hci_usb already in kernel. Started device management daemon v1.3.25 for /dev

Unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
c018253a
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c018253a>]    Not tainted
EFLAGS: 00010246

EIP is at sysfs_release+0x2a/0x90
eax: cf4f9a00 ebx: 00000000 ecx: cf9c8e40 edx: cf4f9ac8
esi: c136cac0 edi: cffe4f00 ebp: cf4da0c0 esp: cf5e9f68
ds: 007b es: 007b ss: 0068
Process default.hotplug (pid: 302, threadinfo=cf5e8000 task=c130c6e0)

Stack: cf4f9ac8 cf9c8e40 00000000 c014fb40 cf4da0c0 cf9c8e40 cf939180 cf9c8e40
       00000000 cf7e4c80 cf5e8000 c014e199 cf9c8e40 cf7e4c80 cf7e4c80 cf9c8e40
       00000001 c014e231 cf9c8e40 cf7e4c80 00000001 080d7f40 c0108f47 00000001
Call Trace:
 [<c014fb40>] __fput+0x100/0x120
 [<c014e199>] filp_close+0x59/0x90
 [<c014e231>] sys_close+0x61/0xa0
 [<c0108f47>] syscall_call+0x7/0xb

Code: 8b 43 04 85 c0 74 1f bb 00 e0 ff ff 21 e3 ff 43 14 ff 88 c0

---------------------------------------------------------------------------------

-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

maintainer
#3 lore raw

Re: [Bluez-users] bcm203x module causes kernel panic on boot

Hi Alex,

Quoted 36 lines

I use a Belkin F8T001, and bluez-bluefw has always been a bit tempremental with me, so I jumped at the chance of using the bcm203x module in the kernel. Looking through the mailing list, I copied BCM2033-FW.bin and BCM2033-MD.hex to /usr/lib/hotplug/firmware/, unmerged bluefw gave things a try from a power off.

Below, I've pasted sections of the subsequent boot sequence. If the PC's turned on from power off (so the adaptor has no firmware already loaded, my PC will kernel panic, but continue booting and work okay, with the bluetooth subsystem working perfectly. Subsequent soft-reboots load Linux without any kernel panics, with bluetooth still working perfectly.

So, is this panic purely cosmetic, or is something fundamentally bad going on? In addition, could I suggest some documentation on the kernel help page for the bcm203x module to say where the firmware should be acquired/kept?

Bluetooth: Core ver 2.3
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: HCI USB driver ver 2.4
modprobe: FATAL: Module hci_usb already in kernel. Started device management daemon v1.3.25 for /dev

Unable to handle kernel NULL pointer dereference at virtual address 00000004
 printing eip:
c018253a
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c018253a>]    Not tainted
EFLAGS: 00010246

EIP is at sysfs_release+0x2a/0x90
eax: cf4f9a00 ebx: 00000000 ecx: cf9c8e40 edx: cf4f9ac8
esi: c136cac0 edi: cffe4f00 ebp: cf4da0c0 esp: cf5e9f68
ds: 007b es: 007b ss: 0068
Process default.hotplug (pid: 302, threadinfo=cf5e8000 task=c130c6e0)

Quoted 10 lines
Stack: cf4f9ac8 cf9c8e40 00000000 c014fb40 cf4da0c0 cf9c8e40 cf939180 cf9c8e40
       00000000 cf7e4c80 cf5e8000 c014e199 cf9c8e40 cf7e4c80 cf7e4c80 cf9c8e40
       00000001 c014e231 cf9c8e40 cf7e4c80 00000001 080d7f40 c0108f47 00000001
Call Trace:
 [<c014fb40>] __fput+0x100/0x120
 [<c014e199>] filp_close+0x59/0x90
 [<c014e231>] sys_close+0x61/0xa0
 [<c0108f47>] syscall_call+0x7/0xb

Code: 8b 43 04 85 c0 74 1f bb 00 e0 ff ff 21 e3 ff 43 14 ff 88 c0

this is a problem with the early run of hotplug scripts and not a problem of the Bluetooth subsystem. Run the oops through ksymoops and post it to the LKML, because it belongs there.

Regards

Marcel

-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

A message that is not in the archive (sent off-list or not yet received): [email protected]

maintainer
#5 lore raw

Hi Todd,

Quoted 36 lines

I am attempting a simple proof of concept at the moment using the KDE Bluetooth Framework.

I have configured the local device class in hcid.conf to: "class 0x700408"

Then the KDE BTDialer needs the following set prior to using the app:

'hciconfig hci0 voice 0x0060'

Once the app launches it connects via rfcomm to the phone and initiates the followin AT commands (Here are the commands, with phone response)

AT+CIND=?
+CIND:
("battchg",(0-5)),("signal",(0-5)),("batterywarning",(0,1)),("chargerconnected",(0,1)),("service",(0,1)),("call",(0,1)),("roam",(0,1)) OK
AT+CIND?
+CIND: 2,5,0,0,1,0,0
OK
AT+CMER=3,0,0,1
OK
AT+CLIP=1
OK
AT+CIND=?
+CIND:
("battchg",(0-5)),("signal",(0-5)),("batterywarning",(0,1)),("chargerconnected",(0,1)),("service",(0,1)),("call",(0,1)),("roam",(0,1)) OK
AT+CIND?
+CIND: 2,5,0,0,1,0,0
OK
AT+CMER=3,0,0,1
OK
AT+BVRA=1

(As you can probably see above, the phone needs charging)

Quoted 7 lines

Upon initiation of 'AT+BVRA=1' the phone will ask "Say a Name or a Command", which I can not hear, nor can it hear me.

And I am attempting to use the "Hands Free" dialer. Vox seemed to work with 2.4, but a new 2.6.2 kernel seems to break this. I would assume that this means it is using SCO over HCI since I no longer hear the voice prompts from my phone, and the phone can not hear me.

I don't know what the problem with 2.6.2 and SCO over HCI and at the moment I have no time to investigate. If your Bluetooth chip is CSR based you can check the SCO mapping with "hciconfig hci0 revision".

Quoted 8 lines

Ultimately I wish to use the phone for hands free calls, but I will also use the phone for vehicle offboard connectivity using the "Dial-Up Networking" to obtain data for the vehicle. For example, Navigation data, E-Mail, Calendar, etc.

I am testing with a Sony Ericsson T608 (from Sprint). The phone works fine with a Jabra BT-200.

Quoted 6 lines

I'm moving towards following specifications defined at
http://www.ami-c.org/, but I am a little ways from achieving my final goal.

Sorry to seem completely clueless, but I am just beginning to use this functionality within my setup, and I'm still learning. Thanks for the information so far!

Go ahead and start playing with BlueZ :)

Regards

Marcel

-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#6 lore raw
Quoted 5 lines · Marcel Holtmann

I don't know what the problem with 2.6.2 and SCO over HCI and at the moment I have no time to investigate. If your Bluetooth chip is CSR based you can check the SCO mapping with "hciconfig hci0 revision".

If the SCO MTU for the device is too low prior to the URB submission, would it generate the -90?

It seems 90 is defined as EMSGSIZE in:

errno.h:63:#define EMSGSIZE 90 /* Message too long */

However, not remapped as other errors are in usb.h.

A quick grep of hci_usb.c reveals the error is generated when:

Line 275: err = usb_submit_urb(urb, GFP_ATOMIC);

Where a bit of the logic determines 'urb->transfer_buffer_length', then submits with the resulting error.

Am I way off here? I have attached the results of 'lsusb -v' to give more info. If you think I may be on the right track, I can _try_ to play with it a bit, but it may take me some time since I am a bit rusty...

Signature · 3 lines
       Regards,
       
       Todd E. Johnson

Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio Ltd. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 224
bDeviceSubClass 1
bDeviceProtocol 1
bMaxPacketSize0 64
idVendor 0x0a12 Cambridge Silicon Radio Ltd.
idProduct 0x0001
bcdDevice 4.43

  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          193
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize         16
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize         64
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize         64
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          0
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          0
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          9
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          9
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         17
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         17
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         25
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         25
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         33
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         33
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         49
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         49
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 
      bInterfaceSubClass      1 
      bInterfaceProtocol      0 
      iInterface              0 
  unknown descriptor type: 07 21 07 88 13 ff 03
  Language IDs: (length=4)
     0409 English(US)

Bus 002 Device 001: ID 0000:0000 Virtual Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0000 Virtual
  idProduct          0x0000 Hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.2 ohci_hcd
  iProduct                2 OHCI Host Controller
  iSerial                 1 0000:00:01.3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          2
        bInterval             255
  Language IDs: (length=4)
     0409 English(US)

Bus 001 Device 001: ID 0000:0000 Virtual Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0000 Virtual
  idProduct          0x0000 Hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.2 ohci_hcd
  iProduct                2 OHCI Host Controller
  iSerial                 1 0000:00:01.2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          2
        bInterval             255
  Language IDs: (length=4)
     0409 English(US)
maintainer
#7 lore raw

Hi Todd,

Quoted 11 lines

If the SCO MTU for the device is too low prior to the URB submission, would it generate the -90?

It seems 90 is defined as EMSGSIZE in:

errno.h:63:#define EMSGSIZE 90 /* Message too long */

However, not remapped as other errors are in usb.h.

A quick grep of hci_usb.c reveals the error is generated when:

Quoted 8 lines

Line 275: err = usb_submit_urb(urb, GFP_ATOMIC);

Where a bit of the logic determines 'urb->transfer_buffer_length', then submits with the resulting error.

Am I way off here? I have attached the results of 'lsusb -v' to give more info. If you think I may be on the right track, I can _try_ to play with it a bit, but it may take me some time since I am a bit rusty...

I am not an USB ISOC expert, so go ahead and play with it. If you have a patch post it to the mailing list.

Regards

Marcel

-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Bluez-users mailing list [email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users

#8 lore raw
In reply to Todd E. Johnson

Hi all,

I have been attempting to get SCO over HCI to work... I have a D-Link DBT-120 (B2). When I startup hcid, I was getting the following error message:

hci_usb_isoc_rx_submit: hci0 isoc rx submit failed urb de96e614 err -90
hci_usb_isoc_rx_submit: hci0 isoc rx submit failed urb de96e614 err -90

It appears this occurs since the hci_usb driver is picking a bogus endpoint with a wMaxPacketSize = 0 when submitting the urb.

Attached are a few files for assistance:

hciconfig.txt 'hciconfig -a'
lsusb.txt 'lsusb -v'
hci_usb_sco_debug.log.gz Debug logs from /var/log/messages
patch-2.6.2-tj1.gz a patch

The attached patch includes patch-2.4.24-mh2, a fix for the error, and a few minor fixes so the kernel can build when debugging is enabled...

This does not fix SCO support, It simply assists in getting an endpoint where wMaxPacketSize != 0.

Here is the critical part, or what eliminates -90:

<patch>

drivers/bluetooth/hci_usb.c +0 -0
diff --unified --recursive --new-file linux-2.6.2/drivers/bluetooth/hci_usb.c linux-2.6.2-tj/drivers/bluetooth/hci_usb.c

@@ -833,7 +834,7 @@

#ifdef CONFIG_BT_HCIUSB_SCO
case USB_ENDPOINT_XFER_ISOC:
- if (ep->desc.wMaxPacketSize < size || a > 2)
+ if (ep->desc.wMaxPacketSize <= size)

						break;
					size = ep->desc.wMaxPacketSize;

</patch>

Now that the error is gone, SCO still is not working. Since I enabled debugging with this patch, I was able to capture additional data to assist someone whom knows much more than I in fixing the SCO over HCI_USB.

If I'm completely clueless, please disregard, and sorry to waste your time! Thanks in advance!

Regards,

Todd E. Johnson

hci0: Type: USB

	BD Address: 00:80:C8:1F:B0:1F ACL MTU: 192:8  SCO MTU: 64:8
	UP RUNNING PSCAN ISCAN 
	RX bytes:1942 acl:36 sco:0 events:62 errors:0
	TX bytes:889 acl:25 sco:0 commands:23 errors:0
	Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
	Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
	Link policy: HOLD SNIFF PARK 
	Link mode: SLAVE ACCEPT 
	Name: 'BlueZ (0)'
	Class: 0x700408
	Service Classes: Object Transfer, Audio, Telephony
	Device Class: Audio/Video, Hands-free
	HCI Ver: 1.1 (0x1) HCI Rev: 0x1bb LMP Ver: 1.1 (0x1) LMP Subver: 0x1bb
	Manufacturer: Cambridge Silicon Radio (10)

Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio Ltd. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 224
bDeviceSubClass 1
bDeviceProtocol 1
bMaxPacketSize0 64
idVendor 0x0a12 Cambridge Silicon Radio Ltd.
idProduct 0x0001
bcdDevice 4.43

  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          193
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize         16
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize         64
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               none
        wMaxPacketSize         64
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          0
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          0
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          9
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize          9
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         17
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         17
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         25
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         25
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         33
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         33
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 
      bInterfaceSubClass      1 
      bInterfaceProtocol      1 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         49
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               none
        wMaxPacketSize         49
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 
      bInterfaceSubClass      1 
      bInterfaceProtocol      0 
      iInterface              0 
  unknown descriptor type: 07 21 07 88 13 ff 03
  Language IDs: (length=4)
     0409 English(US)

Bus 002 Device 001: ID 0000:0000 Virtual Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0000 Virtual
  idProduct          0x0000 Hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.2-mh2 ohci_hcd
  iProduct                2 OHCI Host Controller
  iSerial                 1 0000:00:01.3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          2
        bInterval             255
  Language IDs: (length=4)
     0409 English(US)

Bus 001 Device 001: ID 0000:0000 Virtual Hub
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10

  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0000 Virtual
  idProduct          0x0000 Hub
  bcdDevice            2.06
  iManufacturer           3 Linux 2.6.2-mh2 ohci_hcd
  iProduct                2 OHCI Host Controller
  iSerial                 1 0000:00:01.2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x40
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               none
        wMaxPacketSize          2
        bInterval             255
  Language IDs: (length=4)
     0409 English(US)
#9 lore raw
Quoted 2 lines · Todd E. Johnson

The attached patch includes patch-2.4.24-mh2, a fix for the error, and a few minor fixes so the kernel can build when debugging is enabled...

1,$s/patch-2.4.24-mh2/patch-2.2.2-mh2/

Sorry, I meant to say patch-2.2.2-mh2... Sorry about any confusion this may have caused...

Signature · 16 lines
       Regards,
       
       Todd E. Johnson




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users
#10 lore raw
Quoted 3 lines · Todd E. Johnson

Sorry, I meant to say patch-2.2.2-mh2... Sorry about any confusion this may have caused...

I must be on Acid.... patch-2.2.2-mh2... 2.2.2 must be the mark of the Penguin or something... No really, I mean patch-2.6.2-mh2

Two-Six-Two...

Signature · 16 lines
       Regards,
       
       Todd E. Johnson




-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users
#11 lore raw

Howdy,

Using the patch and information I sent a few days ago, I attemted a SCO connection with a Sony Ericsson BT enabled handset. I attempted to use the KDE BT Dialer from the KDE Bluetooth Framework.

Attached is a file 'hci_conn.txt' which shows the device actually has a SCO connection, however I can not hear anything like I previously could with 2.4.22. I also included 'hciconfig hci0 revision' and 'hciconfig hci0 voice' in this file as well.

While I was attampting the connection, I did a 'hcidump -w hci_dump.raw' and have included it with this mail also.

Is the previous, as well as this, information helpfull?

Signature · 3 lines
       Regards,
       
       Todd E. Johnson

Connections:

	> SCO 00:0A:D9:03:63:D0 handle 45 state 1 lm SLAVE 
	> ACL 00:0A:D9:03:63:D0 handle 41 state 1 lm SLAVE 

hci0: Type: USB
BD Address: 00:80:C8:1F:B0:1F ACL MTU: 192:8 SCO MTU: 64:8 Voice setting: 0x0060 (Default Condition)
Input Coding: Linear
Input Data Format: 2's complement
Input Sample Size: 16 bit
# of bits padding at MSB: 0
Air Coding Format: CVSD

hci0: Type: USB
BD Address: 00:80:C8:1F:B0:1F ACL MTU: 192:8 SCO MTU: 64:8 HCI 15.3
Chip version: BlueCore02
Max key size: 56 bit
SCO mapping: HCI