Date: Thu, 16 Aug 2007 19:50:34 +0300 From: Andriy Gapon <avg@icyb.net.ua> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: usbd_set_config_no vs. usbd_set_config_index Message-ID: <46C4805A.9060306@icyb.net.ua> In-Reply-To: <200708161841.17660.hselasky@c2i.net> References: <46C2D04A.30409@icyb.net.ua> <200708161815.47620.hselasky@c2i.net> <46C47AA3.4040809@icyb.net.ua> <200708161841.17660.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
on 16/08/2007 19:41 Hans Petter Selasky said the following:
> On Thursday 16 August 2007, Andriy Gapon wrote:
>> on 16/08/2007 19:15 Hans Petter Selasky said the following:
>>> Hi,
>>>
>>> I would say that "usbd_set_config_index()" is more reliable and faster
>>> than "usbd_set_config_no()". I tried to get rid of
>>> all "usbd_set_config_no()".
>> Hmm, then I am puzzled how my change from *_index() to *_no() helped in
>> my case. Maybe some parameters were incorrect, or maybe different
>> devices need different parameters and that's where _no() comes useful.
>
> What config number are you setting?
>
> Have you dumped the configuration of your device using "udesc_dump"
> (See /usr/ports/sysutils/udesc_dump) ?
Thank you for bearing with me.
To reiterate: I was trying palm/uppc-kmod on amd64 6.2 with standard USB
stack. attach routine had the following line:
err = usbd_set_config_index(dev, UPPC_CONFIG_INDEX, 1);
where UPPC_CONFIG_INDEX is defined to 1.
It failed with:
kernel: ucom0: failed to set configuration, err=STALLED
kernel: device_attach: ucom0 attach returned 6
My only change was from _index to _no and then it started to work.
Here's udesc_dump full output:
Standard Device Descriptor:
bLength 18
bDescriptorType 01
bcdUSB 0200
bDeviceClass 00
bDeviceSubClass 00
bDeviceProtocol 00
bMaxPacketSize 16
idVendor 0b05
idProduct 420f
bcdDevice 0000
iManufacturer 1
iProduct 2
iSerialNumber 3
bNumConfigurations 1
Configuration 0:
Standard Configuration Descriptor:
bLength 9
bDescriptorType 02
wTotalLength 32
bNumInterface 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 80
bMaxPower 250 (500 mA)
Standard Interface Descriptor:
bLength 9
bDescriptorType 04
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass ff
bInterfaceSubClass ff
bInterfaceProtocol ff
iInterface 0
Standard Endpoint Descriptor:
bLength 7
bDescriptorType 05
bEndpointAddress 81 (in)
bmAttributes 02 (Bulk)
wMaxPacketSize 64
bInterval 0
Standard Endpoint Descriptor:
bLength 7
bDescriptorType 05
bEndpointAddress 02 (out)
bmAttributes 02 (Bulk)
wMaxPacketSize 64
bInterval 0
Codes Representing Languages by the Device:
bLength 4
bDescriptorType 03
wLANGID[0] 0409
String (index 1): ASUS
String (index 2): ASUS PPC
String (index 3): f553b4ec-0dee-9dcc-7a63-40a7b4d674b9
--
Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46C4805A.9060306>
