svn commit: r213466 - in user/weongyo/usb/sys/dev/usb: . controller

Weongyo Jeong weongyo at FreeBSD.org
Tue Oct 5 23:27:06 UTC 2010


Author: weongyo
Date: Tue Oct  5 23:27:06 2010
New Revision: 213466
URL: http://svn.freebsd.org/changeset/base/213466

Log:
  Removes magic parm.size[0, 1, 2, 3, 4, 5, 6].

Modified:
  user/weongyo/usb/sys/dev/usb/controller/at91dci.c
  user/weongyo/usb/sys/dev/usb/controller/atmegadci.c
  user/weongyo/usb/sys/dev/usb/controller/avr32dci.c
  user/weongyo/usb/sys/dev/usb/controller/musb_otg.c
  user/weongyo/usb/sys/dev/usb/controller/uss820dci.c
  user/weongyo/usb/sys/dev/usb/usb_transfer.c
  user/weongyo/usb/sys/dev/usb/usb_transfer.h

Modified: user/weongyo/usb/sys/dev/usb/controller/at91dci.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/at91dci.c	Tue Oct  5 23:24:58 2010	(r213465)
+++ user/weongyo/usb/sys/dev/usb/controller/at91dci.c	Tue Oct  5 23:27:06 2010	(r213466)
@@ -2138,13 +2138,13 @@ at91dci_xfer_setup(struct usb_setup_para
 	}
 
 	/* align data */
