| From 11fb37998759c48e4e4c200c974593cbeab25d3e Mon Sep 17 00:00:00 2001 |
| From: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| Date: Fri, 12 Jan 2018 17:50:02 +1100 |
| Subject: usb/gadget: Fix "high bandwidth" check in usb_gadget_ep_match_desc() |
| |
| From: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| |
| commit 11fb37998759c48e4e4c200c974593cbeab25d3e upstream. |
| |
| The current code tries to test for bits that are masked out by |
| usb_endpoint_maxp(). Instead, use the proper accessor to access |
| the new high bandwidth bits. |
| |
| Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/gadget/udc/core.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/usb/gadget/udc/core.c |
| +++ b/drivers/usb/gadget/udc/core.c |
| @@ -913,7 +913,7 @@ int usb_gadget_ep_match_desc(struct usb_ |
| return 0; |
| |
| /* "high bandwidth" works only at high speed */ |
| - if (!gadget_is_dualspeed(gadget) && usb_endpoint_maxp(desc) & (3<<11)) |
| + if (!gadget_is_dualspeed(gadget) && usb_endpoint_maxp_mult(desc) > 1) |
| return 0; |
| |
| switch (type) { |