Lines Matching refs:buf_info

183 			 struct mhi_buf_info *buf_info)
185 buf_info->p_addr = dma_map_single(mhi_cntrl->cntrl_dev,
186 buf_info->v_addr, buf_info->len,
187 buf_info->dir);
188 if (dma_mapping_error(mhi_cntrl->cntrl_dev, buf_info->p_addr))
195 struct mhi_buf_info *buf_info)
197 void *buf = dma_alloc_coherent(mhi_cntrl->cntrl_dev, buf_info->len,
198 &buf_info->p_addr, GFP_ATOMIC);
203 if (buf_info->dir == DMA_TO_DEVICE)
204 memcpy(buf, buf_info->v_addr, buf_info->len);
206 buf_info->bb_addr = buf;
212 struct mhi_buf_info *buf_info)
214 dma_unmap_single(mhi_cntrl->cntrl_dev, buf_info->p_addr, buf_info->len,
215 buf_info->dir);
219 struct mhi_buf_info *buf_info)
221 if (buf_info->dir == DMA_FROM_DEVICE)
222 memcpy(buf_info->v_addr, buf_info->bb_addr, buf_info->len);
224 dma_free_coherent(mhi_cntrl->cntrl_dev, buf_info->len,
225 buf_info->bb_addr, buf_info->p_addr);
607 struct mhi_buf_info *buf_info;
626 buf_info = buf_ring->rp;
631 xfer_len = buf_info->len;
634 if (likely(!buf_info->pre_mapped))
635 mhi_cntrl->unmap_single(mhi_cntrl, buf_info);
637 result.buf_addr = buf_info->cb_buf;
641 min_t(u16, xfer_len, buf_info->len);
665 buf_info->cb_buf,
666 buf_info->len, MHI_EOT)) {
670 kfree(buf_info->cb_buf);
712 struct mhi_buf_info *buf_info;
728 buf_info = buf_ring->base + cookie;
734 result.bytes_xferd = min_t(u16, xfer_len, buf_info->len);
735 result.buf_addr = buf_info->cb_buf;
743 WARN_ON(!buf_info->used);
763 buf_info->used = false;
1117 static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info,
1134 ret = mhi_gen_tre(mhi_cntrl, mhi_chan, buf_info, mflags);
1168 struct mhi_buf_info buf_info = { };
1170 buf_info.v_addr = skb->data;
1171 buf_info.cb_buf = skb;
1172 buf_info.len = len;
1177 return mhi_queue(mhi_dev, &buf_info, dir, mflags);
1186 struct mhi_buf_info buf_info = { };
1188 buf_info.p_addr = mhi_buf->dma_addr;
1189 buf_info.cb_buf = mhi_buf;
1190 buf_info.pre_mapped = true;
1191 buf_info.len = len;
1196 return mhi_queue(mhi_dev, &buf_info, dir, mflags);
1205 struct mhi_buf_info *buf_info;
1215 buf_info = buf_ring->wp;
1216 WARN_ON(buf_info->used);
1217 buf_info->pre_mapped = info->pre_mapped;
1219 buf_info->p_addr = info->p_addr;
1221 buf_info->v_addr = info->v_addr;
1222 buf_info->cb_buf = info->cb_buf;
1223 buf_info->wp = tre_ring->wp;
1224 buf_info->dir = mhi_chan->dir;
1225 buf_info->len = info->len;
1228 ret = mhi_cntrl->map_single(mhi_cntrl, buf_info);
1241 mhi_tre->ptr = MHI_TRE_DATA_PTR(buf_info->p_addr);
1257 struct mhi_buf_info buf_info = { };
1259 buf_info.v_addr = buf;
1260 buf_info.cb_buf = buf;
1261 buf_info.len = len;
1263 return mhi_queue(mhi_dev, &buf_info, dir, mflags);
1593 struct mhi_buf_info *buf_info = buf_ring->rp;
1601 if (!buf_info->pre_mapped)
1602 mhi_cntrl->unmap_single(mhi_cntrl, buf_info);
1608 kfree(buf_info->cb_buf);
1610 result.buf_addr = buf_info->cb_buf;