Lines Matching refs:buf_info
137 struct mhi_buf_info *buf_info)
139 buf_info->p_addr = dma_map_single(mhi_cntrl->cntrl_dev,
140 buf_info->v_addr, buf_info->len,
141 buf_info->dir);
142 if (dma_mapping_error(mhi_cntrl->cntrl_dev, buf_info->p_addr))
149 struct mhi_buf_info *buf_info)
151 void *buf = mhi_alloc_coherent(mhi_cntrl, buf_info->len,
152 &buf_info->p_addr, GFP_ATOMIC);
157 if (buf_info->dir == DMA_TO_DEVICE)
158 memcpy(buf, buf_info->v_addr, buf_info->len);
160 buf_info->bb_addr = buf;
166 struct mhi_buf_info *buf_info)
168 dma_unmap_single(mhi_cntrl->cntrl_dev, buf_info->p_addr, buf_info->len,
169 buf_info->dir);
173 struct mhi_buf_info *buf_info)
175 if (buf_info->dir == DMA_FROM_DEVICE)
176 memcpy(buf_info->v_addr, buf_info->bb_addr, buf_info->len);
178 mhi_free_coherent(mhi_cntrl, buf_info->len, buf_info->bb_addr,
179 buf_info->p_addr);
533 struct mhi_buf_info *buf_info;
552 buf_info = buf_ring->rp;
557 xfer_len = buf_info->len;
560 if (likely(!buf_info->pre_mapped))
561 mhi_cntrl->unmap_single(mhi_cntrl, buf_info);
563 result.buf_addr = buf_info->cb_buf;
567 min_t(u16, xfer_len, buf_info->len);
588 buf_info->cb_buf,
589 buf_info->len, MHI_EOT)) {
593 kfree(buf_info->cb_buf);
635 struct mhi_buf_info *buf_info;
651 buf_info = buf_ring->base + cookie;
657 result.bytes_xferd = min_t(u16, xfer_len, buf_info->len);
658 result.buf_addr = buf_info->cb_buf;
666 WARN_ON(!buf_info->used);
686 buf_info->used = false;
1046 struct mhi_buf_info buf_info = { };
1069 buf_info.v_addr = skb->data;
1070 buf_info.cb_buf = skb;
1071 buf_info.len = len;
1073 ret = mhi_gen_tre(mhi_cntrl, mhi_chan, &buf_info, mflags);
1102 struct mhi_buf_info buf_info = { };
1128 buf_info.p_addr = mhi_buf->dma_addr;
1129 buf_info.cb_buf = mhi_buf;
1130 buf_info.pre_mapped = true;
1131 buf_info.len = len;
1133 ret = mhi_gen_tre(mhi_cntrl, mhi_chan, &buf_info, mflags);
1159 struct mhi_buf_info *buf_info;
1166 buf_info = buf_ring->wp;
1167 WARN_ON(buf_info->used);
1168 buf_info->pre_mapped = info->pre_mapped;
1170 buf_info->p_addr = info->p_addr;
1172 buf_info->v_addr = info->v_addr;
1173 buf_info->cb_buf = info->cb_buf;
1174 buf_info->wp = tre_ring->wp;
1175 buf_info->dir = mhi_chan->dir;
1176 buf_info->len = info->len;
1179 ret = mhi_cntrl->map_single(mhi_cntrl, buf_info);
1190 mhi_tre->ptr = MHI_TRE_DATA_PTR(buf_info->p_addr);
1208 struct mhi_buf_info buf_info = { };
1224 buf_info.v_addr = buf;
1225 buf_info.cb_buf = buf;
1226 buf_info.len = len;
1228 ret = mhi_gen_tre(mhi_cntrl, mhi_chan, &buf_info, mflags);
1532 struct mhi_buf_info *buf_info = buf_ring->rp;
1537 if (!buf_info->pre_mapped)
1538 mhi_cntrl->unmap_single(mhi_cntrl, buf_info);
1544 kfree(buf_info->cb_buf);
1546 result.buf_addr = buf_info->cb_buf;