-	parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1));
+	parm->needbufsize = roundup(parm->needbufsize, USB_HOST_ALIGN);
 
 	for (n = 0; n != ntd; n++) {
 		struct at91dci_td *td;
 
 		if (parm->buf) {
-			td = USB_ADD_BYTES(parm->buf, parm->size[0]);
+			td = USB_ADD_BYTES(parm->buf, parm->needbufsize);
 
 			/* init TD */
 			td->io_tag = sc->sc_io_tag;
@@ -2158,7 +2158,7 @@ at91dci_xfer_setup(struct usb_setup_para
 
 			last_obj = td;
 		}
-		parm->size[0] += sizeof(*td);
+		parm->needbufsize += sizeof(*td);
 	}
 
 	xfer->td_start[0] = last_obj;

Modified: user/weongyo/usb/sys/dev/usb/controller/atmegadci.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/atmegadci.c	Tue Oct  5 23:24:58 2010	(r213465)
+++ user/weongyo/usb/sys/dev/usb/controller/atmegadci.c	Tue Oct  5 23:27:06 2010	(r213466)
@@ -2007,13 +2007,13 @@ atmegadci_xfer_setup(struct usb_setup_pa
 	}
 
 	/* align data */
-	parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1));
+	parm->needbufsize = roundup(parm->needbufsize, USB_HOST_ALIGN);
 
 	for (n = 0; n != ntd; n++) {
 		struct atmegadci_td *td;
 
 		if (parm->buf) {
-			td = USB_ADD_BYTES(parm->buf, parm->size[0]);
+			td = USB_ADD_BYTES(parm->buf, parm->needbufsize);
 
 			/* init TD */
 			td->max_packet_size = xfer->max_packet_size;
@@ -2024,7 +2024,7 @@ atmegadci_xfer_setup(struct usb_setup_pa
 
 			last_obj = td;
 		}
-		parm->size[0] += sizeof(*td);
+		parm->needbufsize += sizeof(*td);
 	}
 
 	xfer->td_start[0] = last_obj;

Modified: user/weongyo/usb/sys/dev/usb/controller/avr32dci.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/avr32dci.c	Tue Oct  5 23:24:58 2010	(r213465)
+++ user/weongyo/usb/sys/dev/usb/controller/avr32dci.c	Tue Oct  5 23:27:06 2010	(r213466)
@@ -1936,7 +1936,7 @@ avr32dci_xfer_setup(struct usb_setup_par
 		return;
 	}
 	/* align data */
-	parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1));
+	parm->needbufsize = roundup(parm->needbufsize, USB_HOST_ALIGN);
 
 	for (n = 0; n != ntd; n++) {
 		struct avr32dci_td *td;
@@ -1944,7 +1944,7 @@ avr32dci_xfer_setup(struct usb_setup_par
 		if (parm->buf) {
 			uint32_t temp;
 
-			td = USB_ADD_BYTES(parm->buf, parm->size[0]);
+			td = USB_ADD_BYTES(parm->buf, parm->needbufsize);
 
 			/* init TD */
 			td->max_packet_size = xfer->max_packet_size;
@@ -1959,7 +1959,7 @@ avr32dci_xfer_setup(struct usb_setup_par
 
 			last_obj = td;
 		}
-		parm->size[0] += sizeof(*td);
+		parm->needbufsize += sizeof(*td);
 	}
 
 	xfer->td_start[0] = last_obj;

Modified: user/weongyo/usb/sys/dev/usb/controller/musb_otg.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/musb_otg.c	Tue Oct  5 23:24:58 2010	(r213465)
+++ user/weongyo/usb/sys/dev/usb/controller/musb_otg.c	Tue Oct  5 23:27:06 2010	(r213466)
@@ -2600,13 +2600,13 @@ musbotg_xfer_setup(struct usb_setup_para
 	}
 
 	/* align data */
-	parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1));
+	parm->needbufsize = roundup(parm->needbufsize, USB_HOST_ALIGN);
 
 	for (n = 0; n != ntd; n++) {
 		struct musbotg_td *td;
 
 		if (parm->buf) {
-			td = USB_ADD_BYTES(parm->buf, parm->size[0]);
+			td = USB_ADD_BYTES(parm->buf, parm->needbufsize);
 
 			/* init TD */
 			td->max_frame_size = xfer->max_frame_size;
@@ -2615,7 +2615,7 @@ musbotg_xfer_setup(struct usb_setup_para
 
 			last_obj = td;
 		}
-		parm->size[0] += sizeof(*td);
+		parm->needbufsize += sizeof(*td);
 	}
 
 	xfer->td_start[0] = last_obj;

Modified: user/weongyo/usb/sys/dev/usb/controller/uss820dci.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/controller/uss820dci.c	Tue Oct  5 23:24:58 2010	(r213465)
+++ user/weongyo/usb/sys/dev/usb/controller/uss820dci.c	Tue Oct  5 23:27:06 2010	(r213466)
@@ -2182,13 +2182,13 @@ uss820dci_xfer_setup(struct usb_setup_pa
 	}
 
 	/* align data */
-	parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1));
+	parm->needbufsize = roundup(parm->needbufsize, USB_HOST_ALIGN);
 
 	for (n = 0; n != ntd; n++) {
 		struct uss820dci_td *td;
 
 		if (parm->buf) {
-			td = USB_ADD_BYTES(parm->buf, parm->size[0]);
+			td = USB_ADD_BYTES(parm->buf, parm->needbufsize);
 
 			/* init TD */
 			td->io_tag = sc->sc_io_tag;
@@ -2202,7 +2202,7 @@ uss820dci_xfer_setup(struct usb_setup_pa
 
 			last_obj = td;
 		}
-		parm->size[0] += sizeof(*td);
+		parm->needbufsize += sizeof(*td);
 	}
 
 	xfer->td_start[0] = last_obj;

Modified: user/weongyo/usb/sys/dev/usb/usb_transfer.c
==============================================================================
--- user/weongyo/usb/sys/dev/usb/usb_transfer.c	Tue Oct  5 23:24:58 2010	(r213465)
+++ user/weongyo/usb/sys/dev/usb/usb_transfer.c	Tue Oct  5 23:27:06 2010	(r213466)
@@ -578,11 +578,11 @@ usbd_transfer_setup_sub(struct usb_setup
 
 	if ((xfer->flags & USBD_EXT_BUFFER) == 0) {
 		/* align data */
-		parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1));
+		parm->needbufsize = roundup(parm->needbufsize, USB_HOST_ALIGN);
 
 		if (parm->buf) {
 			xfer->local_buffer =
-			    USB_ADD_BYTES(parm->buf, parm->size[0]);
+			    USB_ADD_BYTES(parm->buf, parm->needbufsize);
 			xfer->local_buflen = parm->bufsize;
 
 			usbd_xfer_set_frame_offset(xfer, 0, 0);
@@ -590,10 +590,10 @@ usbd_transfer_setup_sub(struct usb_setup
 			if (type == UE_CONTROL && n_frbuffers > 1)
 				usbd_xfer_set_frame_offset(xfer, REQ_SIZE, 1);
 		}
-		parm->size[0] += parm->bufsize;
+		parm->needbufsize += parm->bufsize;
 
 		/* align data again */
-		parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1));
+		parm->needbufsize = roundup(parm->needbufsize, USB_HOST_ALIGN);
 	}
 	/*
 	 * Compute maximum buffer size
@@ -762,14 +762,18 @@ usbd_transfer_setup(struct usb_device *u
 			info = USB_ADD_BYTES(buf, 0);
 
 			info->memory_base = buf;
-			info->memory_size = parm.size[0];
+			info->memory_size = parm.needbufsize;
 
 #if USB_HAVE_BUSDMA
-			info->dma_page_cache_start = USB_ADD_BYTES(buf, parm.size[4]);
-			info->dma_page_cache_end = USB_ADD_BYTES(buf, parm.size[5]);
+			info->dma_page_cache_start = USB_ADD_BYTES(buf,
+			    parm.bufoffset[USB_SETUP_DMA_PAGECACHE]);
+			info->dma_page_cache_end = USB_ADD_BYTES(buf,
+			    parm.bufoffset[USB_SETUP_XFER_PAGECACHE]);
 #endif
-			info->xfer_page_cache_start = USB_ADD_BYTES(buf, parm.size[5]);
-			info->xfer_page_cache_end = USB_ADD_BYTES(buf, parm.size[2]);
+			info->xfer_page_cache_start = USB_ADD_BYTES(buf,
+			    parm.bufoffset[USB_SETUP_XFER_PAGECACHE]);
+			info->xfer_page_cache_end = USB_ADD_BYTES(buf,
+			    parm.bufoffset[USB_SETUP_XFER_PAGECACHE_END]);
 
 			cv_init(&info->cv_drain, "WDRAIN");
 
@@ -806,9 +810,9 @@ usbd_transfer_setup(struct usb_device *u
 				    udev->bus->non_giant_callback_tq;
 		}
 		/* reset sizes */
