Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Jan 2009 16:13:32 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        Stanislav Sedov <stas@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, Alfred Perlstein <alfred@freebsd.org>, src-committers@freebsd.org
Subject:   Re: svn commit: r186730 - in head: lib/libusb20 sys/dev/usb2/controller sys/dev/usb2/core sys/dev/usb2/ethernet sys/dev/usb2/image sys/dev/usb2/include sys/dev/usb2/serial sys/dev/usb2/sound sys/dev/us...
Message-ID:  <200901061613.33687.hselasky@c2i.net>
In-Reply-To: <20090106180123.d032657d.stas@FreeBSD.org>
References:  <200901040012.n040C2gH040928@svn.freebsd.org> <200901061215.37947.hselasky@c2i.net> <20090106180123.d032657d.stas@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 06 January 2009, Stanislav Sedov wrote:
> On Tue, 6 Jan 2009 12:15:37 +0100
>
> Hans Petter Selasky <hselasky@c2i.net> mentioned:
> > As long as your device shows up like "ugen0.2" it is detected properly
> > and will function. Check with "usbconfig".
> >
> > Suggestions:
> >
> > usbconfig -u 0 -a 2 reset
> > usbconfig -u 0 -a 2 dump_device_desc
>
> This doesn't change anything, the device fails to attach.
>
> > The failures indicate that the firmware on your USB device is not
> > reponding correctly at the time the set address command is being sent to
> > the device.
>
> Do you have some ideas how this situation could be handled in the new
> stack?
>
> > As you can see the new USB stack will try to re-enumerate the device one
> > time.
> >
> > Have you loaded the correct driver for your serial device?
> >
> > kldload usb2_serial_bsa
>
> Yes, this module is loaded and I can see it enters the probe routine. But
> as the configuration index doesn't match what the driver expects it fails
> to probe. Driver checks for configuration idx 1, but I see this device on
> idx 0. ugen0.2: <AnyDATA CDMA Products AnyDATA Corporation> at usbus0,
> cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
>
> The old stack didn't checked for specific configuration index, but tryed to
> select the appropriate one in the attach routine.
>         /* Move the device into the configured state. */
>         err = usbd_set_config_index(dev, UBSA_CONFIG_INDEX, 1);
>
> What is the reason you have reworked this? Should this be changed to be
> handled like in the old driver?

The new is that the driver is not allowed to set the config index by itself.

Try:

usbconfig -u 0 -a 2 set_config 1

You can for example add a quirk for this, see "usbconfig -h | grep -i quirk". 
I know this is not so easy, but if you can make a general rule for when 
selecting another configuration, I will add it.

Could you dump me the descriptors of your USB device?

usbconfig -u 0 -a 2 dump_curr_config_desc dump_device_desc

--HPS



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