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 618b417..503ac5c 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;
 }