Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Aug 2007 15:26:40 +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:  <46C44280.6010908@icyb.net.ua>
In-Reply-To: <200708151741.47907.hselasky@c2i.net>
References:  <46C2D04A.30409@icyb.net.ua> <200708151741.47907.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
on 15/08/2007 18:41 Hans Petter Selasky said the following:
> On Wednesday 15 August 2007, Andriy Gapon wrote:
>> I am curious about a difference between usbd_set_config_no and
>> usbd_set_config_index. My reason is such: I am trying to use
>> palm/uppc-kmod to talk to my pocket pc device via usb. When I used the
>> port in its original shape it gave me the following error each time I
>> plugged the device:
>> kernel: ucom0: failed to set configuration, err=STALLED
>> kernel: device_attach: ucom0 attach returned 6
>>
>> Then, to mimic some other driver I simply changed
>> usbd_set_config_index() to usbd_set_config_no() in the code, and voila:
>> kernel: ucom0: <Windows CE Device> ASUS ASUS Windows Mobile Device, rev
>> 2.00/0.00, addr 3 (rt)
>>
>> I am now trying to get synce to actually work.
>> But I am really curious what my change really did, and I am totally
>> ignorant about our usb code.
>> BTW:
>> FreeBSD 6.2-RELEASE-p3 amd64
>>
>> Thank you in advance for my education.
> 
> Hi,
> 
> usbd_set_config_no will search for a matching bConfiguration value.
> 
> usbd_set_config_index will set the configuration by physical index: 0, 1, 
> 2 ...
> 

Thank you!
Is it safe to assume that *_no is "more robust" than "*_index" and in
drivers for general classes of devices it should be preferred ? And
_index should only be used in very specific cases where we are sure of
what we are doing ?
Or am I talking nonsense ?

It is curious to compare the following:
$ glimpse -l usbd_set_config_no
/usr/src/sys/dev/usb/usb_subr.h
/usr/src/sys/dev/usb/if_zyd.c
/usr/src/sys/dev/usb/uscanner.c
/usr/src/sys/dev/usb/if_ural.c
/usr/src/sys/dev/usb/if_kue.c
/usr/src/sys/dev/usb/if_aue.c
/usr/src/sys/dev/usb/ugen.c
/usr/src/sys/dev/usb/if_axe.c
/usr/src/sys/dev/usb/if_udav.c
/usr/src/sys/dev/usb/if_rue.c
/usr/src/sys/dev/usb/usb_subr.c
/usr/src/sys/dev/usb/if_cue.c
/usr/src/sys/dev/usb/usbdi_util.h
/usr/src/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c
$ glimpse -l usbd_set_config_index
/usr/src/sys/dev/usb/usb_subr.h
/usr/src/sys/dev/usb/ugensa.c
/usr/src/sys/dev/usb/umoscom.c
/usr/src/sys/dev/usb/ugen.c
/usr/src/sys/dev/usb/uplcom.c
/usr/src/sys/dev/usb/umct.c
/usr/src/sys/dev/usb/uvisor.c
/usr/src/sys/dev/usb/uvscom.c
/usr/src/sys/dev/usb/usb_subr.c
/usr/src/sys/dev/usb/uhub.c
/usr/src/sys/dev/usb/uftdi.c
/usr/src/sys/dev/usb/usbdi_util.h
/usr/src/sys/dev/usb/ubsa.c
/usr/src/sys/dev/usb/ucycom.c


-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?46C44280.6010908>