Lines Matching refs:workp

1130 		dca_work_t		*workp;  in dca_initworklist()  local
1132 if ((workp = dca_newwork(dca)) == NULL) { in dca_initworklist()
1137 workp->dw_wlp = wlp; in dca_initworklist()
1138 dca_freework(workp); in dca_initworklist()
1224 dca_work_t *workp; in dca_uninit() local
1232 while ((workp = dca_getwork(dca, mcr)) != NULL) { in dca_uninit()
1233 dca_destroywork(workp); in dca_uninit()
1526 dca_work_t *workp; in dca_newwork() local
1532 workp = kmem_zalloc(sizeof (dca_work_t), KM_SLEEP); in dca_newwork()
1535 DDI_DMA_SLEEP, NULL, &workp->dw_mcr_dmah); in dca_newwork()
1538 dca_destroywork(workp); in dca_newwork()
1542 rv = ddi_dma_mem_alloc(workp->dw_mcr_dmah, in dca_newwork()
1545 &workp->dw_mcr_kaddr, &size, &workp->dw_mcr_acch); in dca_newwork()
1548 dca_destroywork(workp); in dca_newwork()
1552 rv = ddi_dma_addr_bind_handle(workp->dw_mcr_dmah, NULL, in dca_newwork()
1553 workp->dw_mcr_kaddr, size, DDI_DMA_CONSISTENT | DDI_DMA_RDWR, in dca_newwork()
1557 dca_destroywork(workp); in dca_newwork()
1561 workp->dw_mcr_paddr = c.dmac_address; in dca_newwork()
1562 return (workp); in dca_newwork()
1566 dca_destroywork(dca_work_t *workp) in dca_destroywork() argument
1568 if (workp->dw_mcr_paddr) { in dca_destroywork()
1569 (void) ddi_dma_unbind_handle(workp->dw_mcr_dmah); in dca_destroywork()
1571 if (workp->dw_mcr_acch) { in dca_destroywork()
1572 ddi_dma_mem_free(&workp->dw_mcr_acch); in dca_destroywork()
1574 if (workp->dw_mcr_dmah) { in dca_destroywork()
1575 ddi_dma_free_handle(&workp->dw_mcr_dmah); in dca_destroywork()
1577 kmem_free(workp, sizeof (dca_work_t)); in dca_destroywork()
1784 dca_work_t *workp; in dca_getwork() local
1787 workp = (dca_work_t *)dca_dequeue(&wlp->dwl_freework); in dca_getwork()
1789 if (workp) { in dca_getwork()
1791 bzero(workp->dw_mcr_kaddr, 8); in dca_getwork()
1795 workp->dw_reqs[nreqs] = NULL; in dca_getwork()
1798 return (workp); in dca_getwork()
1802 dca_freework(dca_work_t *workp) in dca_freework() argument
1804 mutex_enter(&workp->dw_wlp->dwl_freelock); in dca_freework()
1805 dca_enqueue(&workp->dw_wlp->dwl_freework, (dca_listnode_t *)workp); in dca_freework()
1806 mutex_exit(&workp->dw_wlp->dwl_freelock); in dca_freework()
2125 dca_work_t *workp; in dca_schedule() local
2152 workp = dca_getwork(dca, mcr); in dca_schedule()
2154 if (workp == NULL) { in dca_schedule()
2189 PUTMCR32(workp, offset, reqp->dr_ctx_paddr); in dca_schedule()
2196 PUTMCR32(workp, offset, reqp->dr_in_paddr); in dca_schedule()
2199 PUTMCR32(workp, offset, reqp->dr_in_next); in dca_schedule()
2202 PUTMCR16(workp, offset, reqp->dr_in_len); in dca_schedule()
2205 PUTMCR16(workp, offset, 0); in dca_schedule()
2212 PUTMCR16(workp, offset, 0); in dca_schedule()
2215 PUTMCR16(workp, offset, reqp->dr_pkt_length); in dca_schedule()
2222 PUTMCR32(workp, offset, reqp->dr_out_paddr); in dca_schedule()
2225 PUTMCR32(workp, offset, reqp->dr_out_next); in dca_schedule()
2228 PUTMCR16(workp, offset, reqp->dr_out_len); in dca_schedule()
2231 PUTMCR16(workp, offset, 0); in dca_schedule()
2237 workp->dw_reqs[nreqs] = reqp; in dca_schedule()
2243 dca_freework(workp); in dca_schedule()
2249 PUTMCR16(workp, MCR_FLAGS, 0); in dca_schedule()
2250 PUTMCR16(workp, MCR_COUNT, nreqs); in dca_schedule()
2254 workp->dw_mcr_paddr, workp->dw_mcr_kaddr, in dca_schedule()
2257 workp->dw_lbolt = ddi_get_lbolt(); in dca_schedule()
2259 (void) ddi_dma_sync(workp->dw_mcr_dmah, 0, 0, in dca_schedule()
2261 if (dca_check_dma_handle(dca, workp->dw_mcr_dmah, in dca_schedule()
2263 dca_destroywork(workp); in dca_schedule()
2267 PUTCSR(dca, csr, workp->dw_mcr_paddr); in dca_schedule()
2270 dca_destroywork(workp); in dca_schedule()
2273 dca_enqueue(&wlp->dwl_runq, (dca_listnode_t *)workp); in dca_schedule()
2287 dca_work_t *workp; in dca_reclaim() local
2302 workp = (dca_work_t *)dca_peekqueue(&wlp->dwl_runq); in dca_reclaim()
2303 if (workp == NULL) { in dca_reclaim()
2308 (void) ddi_dma_sync(workp->dw_mcr_dmah, 0, 4, in dca_reclaim()
2310 if (dca_check_dma_handle(dca, workp->dw_mcr_dmah, in dca_reclaim()
2312 dca_rmqueue((dca_listnode_t *)workp); in dca_reclaim()
2313 dca_destroywork(workp); in dca_reclaim()
2317 flags = GETMCR16(workp, MCR_FLAGS); in dca_reclaim()
2326 dca_rmqueue((dca_listnode_t *)workp); in dca_reclaim()
2335 dca_request_t *reqp = workp->dw_reqs[i]; in dca_reclaim()
2350 dca_request_t *reqp = workp->dw_reqs[i]; in dca_reclaim()
2357 workp->dw_reqs[i] = NULL; in dca_reclaim()
2364 dca_freework(workp); in dca_reclaim()
2486 dca_work_t *workp; in dca_failure() local
2489 workp = (dca_work_t *)dca_dequeue(&wlp->dwl_runq); in dca_failure()
2490 if (workp == NULL) { in dca_failure()
2501 dca_request_t *reqp = workp->dw_reqs[i]; in dca_failure()
2504 workp->dw_reqs[i] = NULL; in dca_failure()
2520 dca_freework(workp); in dca_failure()
2555 dca_work_t *workp; in dca_jobtimeout() local
2561 workp = (dca_work_t *)dca_peekqueue(&wlp->dwl_runq); in dca_jobtimeout()
2562 if (workp == NULL) { in dca_jobtimeout()
2568 if ((when - workp->dw_lbolt) < drv_usectohz(STALETIME)) { in dca_jobtimeout()
2575 DBG(dca, DWARN, "stale job (0x%p) found in MCR%d!", workp, in dca_jobtimeout()