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>