diff options
author | Hans de Goede <hdegoede@redhat.com> | 2013-10-17 16:20:54 -0400 |
---|---|---|
committer | Sarah Sharp <sarah.a.sharp@linux.intel.com> | 2014-03-04 18:38:09 -0500 |
commit | 6c2334e9019039d7952190e239e6a8f0d10101fe (patch) | |
tree | 07a353c0a28956d71f3d83072d568dfc59782995 | |
parent | a887cd366347c38607f0d9c28ca2baed40cac8fc (diff) |
uas: Fix uas not working when plugged into an ehci port
I thought it would be a good idea to also test uas with usb-2, and it turns out
it was, as it did not work. The problem is that the uas driver was passing the
bEndpointAddress' direction bit to usb_rcvbulkpipe, the xhci code seems to not
care about this, but with the ehci code this causes usb_submit_urb failure.
With this fixed the uas code works nicely with an uas device plugged into
an ehci port.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
-rw-r--r-- | drivers/usb/storage/uas.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c index 5eacb8054457..6ad5de9639d5 100644 --- a/drivers/usb/storage/uas.c +++ b/drivers/usb/storage/uas.c | |||
@@ -948,13 +948,13 @@ static void uas_configure_endpoints(struct uas_dev_info *devinfo) | |||
948 | eps[3] = usb_pipe_endpoint(udev, devinfo->data_out_pipe); | 948 | eps[3] = usb_pipe_endpoint(udev, devinfo->data_out_pipe); |
949 | } else { | 949 | } else { |
950 | devinfo->cmd_pipe = usb_sndbulkpipe(udev, | 950 | devinfo->cmd_pipe = usb_sndbulkpipe(udev, |
951 | eps[0]->desc.bEndpointAddress); | 951 | usb_endpoint_num(&eps[0]->desc)); |
952 | devinfo->status_pipe = usb_rcvbulkpipe(udev, | 952 | devinfo->status_pipe = usb_rcvbulkpipe(udev, |
953 | eps[1]->desc.bEndpointAddress); | 953 | usb_endpoint_num(&eps[1]->desc)); |
954 | devinfo->data_in_pipe = usb_rcvbulkpipe(udev, | 954 | devinfo->data_in_pipe = usb_rcvbulkpipe(udev, |
955 | eps[2]->desc.bEndpointAddress); | 955 | usb_endpoint_num(&eps[2]->desc)); |
956 | devinfo->data_out_pipe = usb_sndbulkpipe(udev, | 956 | devinfo->data_out_pipe = usb_sndbulkpipe(udev, |
957 | eps[3]->desc.bEndpointAddress); | 957 | usb_endpoint_num(&eps[3]->desc)); |
958 | } | 958 | } |
959 | 959 | ||
960 | devinfo->qdepth = usb_alloc_streams(devinfo->intf, eps + 1, 3, 256, | 960 | devinfo->qdepth = usb_alloc_streams(devinfo->intf, eps + 1, 3, 256, |