Lines Matching defs:ring
115 /* MHI protocol requires the transfer ring to be aligned with ring length */
117 struct mhi_ring *ring,
120 ring->alloc_size = len + (len - 1);
121 ring->pre_aligned = mhi_alloc_coherent(mhi_cntrl, ring->alloc_size,
122 &ring->dma_handle, GFP_KERNEL);
123 if (!ring->pre_aligned)
126 ring->iommu_base = (ring->dma_handle + (len - 1)) & ~(len - 1);
127 ring->base = ring->pre_aligned + (ring->iommu_base - ring->dma_handle);
166 dev_err(dev, "irq %d not available for event ring\n",
203 struct mhi_ring *ring;
207 ring = &mhi_cmd->ring;
208 mhi_free_coherent(mhi_cntrl, ring->alloc_size,
209 ring->pre_aligned, ring->dma_handle);
210 ring->base = NULL;
211 ring->iommu_base = 0;
223 ring = &mhi_event->ring;
224 mhi_free_coherent(mhi_cntrl, ring->alloc_size,
225 ring->pre_aligned, ring->dma_handle);
226 ring->base = NULL;
227 ring->iommu_base = 0;
306 struct mhi_ring *ring = &mhi_event->ring;
322 ring->el_size = sizeof(struct mhi_tre);
323 ring->len = ring->el_size * ring->elements;
324 ret = mhi_alloc_aligned_ring(mhi_cntrl, ring, ring->len);
330 * ring is empty
332 ring->rp = ring->wp = ring->base;
333 er_ctxt->rbase = ring->iommu_base;
335 er_ctxt->rlen = ring->len;
336 ring->ctxt_wp = &er_ctxt->wp;
352 struct mhi_ring *ring = &mhi_cmd->ring;
354 ring->el_size = sizeof(struct mhi_tre);
355 ring->elements = CMD_EL_PER_RING;
356 ring->len = ring->el_size * ring->elements;
357 ret = mhi_alloc_aligned_ring(mhi_cntrl, ring, ring->len);
361 ring->rp = ring->wp = ring->base;
362 cmd_ctxt->rbase = ring->iommu_base;
364 cmd_ctxt->rlen = ring->len;
365 ring->ctxt_wp = &cmd_ctxt->wp;
374 struct mhi_ring *ring = &mhi_cmd->ring;
376 mhi_free_coherent(mhi_cntrl, ring->alloc_size,
377 ring->pre_aligned, ring->dma_handle);
387 struct mhi_ring *ring = &mhi_event->ring;
392 mhi_free_coherent(mhi_cntrl, ring->alloc_size,
393 ring->pre_aligned, ring->dma_handle);
518 /* Read event ring db offset */
538 mhi_event->ring.db_addr = base + val;
542 mhi_cntrl->mhi_cmd[PRIMARY_CMD_RING].ring.db_addr = base + CRDB_LOWER;
648 /* Populate event ring */
654 mhi_event->ring.elements = event_cfg->num_elements;
659 /* This event ring has a dedicated channel */
759 * For some channels, local ring length should be bigger than
760 * the transfer ring length due to internal logical channels
762 * ring length. Example, RSC channels should have a larger local
763 * channel length than transfer ring length.
858 /* By default, host is allowed to ring DB in both M0 and M2 states */
1211 * If the channel event ring is managed by client, then