Lines Matching refs:dmaxfer
673 dhd_dmaxfer_t dmaxfer; /* for test/DMA loopback */ member
3965 prot->dmaxfer.srcmem.va = NULL; in dhd_prot_init()
3966 prot->dmaxfer.dstmem.va = NULL; in dhd_prot_init()
3967 prot->dmaxfer.in_progress = FALSE; in dhd_prot_init()
9812 void dmaxfer_free_dmaaddr(dhd_pub_t *dhd, dhd_dmaxfer_t *dmaxfer) argument
9814 if (dmaxfer == NULL)
9817 dhd_dma_buf_free(dhd, &dmaxfer->srcmem);
9818 dhd_dma_buf_free(dhd, &dmaxfer->dstmem);
9826 dhd_dmaxfer_t *dmaxfer = &prot->dmaxfer; local
9834 dmap->srcmem = &(dmaxfer->srcmem);
9835 dmap->dstmem = &(dmaxfer->dstmem);
9863 uint srcdelay, uint destdelay, dhd_dmaxfer_t *dmaxfer) argument
9866 if (!dmaxfer)
9870 dmaxfer_free_dmaaddr(dhd, dmaxfer);
9872 if (dhd_dma_buf_alloc(dhd, &dmaxfer->srcmem, len)) {
9876 if (dhd_dma_buf_alloc(dhd, &dmaxfer->dstmem, len + 8)) {
9877 dhd_dma_buf_free(dhd, &dmaxfer->srcmem);
9881 dmaxfer->len = len;
9893 while (i < dmaxfer->len) {
9894 ((uint8*)dmaxfer->srcmem.va)[i] = j % 256;
9901 OSL_CACHE_FLUSH(dmaxfer->srcmem.va, dmaxfer->len);
9903 dmaxfer->srcdelay = srcdelay;
9904 dmaxfer->destdelay = destdelay;
9927 prot->dmaxfer.status = cmplt->compl_hdr.status;
9928 OSL_CACHE_INV(prot->dmaxfer.dstmem.va, prot->dmaxfer.len);
9929 if (prot->dmaxfer.d11_lpbk != M2M_WRITE_TO_RAM &&
9930 prot->dmaxfer.d11_lpbk != M2M_READ_FROM_RAM &&
9931 prot->dmaxfer.d11_lpbk != D11_WRITE_TO_RAM &&
9932 prot->dmaxfer.d11_lpbk != D11_READ_FROM_RAM) {
9933 err = memcmp(prot->dmaxfer.srcmem.va,
9934 prot->dmaxfer.dstmem.va, prot->dmaxfer.len);
9936 if (prot->dmaxfer.srcmem.va && prot->dmaxfer.dstmem.va) {
9945 prot->dmaxfer.status = BCME_ERROR;
9947 prot->dmaxfer.srcmem.va, prot->dmaxfer.len);
9949 prot->dmaxfer.dstmem.va, prot->dmaxfer.len);
9952 switch (prot->dmaxfer.d11_lpbk) {
9977 prot->dmaxfer.dstmem.va, prot->dmaxfer.len);
9985 prot->dmaxfer.dstmem.va, prot->dmaxfer.len);
9994 dhd_prhex("XFER SRC: ", prot->dmaxfer.srcmem.va,
9995 prot->dmaxfer.len, DHD_INFO_VAL);
9996 dhd_prhex("XFER DST: ", prot->dmaxfer.dstmem.va,
9997 prot->dmaxfer.len, DHD_INFO_VAL);
10003 end_usec -= prot->dmaxfer.start_usec;
10005 prot->dmaxfer.time_taken = end_usec;
10007 prot->dmaxfer.len, (unsigned long)end_usec,
10008 (prot->dmaxfer.len * (1000 * 1000 / 1024) / (uint32)end_usec)));
10010 dhd->prot->dmaxfer.in_progress = FALSE;
10036 if (prot->dmaxfer.in_progress) {
10053 prot->dmaxfer.in_progress = TRUE;
10055 &prot->dmaxfer)) != BCME_OK) {
10056 prot->dmaxfer.in_progress = FALSE;
10067 dmaxfer_free_dmaaddr(dhd, &prot->dmaxfer);
10068 prot->dmaxfer.in_progress = FALSE;
10083 dmap->host_input_buf_addr.high = htol32(PHYSADDRHI(prot->dmaxfer.srcmem.pa));
10084 dmap->host_input_buf_addr.low = htol32(PHYSADDRLO(prot->dmaxfer.srcmem.pa));
10085 dmap->host_ouput_buf_addr.high = htol32(PHYSADDRHI(prot->dmaxfer.dstmem.pa));
10086 dmap->host_ouput_buf_addr.low = htol32(PHYSADDRLO(prot->dmaxfer.dstmem.pa));
10087 dmap->xfer_len = htol32(prot->dmaxfer.len);
10088 dmap->srcdelay = htol32(prot->dmaxfer.srcdelay);
10089 dmap->destdelay = htol32(prot->dmaxfer.destdelay);
10090 prot->dmaxfer.d11_lpbk = d11_lpbk;
10106 ((prot->dmaxfer.d11_lpbk & PCIE_DMA_XFER_FLG_D11_LPBK_MASK)
10108 prot->dmaxfer.start_usec = OSL_SYSUPTIME_US();
10128 if (prot->dmaxfer.in_progress)
10130 else if (prot->dmaxfer.status == 0)
10135 result->type = prot->dmaxfer.d11_lpbk;
10136 result->error_code = prot->dmaxfer.status;
10137 result->num_bytes = prot->dmaxfer.len;
10138 result->time_taken = prot->dmaxfer.time_taken;
10139 if (prot->dmaxfer.time_taken) {
10142 (prot->dmaxfer.len * (1000 * 1000 / 1024)) /
10143 (uint32)prot->dmaxfer.time_taken;