Date: Tue, 5 Oct 2010 23:27:06 +0000 (UTC) From: Weongyo Jeong <weongyo@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r213466 - in user/weongyo/usb/sys/dev/usb: . controller Message-ID: <201010052327.o95NR6As075856@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201010052327.o95NR6As075856>