Re: Problems with USB on CURRENT

From: Vladimir Kushnir <vkushnir_at_i.kiev.ua>
Date: Mon, 25 Sep 2006 02:49:02 +0300 (EEST)
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 ----------------- */
Received on Sun Sep 24 2006 - 21:49:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:00 UTC