Lines Matching refs:parm

223 usbd_transfer_setup_sub_malloc(struct usb_setup_params *parm,  in usbd_transfer_setup_sub_malloc()  argument
284 if (parm->buf == NULL) { in usbd_transfer_setup_sub_malloc()
286 parm->dma_page_ptr += n_dma_pc * n_dma_pg; in usbd_transfer_setup_sub_malloc()
287 parm->dma_page_cache_ptr += n_dma_pc; in usbd_transfer_setup_sub_malloc()
290 parm->dma_page_ptr += count * n_dma_pg; in usbd_transfer_setup_sub_malloc()
291 parm->xfer_page_cache_ptr += count; in usbd_transfer_setup_sub_malloc()
296 parm->dma_page_cache_ptr[x].tag_parent = in usbd_transfer_setup_sub_malloc()
297 &parm->curr_xfer->xroot->dma_parent_tag; in usbd_transfer_setup_sub_malloc()
301 parm->xfer_page_cache_ptr[x].tag_parent = in usbd_transfer_setup_sub_malloc()
302 &parm->curr_xfer->xroot->dma_parent_tag; in usbd_transfer_setup_sub_malloc()
307 *ppc = parm->xfer_page_cache_ptr; in usbd_transfer_setup_sub_malloc()
309 *ppc = parm->dma_page_cache_ptr; in usbd_transfer_setup_sub_malloc()
313 pc = parm->xfer_page_cache_ptr; in usbd_transfer_setup_sub_malloc()
314 pg = parm->dma_page_ptr; in usbd_transfer_setup_sub_malloc()
322 if (usb_pc_alloc_mem(parm->dma_page_cache_ptr, in usbd_transfer_setup_sub_malloc()
327 parm->dma_page_cache_ptr++; in usbd_transfer_setup_sub_malloc()
337 if (usb_pc_alloc_mem(parm->dma_page_cache_ptr, in usbd_transfer_setup_sub_malloc()
342 buf = parm->dma_page_cache_ptr->buffer; in usbd_transfer_setup_sub_malloc()
344 parm->dma_page_cache_ptr++; in usbd_transfer_setup_sub_malloc()
365 parm->xfer_page_cache_ptr = pc; in usbd_transfer_setup_sub_malloc()
366 parm->dma_page_ptr = pg; in usbd_transfer_setup_sub_malloc()
456 usbd_transfer_setup_sub(struct usb_setup_params *parm) in usbd_transfer_setup_sub() argument
462 struct usb_xfer *xfer = parm->curr_xfer; in usbd_transfer_setup_sub()
463 const struct usb_config *setup = parm->curr_setup; in usbd_transfer_setup_sub()
478 if ((parm->hc_max_packet_size == 0) || in usbd_transfer_setup_sub()
479 (parm->hc_max_packet_count == 0) || in usbd_transfer_setup_sub()
480 (parm->hc_max_frame_size == 0)) { in usbd_transfer_setup_sub()
481 parm->err = USB_ERR_INVAL; in usbd_transfer_setup_sub()
498 xfer->flags_int.usb_mode = parm->udev->flags.usb_mode; in usbd_transfer_setup_sub()
500 parm->bufsize = setup->bufsize; in usbd_transfer_setup_sub()
502 switch (parm->speed) { in usbd_transfer_setup_sub()
555 if (xfer->max_packet_count > parm->hc_max_packet_count) { in usbd_transfer_setup_sub()
556 xfer->max_packet_count = parm->hc_max_packet_count; in usbd_transfer_setup_sub()
565 if ((xfer->max_packet_size > parm->hc_max_packet_size) || in usbd_transfer_setup_sub()
567 xfer->max_packet_size = parm->hc_max_packet_size; in usbd_transfer_setup_sub()
571 usbd_get_std_packet_size(&std_size, type, parm->speed); in usbd_transfer_setup_sub()
619 switch (parm->speed) { in usbd_transfer_setup_sub()
642 parm->err = USB_ERR_INVAL; in usbd_transfer_setup_sub()
649 parm->err = USB_ERR_ZERO_NFRAMES; in usbd_transfer_setup_sub()
663 switch (parm->speed) { in usbd_transfer_setup_sub()
696 switch (parm->speed) { in usbd_transfer_setup_sub()
717 if ((parm->bufsize <= MIN_PKT) && in usbd_transfer_setup_sub()
723 parm->bufsize = 0; /* automatic setup length */ in usbd_transfer_setup_sub()
727 parm->err = USB_ERR_ZERO_MAXP; in usbd_transfer_setup_sub()
740 if (parm->bufsize == 0) { in usbd_transfer_setup_sub()
741 parm->bufsize = xfer->max_frame_size; in usbd_transfer_setup_sub()
744 parm->bufsize *= xfer->nframes; in usbd_transfer_setup_sub()
755 parm->bufsize += (xfer->max_frame_size - 1); in usbd_transfer_setup_sub()
757 if (parm->bufsize < xfer->max_frame_size) { in usbd_transfer_setup_sub()
759 parm->err = USB_ERR_INVAL; in usbd_transfer_setup_sub()
764 parm->bufsize -= (parm->bufsize % xfer->max_frame_size); in usbd_transfer_setup_sub()
769 parm->bufsize += REQ_SIZE; /* SETUP message */ in usbd_transfer_setup_sub()
772 xfer->max_data_length = parm->bufsize; in usbd_transfer_setup_sub()
783 if (parm->bufsize <= REQ_SIZE) { in usbd_transfer_setup_sub()
811 parm->err = USB_ERR_INVAL; in usbd_transfer_setup_sub()
821 xfer->frlengths = parm->xfer_length_ptr; in usbd_transfer_setup_sub()
822 parm->xfer_length_ptr += 2 * n_frlengths; in usbd_transfer_setup_sub()
825 xfer->frbuffers = parm->xfer_page_cache_ptr; in usbd_transfer_setup_sub()
826 parm->xfer_page_cache_ptr += n_frbuffers; in usbd_transfer_setup_sub()
841 if (usbd_transfer_setup_sub_malloc(parm, in usbd_transfer_setup_sub()
842 &pc, parm->bufsize, 1, 1)) { in usbd_transfer_setup_sub()
843 parm->err = USB_ERR_NOMEM; in usbd_transfer_setup_sub()
844 } else if (parm->buf != NULL) { in usbd_transfer_setup_sub()
857 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup_sub()
859 if (parm->buf != NULL) { in usbd_transfer_setup_sub()
861 USB_ADD_BYTES(parm->buf, parm->size[0]); in usbd_transfer_setup_sub()
869 parm->size[0] += parm->bufsize; in usbd_transfer_setup_sub()
872 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup_sub()
879 if (parm->bufsize_max < parm->bufsize) { in usbd_transfer_setup_sub()
880 parm->bufsize_max = parm->bufsize; in usbd_transfer_setup_sub()
906 xfer->dma_page_ptr = parm->dma_page_ptr; in usbd_transfer_setup_sub()
907 parm->dma_page_ptr += (2 * n_frbuffers); in usbd_transfer_setup_sub()
908 parm->dma_page_ptr += (parm->bufsize / USB_PAGE_SIZE); in usbd_transfer_setup_sub()
918 (parm->hc_max_frame_size - in usbd_transfer_setup_sub()
919 (parm->hc_max_frame_size % xfer->max_frame_size)); in usbd_transfer_setup_sub()
922 parm->err = USB_ERR_INVAL; in usbd_transfer_setup_sub()
928 if (parm->buf) { in usbd_transfer_setup_sub()
934 (parm->bufsize_max > 0)) { in usbd_transfer_setup_sub()
937 parm->bufsize_max)) { in usbd_transfer_setup_sub()
938 parm->err = USB_ERR_NOMEM; in usbd_transfer_setup_sub()
946 if (parm->err) { in usbd_transfer_setup_sub()
993 struct usb_setup_params *parm; in usbd_transfer_setup() local
1045 parm = &udev->scratch.xfer_setup[0].parm; in usbd_transfer_setup()
1046 memset(parm, 0, sizeof(*parm)); in usbd_transfer_setup()
1048 parm->udev = udev; in usbd_transfer_setup()
1049 parm->speed = usbd_get_speed(udev); in usbd_transfer_setup()
1050 parm->hc_max_packet_count = 1; in usbd_transfer_setup()
1052 if (parm->speed >= USB_SPEED_MAX) { in usbd_transfer_setup()
1053 parm->err = USB_ERR_INVAL; in usbd_transfer_setup()
1067 info->memory_size = parm->size[0]; in usbd_transfer_setup()
1070 info->dma_page_cache_start = USB_ADD_BYTES(buf, parm->size[4]); in usbd_transfer_setup()
1071 info->dma_page_cache_end = USB_ADD_BYTES(buf, parm->size[5]); in usbd_transfer_setup()
1073 info->xfer_page_cache_start = USB_ADD_BYTES(buf, parm->size[5]); in usbd_transfer_setup()
1074 info->xfer_page_cache_end = USB_ADD_BYTES(buf, parm->size[2]); in usbd_transfer_setup()
1081 parm->dma_tag_p, udev->bus->dma_parent_tag[0].tag, in usbd_transfer_setup()
1083 parm->dma_tag_max); in usbd_transfer_setup()
1122 parm->size[0] = 0; in usbd_transfer_setup()
1123 parm->buf = buf; in usbd_transfer_setup()
1124 parm->size[0] += sizeof(info[0]); in usbd_transfer_setup()
1155 parm->err = USB_ERR_NO_PIPE; in usbd_transfer_setup()
1160 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup()
1163 parm->curr_setup = setup; in usbd_transfer_setup()
1170 xfer = USB_ADD_BYTES(buf, parm->size[0]); in usbd_transfer_setup()
1196 parm->size[0] += sizeof(xfer[0]); in usbd_transfer_setup()
1197 parm->methods = xfer->endpoint->methods; in usbd_transfer_setup()
1198 parm->curr_xfer = xfer; in usbd_transfer_setup()
1204 (udev->bus->methods->xfer_setup) (parm); in usbd_transfer_setup()
1207 if (parm->err) in usbd_transfer_setup()
1222 parm->err = USB_ERR_INVAL; in usbd_transfer_setup()
1245 if (parm->err) in usbd_transfer_setup()
1249 if (buf != NULL || parm->err != 0) in usbd_transfer_setup()
1257 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup()
1260 parm->size[1] = parm->size[0]; in usbd_transfer_setup()
1271 parm->dma_tag_max += 3 * MIN(n_setup, USB_EP_MAX); in usbd_transfer_setup()
1276 parm->dma_tag_max += 8; in usbd_transfer_setup()
1278 parm->dma_tag_p += parm->dma_tag_max; in usbd_transfer_setup()
1280 parm->size[0] += ((uint8_t *)parm->dma_tag_p) - in usbd_transfer_setup()
1284 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup()
1287 parm->size[3] = parm->size[0]; in usbd_transfer_setup()
1289 parm->size[0] += ((uint8_t *)parm->dma_page_ptr) - in usbd_transfer_setup()
1293 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup()
1296 parm->size[4] = parm->size[0]; in usbd_transfer_setup()
1298 parm->size[0] += ((uint8_t *)parm->dma_page_cache_ptr) - in usbd_transfer_setup()
1302 parm->size[5] = parm->size[0]; in usbd_transfer_setup()
1304 parm->size[0] += ((uint8_t *)parm->xfer_page_cache_ptr) - in usbd_transfer_setup()
1309 parm->size[2] = parm->size[0]; in usbd_transfer_setup()
1312 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup()
1314 parm->size[6] = parm->size[0]; in usbd_transfer_setup()
1316 parm->size[0] += ((uint8_t *)parm->xfer_length_ptr) - in usbd_transfer_setup()
1320 parm->size[0] += ((-parm->size[0]) & (USB_HOST_ALIGN - 1)); in usbd_transfer_setup()
1323 buf = malloc(parm->size[0], M_USB, M_WAITOK | M_ZERO); in usbd_transfer_setup()
1326 parm->err = USB_ERR_NOMEM; in usbd_transfer_setup()
1329 parm->size[0]); in usbd_transfer_setup()
1333 parm->dma_tag_p = USB_ADD_BYTES(buf, parm->size[1]); in usbd_transfer_setup()
1334 parm->dma_page_ptr = USB_ADD_BYTES(buf, parm->size[3]); in usbd_transfer_setup()
1335 parm->dma_page_cache_ptr = USB_ADD_BYTES(buf, parm->size[4]); in usbd_transfer_setup()
1336 parm->xfer_page_cache_ptr = USB_ADD_BYTES(buf, parm->size[5]); in usbd_transfer_setup()
1337 parm->xfer_length_ptr = USB_ADD_BYTES(buf, parm->size[6]); in usbd_transfer_setup()
1355 if (parm->err) in usbd_transfer_setup()
1358 error = parm->err; in usbd_transfer_setup()