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>