Re: USB device only responds to half of commands after plugging in another USB device

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

 



On Thu, Jun 16, 2011 at 12:55 PM, André <teste@xxxxxxxxxx> wrote:
> I have a SCL3711 USB NFC adapter alongside a Broadcom Bluetooth USB
> dongle. When I don't have the Bluetooth adapter connected everything
> works fine while reading and writing to the SCL3711 USB device. As
> soon as I connect the Bluetooth dongle and the HCI device is brought
> up (by bluetoothd) I get strange results accessing the other USB
> device (the SCL3711). Namely, commands only succeed half the time.
>
> This is the usb trace after I connect the Bluetooth dongle:
>
> We can see that half of the commands fail with a timeout. Now I run
> "hciconfig hci0 down" to disable my USB bluetooth dongle:
>
> And I run my test program again:
>
> The device is working correctly again... Can this be a kernel USB bug
> or a bug on one of the devices? Is there any further info I can add to
> help diagnose the problem? I've tried Debian stable and unstable and
> this problem happens on both. This seems related to
> http://libusb.6.n5.nabble.com/Why-does-Linux-forget-the-USB-toggle-bit-of-my-device-td6829.html
> but I'm using a more recent kernel version which should have prevented
> this.

I am not able to help you on this particular issue but I can tell you
this device is full of bug and not compliant to USB specs. We just
helped a few users of this device with libnfc under Windows and
we know that. As a result, we released libusb-win32 1.2.4.6 snapshot
release and helped to change the timeout to get it work.

What happened there is that the device (firmware) is doing something
strange after it transfers endpoint data which causes all subsequent device
descriptor request to fail and I suspect this to be a data toggle issue.

You can also see from the libnfc code.
http://code.google.com/p/libnfc/source/browse/trunk/libnfc/drivers/pn53x_usb.c

eg:
 // HACK2: Then send a GetFirmware command to resync USB toggle
// bit between host & device
// in case host used set_configuration and expects the device to have
// reset its toggle bit, which PN53x doesn't do



-- 
Xiaofan
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux