Date: Mon, 25 Sep 2006 02:49:02 +0300 (EEST) From: Vladimir Kushnir <vkushnir@i.kiev.ua> To: "Andrey V. Elsukov" <bu7cher@yandex.ru> Cc: freebsd-current@freebsd.org, freebsd-usb@freebsd.org Subject: Re: Problems with USB on CURRENT Message-ID: <20060925014415.S1442@kushnir1.kiev.ua> In-Reply-To: <45166CB4.000004.01220@camay.yandex.ru> References: <45166CB4.000004.01220@camay.yandex.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, All! On Sun, 24 Sep 2006, Andrey V. Elsukov wrote: > Hi, All! > > I have notebook Maxselect Mission GT3000. > A hardware configuration description (russian): > http://www.maxselect.ru/catalog/models.html?id=4024&template=normal > > o Mobile AMD Sempron > o NVIDIA C51MV+MCP51M > o PCI Express nVidia Geforce Go 6100 > o Realtek HDA > > I have several problems. One is with USB. > When i attach USB Flash disk it's not work. > > usbd_new_device: addr=2, getting first desc failed > uhub_explore: usb_new_device failed, error=IOERROR > uhub1: device problem (IOERROR), disabling port 4 > > http://butcher.heavennet.ru/dmesg.txt > http://butcher.heavennet.ru/pciconf.txt > I've attached dmesg and pciconf. > Any suggestions? > -- > WBR, Andrey V. Elsukov > I had precisely the same problem with USB-2 flash (both old USB-1.1 flash and digital camera - Kodak C340, uses ugen) work perfectly all right. MB: Asus A8N (nForce4 based). The problem went away with retrying to get device descriptor in usbd_new_device (see patch below). I've submitted PR (usb/103167) but so far there's been no reaction at all :-( Hope this helps, Vladimir /* ----------- patch begins here -------------- */ *** dev/usb/usb_subr.c.orig Mon Sep 11 19:28:35 2006 --- dev/usb/usb_subr.c Mon Sep 11 20:05:38 2006 *************** *** 1112,1118 **** dd = &dev->ddesc; /* Get the first 8 bytes of the device descriptor. */ ! err = usbd_get_desc(dev, UDESC_DEVICE, 0, USB_MAX_IPACKET, dd); if (err) { DPRINTFN(-1, ("usbd_new_device: addr=%d, getting first desc " "failed\n", addr)); --- 1112,1123 ---- dd = &dev->ddesc; /* Get the first 8 bytes of the device descriptor. */ ! for (i = 0; i < 3; i++) { ! err = usbd_get_desc(dev, UDESC_DEVICE, 0, USB_MAX_IPACKET, dd); ! if (!err) ! break; ! usbd_delay_ms(dev, USB_SET_ADDRESS_SETTLE); ! } if (err) { DPRINTFN(-1, ("usbd_new_device: addr=%d, getting first desc " "failed\n", addr)); /* -------------- end ----------------- */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060925014415.S1442>