Module Name:    src
Committed By:   skrll
Date:           Sun Feb 14 10:56:23 UTC 2016

Modified Files:
        src/sys/external/bsd/dwc2: dwc2.c

Log Message:
Update for latest dwc2 dist


To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/sys/external/bsd/dwc2/dwc2.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/dwc2/dwc2.c
diff -u src/sys/external/bsd/dwc2/dwc2.c:1.38 src/sys/external/bsd/dwc2/dwc2.c:1.39
--- src/sys/external/bsd/dwc2/dwc2.c:1.38	Tue Dec 22 14:31:36 2015
+++ src/sys/external/bsd/dwc2/dwc2.c	Sun Feb 14 10:56:22 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: dwc2.c,v 1.38 2015/12/22 14:31:36 skrll Exp $	*/
+/*	$NetBSD: dwc2.c,v 1.39 2016/02/14 10:56:22 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.38 2015/12/22 14:31:36 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dwc2.c,v 1.39 2016/02/14 10:56:22 skrll Exp $");
 
 #include "opt_usb.h"
 
@@ -1685,7 +1685,7 @@ dwc2_init(struct dwc2_softc *sc)
 		retval = dwc2_hcd_init(hsotg);
 		if (retval) {
 			if (hsotg->gadget_enabled)
-				s3c_hsotg_remove(hsotg);
+				dwc2_hsotg_remove(hsotg);
 			goto fail2;
 		}
 	    hsotg->hcd_enabled = 1;
@@ -1788,30 +1788,30 @@ void dwc2_host_complete(struct dwc2_hsot
 	ed = xfer->pipe->endpoint->edesc;
 	xfertype = UE_GET_XFERTYPE(ed->bmAttributes);
 
-	xfer->actlen = dwc2_hcd_urb_get_actual_length(qtd->urb);
+	struct dwc2_hcd_urb *urb = qtd->urb;
+	xfer->actlen = dwc2_hcd_urb_get_actual_length(urb);
 
 	DPRINTFN(3, "xfer=%p actlen=%d\n", xfer, xfer->actlen);
 
-	if (xfertype == UE_ISOCHRONOUS && dbg_perio()) {
-		int i;
-
-		for (i = 0; i < xfer->nframes; i++)
-			dev_vdbg(hsotg->dev, " ISO Desc %d status %d\n",
-				 i, qtd->urb->iso_descs[i].status);
-	}
-
 	if (xfertype == UE_ISOCHRONOUS) {
 		int i;
-
 		xfer->actlen = 0;
 		for (i = 0; i < xfer->nframes; ++i) {
 			xfer->frlengths[i] =
 				dwc2_hcd_urb_get_iso_desc_actual_length(
-						qtd->urb, i);
+						urb, i);
 			xfer->actlen += xfer->frlengths[i];
 		}
 	}
 
+	if (xfertype == UE_ISOCHRONOUS && dbg_perio()) {
+		int i;
+
+		for (i = 0; i < xfer->nframes; i++)
+			dev_vdbg(hsotg->dev, " ISO Desc %d status %d\n",
+				 i, urb->iso_descs[i].status);
+	}
+
 	if (!status) {
 		if (!(xfer->flags & USBD_SHORT_XFER_OK) &&
 		    xfer->actlen < xfer->length)
@@ -1838,6 +1838,7 @@ void dwc2_host_complete(struct dwc2_hsot
 		xfer->status = USBD_IOERROR;
 		break;
 	default:
+		xfer->status = USBD_IOERROR;
 		printf("%s: unknown error status %d\n", __func__, status);
 	}
 
@@ -1884,6 +1885,13 @@ _dwc2_hcd_start(struct dwc2_hsotg *hsotg
 
 	mutex_spin_enter(&hsotg->lock);
 
+	hsotg->lx_state = DWC2_L0;
+	
+	if (dwc2_is_device_mode(hsotg)) {
+		mutex_spin_exit(&hsotg->lock);
+		return 0;	/* why 0 ?? */
+	}
+
 	dwc2_hcd_reinit(hsotg);
 
 	mutex_spin_exit(&hsotg->lock);

Reply via email to