From: Rupesh Gujare Date: Mon, 5 Aug 2013 17:40:15 +0000 (+0100) Subject: staging: ozwpan: Return correct hub status. X-Git-Tag: firefly_0821_release~176^2~5471^2~307 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a66698110b7a286d57df023eaa6c0e50503c4d7b;p=firefly-linux-kernel-4.4.55.git staging: ozwpan: Return correct hub status. Fix a bug where we were not returning correct hub status for 8th port. Signed-off-by: Rupesh Gujare Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/ozwpan/ozhcd.c b/drivers/staging/ozwpan/ozhcd.c index 26eaa74e4a21..f38d0365bdde 100644 --- a/drivers/staging/ozwpan/ozhcd.c +++ b/drivers/staging/ozwpan/ozhcd.c @@ -1865,17 +1865,24 @@ static int oz_hcd_hub_status_data(struct usb_hcd *hcd, char *buf) int i; buf[0] = 0; + buf[1] = 0; spin_lock_bh(&ozhcd->hcd_lock); for (i = 0; i < OZ_NB_PORTS; i++) { if (ozhcd->ports[i].flags & OZ_PORT_F_CHANGED) { oz_dbg(HUB, "Port %d changed\n", i); ozhcd->ports[i].flags &= ~OZ_PORT_F_CHANGED; - buf[0] |= 1<<(i+1); + if (i < 7) + buf[0] |= 1 << (i+1); + else + buf[1] |= 1 << (i-7); } } spin_unlock_bh(&ozhcd->hcd_lock); - return buf[0] ? 1 : 0; + if (buf[0] != 0 || buf[1] != 0) + return 2; + else + return 0; } /*------------------------------------------------------------------------------ * Context: process