-		parm.size[0] = 0;
+		parm.needbufsize = 0;
 		parm.buf = buf;
-		parm.size[0] += sizeof(info[0]);
+		parm.needbufsize += sizeof(info[0]);
 
 		for (setup = setup_start, n = 0;
 		    setup != setup_end; setup++, n++) {
@@ -830,7 +834,8 @@ usbd_transfer_setup(struct usb_device *u
 			}
 
 			/* align data properly */
-			parm.size[0] += ((-parm.size[0]) & (USB_HOST_ALIGN - 1));
+			parm.needbufsize = roundup(parm.needbufsize,
+			    USB_HOST_ALIGN);
 
 			/* store current setup pointer */
 			parm.curr_setup = setup;
@@ -840,7 +845,7 @@ usbd_transfer_setup(struct usb_device *u
 				 * Common initialization of the
 				 * "usb_xfer" structure.
 				 */
-				xfer = USB_ADD_BYTES(buf, parm.size[0]);
+				xfer = USB_ADD_BYTES(buf, parm.needbufsize);
 				xfer->address = udev->address;
 				xfer->priv_sc = priv_sc;
 				xfer->xroot = info;
@@ -863,7 +868,7 @@ usbd_transfer_setup(struct usb_device *u
 			/* set transfer endpoint pointer */
 			xfer->endpoint = ep;
 
-			parm.size[0] += sizeof(xfer[0]);
+			parm.needbufsize += sizeof(xfer[0]);
 			parm.methods = xfer->endpoint->methods;
 			parm.curr_xfer = xfer;
 
@@ -923,10 +928,10 @@ usbd_transfer_setup(struct usb_device *u
 			goto done;
 		}
 		/* align data properly */
-		parm.size[0] += ((-parm.size[0]) & (USB_HOST_ALIGN - 1));
+		parm.needbufsize = roundup(parm.needbufsize, USB_HOST_ALIGN);
 
 		/* store offset temporarily */
-		parm.size[1] = parm.size[0];
+		parm.bufoffset[USB_SETUP_DMA_TAG] = parm.needbufsize;
 
 		/*
 		 * The number of DMA tags required depends on
@@ -943,62 +948,67 @@ usbd_transfer_setup(struct usb_device *u
 
 		parm.dma_tag_p += parm.dma_tag_max;
 
-		parm.size[0] += ((uint8_t *)parm.dma_tag_p) -
+		parm.needbufsize += ((uint8_t *)parm.dma_tag_p) -
 		    ((uint8_t *)0);
 
 		/* align data properly */
-		parm.size[0] += ((-parm.size[0]) & (USB_HOST_ALIGN - 1));
+		parm.needbufsize = roundup(parm.needbufsize, USB_HOST_ALIGN);
 
 		/* store offset temporarily */
-		parm.size[3] = parm.size[0];
+		parm.bufoffset[USB_SETUP_DMA_PAGE] = parm.needbufsize;
 
-		parm.size[0] += ((uint8_t *)parm.dma_page_ptr) -
+		parm.needbufsize += ((uint8_t *)parm.dma_page_ptr) -
 		    ((uint8_t *)0);
 
 		/* align data properly */
-		parm.size[0] += ((-parm.size[0]) & (USB_HOST_ALIGN - 1));
+		parm.needbufsize = roundup(parm.needbufsize, USB_HOST_ALIGN);
 
 		/* store offset temporarily */
-		parm.size[4] = parm.size[0];
+		parm.bufoffset[USB_SETUP_DMA_PAGECACHE] = parm.needbufsize;
 
-		parm.size[0] += ((uint8_t *)parm.dma_page_cache_ptr) -
+		parm.needbufsize += ((uint8_t *)parm.dma_page_cache_ptr) -
 		    ((uint8_t *)0);
 
 		/* store end offset temporarily */
-		parm.size[5] = parm.size[0];
+		parm.bufoffset[USB_SETUP_XFER_PAGECACHE] = parm.needbufsize;
 
-		parm.size[0] += ((uint8_t *)parm.xfer_page_cache_ptr) -
+		parm.needbufsize += ((uint8_t *)parm.xfer_page_cache_ptr) -
 		    ((uint8_t *)0);
 
 		/* store end offset temporarily */
-		parm.size[2] = parm.size[0];
+		parm.bufoffset[USB_SETUP_XFER_PAGECACHE_END] = parm.needbufsize;
 
 		/* align data properly */
-		parm.size[0] += ((-parm.size[0]) & (USB_HOST_ALIGN - 1));
+		parm.needbufsize = roundup(parm.needbufsize, USB_HOST_ALIGN);
 
-		parm.size[6] = parm.size[0];
+		parm.bufoffset[USB_SETUP_XFERLEN] = parm.needbufsize;
 
-		parm.size[0] += ((uint8_t *)parm.xfer_length_ptr) -
+		parm.needbufsize += ((uint8_t *)parm.xfer_length_ptr) -
 		    ((uint8_t *)0);
 
 		/* align data properly */
-		parm.size[0] += ((-parm.size[0]) & (USB_HOST_ALIGN - 1));
+		parm.needbufsize = roundup(parm.needbufsize, USB_HOST_ALIGN);
 
 		/* allocate zeroed memory */
-		buf = malloc(parm.size[0], M_USB, M_WAITOK | M_ZERO);
+		buf = malloc(parm.needbufsize, M_USB, M_WAITOK | M_ZERO);
 
 		if (buf == NULL) {
 			parm.err = USB_ERR_NOMEM;
 			DPRINTFN(0, "cannot allocate memory block for "
 			    "configuration (%d bytes)\n",
-			    parm.size[0]);
+			    parm.needbufsize);
 			goto done;
 		}
-		parm.dma_tag_p = USB_ADD_BYTES(buf, parm.size[1]);
-		parm.dma_page_ptr = USB_ADD_BYTES(buf, parm.size[3]);
-		parm.dma_page_cache_ptr = USB_ADD_BYTES(buf, parm.size[4]);
-		parm.xfer_page_cache_ptr = USB_ADD_BYTES(buf, parm.size[5]);
-		parm.xfer_length_ptr = USB_ADD_BYTES(buf, parm.size[6]);
+		parm.dma_tag_p = USB_ADD_BYTES(buf,
+		    parm.bufoffset[USB_SETUP_DMA_TAG]);
+		parm.dma_page_ptr = USB_ADD_BYTES(buf,
+		    parm.bufoffset[USB_SETUP_DMA_PAGE]);
+		parm.dma_page_cache_ptr = USB_ADD_BYTES(buf,
+		    parm.bufoffset[USB_SETUP_DMA_PAGECACHE]);
+		parm.xfer_page_cache_ptr = USB_ADD_BYTES(buf,
+		    parm.bufoffset[USB_SETUP_XFER_PAGECACHE]);
+		parm.xfer_length_ptr = USB_ADD_BYTES(buf,
+		    parm.bufoffset[USB_SETUP_XFERLEN]);
 	}
 
 done:

Modified: user/weongyo/usb/sys/dev/usb/usb_transfer.h
==============================================================================
--- user/weongyo/usb/sys/dev/usb/usb_transfer.h	Tue Oct  5 23:24:58 2010	(r213465)
+++ user/weongyo/usb/sys/dev/usb/usb_transfer.h	Tue Oct  5 23:27:06 2010	(r213466)
@@ -90,7 +90,16 @@ struct usb_setup_params {
 	void   *buf;
 	usb_frlength_t *xfer_length_ptr;
 
-	usb_size_t size[7];
+	usb_size_t needbufsize;
+#define	USB_SETUP_DMA_TAG		0
+#define	USB_SETUP_DMA_PAGECACHE		1
+#define	USB_SETUP_DMA_PAGE		2
+#define	USB_SETUP_XFER_PAGECACHE	3
+#define	USB_SETUP_XFER_PAGECACHE_END	4
+#define	USB_SETUP_XFERLEN		5
+#define	USB_SETUP_MAX			6
+	usb_size_t bufoffset[USB_SETUP_MAX];
+
 	usb_frlength_t bufsize;
 	usb_frlength_t bufsize_max;
 


More information about the svn-src-user mailing list