Lines Matching refs:newtag

368 	bus_dma_tag_t newtag;
375 newtag = (bus_dma_tag_t)malloc(sizeof(*newtag), M_BUSDMA, M_NOWAIT);
376 if (newtag == NULL) {
378 __func__, newtag, 0, error);
382 newtag->parent = parent;
383 newtag->alignment = alignment;
384 newtag->boundary = boundary;
385 newtag->lowaddr = trunc_page((vm_offset_t)lowaddr) + (PAGE_SIZE - 1);
386 newtag->highaddr = trunc_page((vm_offset_t)highaddr) + (PAGE_SIZE - 1);
387 newtag->filter = filter;
388 newtag->filterarg = filterarg;
389 newtag->maxsize = maxsize;
390 newtag->nsegments = nsegments;
391 newtag->maxsegsz = maxsegsz;
392 newtag->flags = flags;
394 newtag->flags |= BUS_DMA_COHERENT;
395 newtag->ref_count = 1; /* Count ourself */
396 newtag->map_count = 0;
398 newtag->lockfunc = lockfunc;
399 newtag->lockfuncarg = lockfuncarg;
401 newtag->lockfunc = dflt_lock;
402 newtag->lockfuncarg = NULL;
404 newtag->segments = NULL;
410 newtag->lowaddr = MIN(parent->lowaddr, newtag->lowaddr);
411 newtag->highaddr = MAX(parent->highaddr, newtag->highaddr);
412 if (newtag->boundary == 0)
413 newtag->boundary = parent->boundary;
415 newtag->boundary =
416 MIN(parent->boundary, newtag->boundary);
417 if ((newtag->filter != NULL) ||
419 newtag->flags |= BUS_DMA_COULD_BOUNCE;
420 if (newtag->filter == NULL) {
425 newtag->filter = parent->filter;
426 newtag->filterarg = parent->filterarg;
427 newtag->parent = parent->parent;
429 if (newtag->parent != NULL)
432 if (_bus_dma_can_bounce(newtag->lowaddr, newtag->highaddr)
433 || newtag->alignment > 1)
434 newtag->flags |= BUS_DMA_COULD_BOUNCE;
436 if (((newtag->flags & BUS_DMA_COULD_BOUNCE) != 0) &&
442 if ((error = alloc_bounce_zone(newtag)) != 0) {
443 free(newtag, M_BUSDMA);
446 bz = newtag->bounce_zone;
454 if (alloc_bounce_pages(newtag, pages) < pages)
458 newtag->flags |= BUS_DMA_MIN_ALLOC_COMP;
460 newtag->bounce_zone = NULL;
462 free(newtag, M_BUSDMA);
464 *dmat = newtag;
466 __func__, newtag, (newtag != NULL ? newtag->flags : 0), error);