uas: Log a warning when we cannot use uas because the hcd lacks streams
authorHans de Goede <hdegoede@redhat.com>
Fri, 25 Jul 2014 20:01:27 +0000 (22:01 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 Aug 2014 23:00:14 +0000 (16:00 -0700)
So that an user who wants to use uas can see why he is not getting uas.

Also move the check down so that we don't warn if there are other reasons
why uas cannot work.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/uas-detect.h

index 618b417917440b62864f005e82773cc80f9e200d..503ac5c8d80f7bb7bcb87832df78a71d8c14587f 100644 (file)
@@ -64,9 +64,6 @@ static int uas_use_uas_driver(struct usb_interface *intf,
        if (flags & US_FL_IGNORE_UAS)
                return 0;
 
-       if (udev->speed >= USB_SPEED_SUPER && !hcd->can_do_streams)
-               return 0;
-
        alt = uas_find_uas_alt_setting(intf);
        if (alt < 0)
                return 0;
@@ -84,5 +81,14 @@ static int uas_use_uas_driver(struct usb_interface *intf,
                return 0;
        }
 
+       if (udev->speed >= USB_SPEED_SUPER && !hcd->can_do_streams) {
+               dev_warn(&udev->dev,
+                       "USB controller %s does not support streams, which are required by the UAS driver.\n",
+                       hcd_to_bus(hcd)->bus_name);
+               dev_warn(&udev->dev,
+                       "Please try an other USB controller if you wish to use UAS.\n");
+               return 0;
+       }
+
        return 1;
 }