I guess it's the kernel problem with correct USB speed recognition,
because I have had this problem on different computers and linux versions.
My current ver. is Ubuntu 64bit 9.04.

Good example taken from my kern.log, notice first two lines:
--------------------------------------------------------------------------------------------------------------------------------------------------------
Jun 15 11:13:48 mirko2-l64 kernel: [81040.032022] usb 2-1: new full speed USB 
device using ohci_hcd and address 2
Jun 15 11:13:48 mirko2-l64 kernel: [81040.203039] usb 2-1: not running at top 
speed; connect to a high speed hub
Jun 15 11:13:48 mirko2-l64 kernel: [81040.215124] usb 2-1: configuration #1 
chosen from 1 choice
--------------------------------------------------------------------------------------------------------------------------------------------------------

And few seconds later after device reconnecting (the same port and device), 
everything is ok:
---------------------------------------------------------------------------------------------------------------------------------------------------------
Jun 15 11:39:16 mirko2-l64 kernel: [82568.345018] usb 1-1: new high speed USB 
device using ehci_hcd and address 7
Jun 15 11:39:16 mirko2-l64 kernel: [82568.478023] usb 1-1: configuration #1 
chosen from 1 choice
---------------------------------------------------------------------------------------------------------------------------------------------------------

I don't attach the rest of the kern.log, the device type is not important, 
because this happends with different
devices randomly. In my case there is 1-to-3 chance, that device will be 
recognised as USB 1.1 instead of 2.0.

The problem is probably in the (kernel_source)/drivers/usb/core/hub.c
!!!

I'm not a programmer (only amateur who likes to solve problems ;-), so somebody 
take a look
and check that hub.c driver please.

Focus on:
------------

static void
check_highspeed (struct usb_hub *hub, struct usb_device *udev, int port1)
{
        struct usb_qualifier_descriptor *qual;
        int                             status;

        qual = kmalloc (sizeof *qual, GFP_KERNEL);
        if (qual == NULL)
                return;

        status = usb_get_descriptor (udev, USB_DT_DEVICE_QUALIFIER, 0,
                        qual, sizeof *qual);
        if (status == sizeof *qual) {
                dev_info(&udev->dev, "not running at top speed; "
                        "connect to a high speed hub\n");
                /* hub LEDs are probably harder to miss than syslog */
                if (hub->has_indicators) {
                        hub->indicator[port1-1] = INDICATOR_GREEN_BLINK;
                        schedule_delayed_work (&hub->leds, 0);
                }
        }
        kfree(qual);
}

You see, driver only prints the warning, and does nothing else!!!

I guess it should at least reset the device and try to connect the USB 2.0 
device to
EHCI and not OHCI/UHCI (host hub)!

-- 
slow USB 2.0 drive: it's mounted as USB 1.0, not USB 2.0!
https://bugs.launchpad.net/bugs/177235
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to