Lines Matching refs:dma_p
1494 ddi_device_acc_attr_t *attr_p, uint_t dma_flags, dma_area_t *dma_p) in rtls_alloc_dma_mem() argument
1503 DDI_DMA_SLEEP, NULL, &dma_p->dma_hdl); in rtls_alloc_dma_mem()
1508 dma_p->dma_hdl = NULL; in rtls_alloc_dma_mem()
1515 err = ddi_dma_mem_alloc(dma_p->dma_hdl, memsize, attr_p, in rtls_alloc_dma_mem()
1517 DDI_DMA_SLEEP, NULL, &vaddr, &dma_p->alength, &dma_p->acc_hdl); in rtls_alloc_dma_mem()
1522 ddi_dma_free_handle(&dma_p->dma_hdl); in rtls_alloc_dma_mem()
1523 dma_p->dma_hdl = NULL; in rtls_alloc_dma_mem()
1524 dma_p->acc_hdl = NULL; in rtls_alloc_dma_mem()
1531 dma_p->mem_va = vaddr; in rtls_alloc_dma_mem()
1532 err = ddi_dma_addr_bind_handle(dma_p->dma_hdl, NULL, in rtls_alloc_dma_mem()
1533 vaddr, dma_p->alength, dma_flags, DDI_DMA_SLEEP, NULL, in rtls_alloc_dma_mem()
1534 &dma_p->cookie, &dma_p->ncookies); in rtls_alloc_dma_mem()
1535 if (err != DDI_DMA_MAPPED || dma_p->ncookies != 1) { in rtls_alloc_dma_mem()
1540 ddi_dma_mem_free(&dma_p->acc_hdl); in rtls_alloc_dma_mem()
1541 ddi_dma_free_handle(&dma_p->dma_hdl); in rtls_alloc_dma_mem()
1542 dma_p->acc_hdl = NULL; in rtls_alloc_dma_mem()
1543 dma_p->dma_hdl = NULL; in rtls_alloc_dma_mem()
1554 rtls_free_dma_mem(dma_area_t *dma_p) in rtls_free_dma_mem() argument
1556 if (dma_p->dma_hdl != NULL) { in rtls_free_dma_mem()
1557 if (dma_p->ncookies) { in rtls_free_dma_mem()
1558 (void) ddi_dma_unbind_handle(dma_p->dma_hdl); in rtls_free_dma_mem()
1559 dma_p->ncookies = 0; in rtls_free_dma_mem()
1561 ddi_dma_free_handle(&dma_p->dma_hdl); in rtls_free_dma_mem()
1562 dma_p->dma_hdl = NULL; in rtls_free_dma_mem()
1565 if (dma_p->acc_hdl != NULL) { in rtls_free_dma_mem()
1566 ddi_dma_mem_free(&dma_p->acc_hdl); in rtls_free_dma_mem()
1567 dma_p->acc_hdl = NULL; in rtls_free_dma_mem()