Lines Matching refs:newtag

402 	bus_dma_tag_t newtag;
407 newtag = (bus_dma_tag_t)malloc(sizeof(*newtag), M_BUSDMA, M_NOWAIT);
408 if (newtag == NULL) {
410 __func__, newtag, 0, error);
414 newtag->parent = parent;
415 newtag->alignment = alignment ? alignment : 1;
416 newtag->boundary = boundary;
417 newtag->lowaddr = trunc_page((vm_offset_t)lowaddr) + (PAGE_SIZE - 1);
418 newtag->highaddr = trunc_page((vm_offset_t)highaddr) + (PAGE_SIZE - 1);
419 newtag->filter = filter;
420 newtag->filterarg = filterarg;
421 newtag->maxsize = maxsize;
422 newtag->nsegments = nsegments;
423 newtag->maxsegsz = maxsegsz;
424 newtag->flags = flags;
425 newtag->ref_count = 1; /* Count ourself */
426 newtag->map_count = 0;
427 newtag->ranges = bus_dma_get_range();
428 newtag->_nranges = bus_dma_get_range_nb();
430 newtag->lockfunc = lockfunc;
431 newtag->lockfuncarg = lockfuncarg;
433 newtag->lockfunc = dflt_lock;
434 newtag->lockfuncarg = NULL;
439 newtag->lowaddr = MIN(parent->lowaddr, newtag->lowaddr);
440 newtag->highaddr = MAX(parent->highaddr, newtag->highaddr);
441 if (newtag->boundary == 0)
442 newtag->boundary = parent->boundary;
444 newtag->boundary = MIN(parent->boundary,
445 newtag->boundary);
446 if ((newtag->filter != NULL) ||
448 newtag->flags |= BUS_DMA_COULD_BOUNCE;
449 if (newtag->filter == NULL) {
454 newtag->filter = parent->filter;
455 newtag->filterarg = parent->filterarg;
456 newtag->parent = parent->parent;
458 if (newtag->parent != NULL)
461 if (_bus_dma_can_bounce(newtag->lowaddr, newtag->highaddr)
462 || newtag->alignment > 1)
463 newtag->flags |= BUS_DMA_COULD_BOUNCE;
465 if (((newtag->flags & BUS_DMA_COULD_BOUNCE) != 0) &&
471 if ((error = alloc_bounce_zone(newtag)) != 0) {
472 free(newtag, M_BUSDMA);
475 bz = newtag->bounce_zone;
483 if (alloc_bounce_pages(newtag, pages) < pages)
487 newtag->flags |= BUS_DMA_MIN_ALLOC_COMP;
489 newtag->bounce_zone = NULL;
492 free(newtag, M_BUSDMA);
495 *dmat = newtag;
498 __func__, newtag, (newtag != NULL ? newtag->flags : 0), error);