On Tuesday 13 July 2010 23:40:43 Peer Stritzinger wrote:
Hi,
with the setup from my post of yesterday I'm trying IN transfers with
libusb 1.0 and now I'm a bit stuck.
In essence I'm doing:
cnt = libusb_get_device_list(NULL, list);
... find device - now in found
if (found) {
libusb_device_handle *handle;
...
rv = libusb_open(found, handle);
trans_len = 0;
rv = libusb_bulk_transfer(handle, ep, buf, NBUF, trans_len, 0);
What I get is rv - LIBUSB_ERROR_OTHER to get closer to re reason for
this I debugged the last call into libusb
The error return is caused in ugen20_tr_open():
ioctl(xfer-pdev-file, USB_FS_OPEN, temp)
returns != 0, errno - EINVAL
Params to this ioctl are:
(gdb) p temp
$1 = {max_bufsize = 16384, max_frames = 1, max_packet_length = 0,
dev_index = 0 '\0', ep_index = 24 '\030', ep_no = 6 '\006'}
(gdb) p *xfer
$2 = {pdev = 0x282033c0, callback = 0x28094190 libusb10_bulk_intr_proxy,
priv_sc0 = 0x282033c0, priv_sc1 = 0x28221060, ppBuffer = 0x2822208c,
pLength = 0x28222088, maxTotalLength = 0, maxFrames = 1, nFrames = 0,
aFrames = 0, timeout = 0, timeComplete = 0, trIndex = 24, maxPacketLen =
0, flags = 0 '\0', status = 0 '\0', is_opened = 0 '\0', is_pending = 0
'\0', is_cancel = 0 '\0', is_draining = 0 '\0', is_restart = 0 '\0'}
(gdb) p *xfer-pdev
$3 = {ddesc = {LIBUSB20_DEVICE_DESC_FORMAT = 0x2809abd4, bLength = 18
'\022', bDescriptorType = 1 '\001', bcdUSB = 512, bDeviceClass = 0 '\0',
bDeviceSubClass = 0 '\0', bDeviceProtocol = 0 '\0',
bMaxPacketSize0 = 64 '@', idVendor = 1133, idProduct = 49177,
bcdDevice = 0, iManufacturer = 1 '\001', iProduct = 2 '\002',
iSerialNumber = 0 '\0', bNumConfigurations = 1 '\001'}, session_data =
{ session_data = 1731721030, tv = {tv_sec = 1731721030, tv_nsec = 0},
plugtime = 1731721030}, dev_entry = {tqe_next = 0x0,
tqe_prev = 0x28202030}, methods = 0x2809aac0, beMethods = 0x2809aa80,
pTransfer = 0x28209c00, privBeData = 0x28215300, privLuData = 0x28207100,
claimed_interface = 0 '\0', file = 12, file_ctrl = 11, debug = 0,
nTransfer = 64, bus_number = 3 '\003', device_address = 2 '\002',
usb_mode = 0 '\0', usb_speed = 3 '\003', is_opened = 1 '\001',
usb_desc = ugen3.2: CY7C68001 Cypress at usbus3, '\0' repeats 57
times}
BTW usb_desc is showing the right device.
Any suggestions?
IN endpoints must be OR'ed with 0x80. Could you dump the configuration
descriptor of your device? Also you might need to claim the interfaces.
--HPS
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to freebsd-usb-unsubscr...@freebsd.org