Re: [PATCH v2] usb: gadget: dummy_hcd: Fix wrong power status bit clear/reset in dummy_hub_control()

2017-03-24 Thread Alan Stern
On Fri, 24 Mar 2017, Yuyang Du wrote:

> This fixes the commit: 1cd8fd2887e1 ("usb: gadget: dummy_hcd: add
> SuperSpeed support").
> 
> In the case of ClearPortFeature and USB_PORT_FEAT_POWER, simply clear
> the right bit regardless of what the wValue is.
> 
> Signed-off-by: Yuyang Du 

Acked-by: Alan Stern 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] usb: gadget: dummy_hcd: Fix wrong power status bit clear/reset in dummy_hub_control()

2017-03-23 Thread Yuyang Du
This fixes the commit: 1cd8fd2887e1 ("usb: gadget: dummy_hcd: add
SuperSpeed support").

In the case of ClearPortFeature and USB_PORT_FEAT_POWER, simply clear
the right bit regardless of what the wValue is.

Signed-off-by: Yuyang Du 
---
 drivers/usb/gadget/udc/dummy_hcd.c | 20 
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/drivers/usb/gadget/udc/dummy_hcd.c 
b/drivers/usb/gadget/udc/dummy_hcd.c
index 8cabc59..c790819 100644
--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -2062,16 +2062,13 @@ static int dummy_hub_control(
}
break;
case USB_PORT_FEAT_POWER:
-   if (hcd->speed == HCD_USB3) {
-   if (dum_hcd->port_status & USB_PORT_STAT_POWER)
-   dev_dbg(dummy_dev(dum_hcd),
-   "power-off\n");
-   } else
-   if (dum_hcd->port_status &
-   USB_SS_PORT_STAT_POWER)
-   dev_dbg(dummy_dev(dum_hcd),
-   "power-off\n");
-   /* FALLS THROUGH */
+   dev_dbg(dummy_dev(dum_hcd), "power-off\n");
+   if (hcd->speed == HCD_USB3)
+   dum_hcd->port_status &= ~USB_SS_PORT_STAT_POWER;
+   else
+   dum_hcd->port_status &= ~USB_PORT_STAT_POWER;
+   set_link_state(dum_hcd);
+   break;
default:
dum_hcd->port_status &= ~(1 << wValue);
set_link_state(dum_hcd);
@@ -2242,14 +2239,13 @@ static int dummy_hub_control(
if ((dum_hcd->port_status &
 USB_SS_PORT_STAT_POWER) != 0) {
dum_hcd->port_status |= (1 << wValue);
-   set_link_state(dum_hcd);
}
} else
if ((dum_hcd->port_status &
 USB_PORT_STAT_POWER) != 0) {
dum_hcd->port_status |= (1 << wValue);
-   set_link_state(dum_hcd);
}
+   set_link_state(dum_hcd);
}
break;
case GetPortErrorCount:
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html