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 _______________________________________________ freebsd-usb@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-usb To unsubscribe, send any mail to "[EMAIL PROTECTED]"