Lines Matching defs:ring

131 /* MHI protocol requires the transfer ring to be aligned with ring length */
133 struct mhi_ring *ring,
136 ring->alloc_size = len + (len - 1);
137 ring->pre_aligned = dma_alloc_coherent(mhi_cntrl->cntrl_dev, ring->alloc_size,
138 &ring->dma_handle, GFP_KERNEL);
139 if (!ring->pre_aligned)
142 ring->iommu_base = (ring->dma_handle + (len - 1)) & ~(len - 1);
143 ring->base = ring->pre_aligned + (ring->iommu_base - ring->dma_handle);
193 dev_err(dev, "irq %d not available for event ring\n",
232 struct mhi_ring *ring;
236 ring = &mhi_cmd->ring;
237 dma_free_coherent(mhi_cntrl->cntrl_dev, ring->alloc_size,
238 ring->pre_aligned, ring->dma_handle);
239 ring->base = NULL;
240 ring->iommu_base = 0;
252 ring = &mhi_event->ring;
253 dma_free_coherent(mhi_cntrl->cntrl_dev, ring->alloc_size,
254 ring->pre_aligned, ring->dma_handle);
255 ring->base = NULL;
256 ring->iommu_base = 0;
335 struct mhi_ring *ring = &mhi_event->ring;
351 ring->el_size = sizeof(struct mhi_ring_element);
352 ring->len = ring->el_size * ring->elements;
353 ret = mhi_alloc_aligned_ring(mhi_cntrl, ring, ring->len);
359 * ring is empty
361 ring->rp = ring->wp = ring->base;
362 er_ctxt->rbase = cpu_to_le64(ring->iommu_base);
364 er_ctxt->rlen = cpu_to_le64(ring->len);
365 ring->ctxt_wp = &er_ctxt->wp;
381 struct mhi_ring *ring = &mhi_cmd->ring;
383 ring->el_size = sizeof(struct mhi_ring_element);
384 ring->elements = CMD_EL_PER_RING;
385 ring->len = ring->el_size * ring->elements;
386 ret = mhi_alloc_aligned_ring(mhi_cntrl, ring, ring->len);
390 ring->rp = ring->wp = ring->base;
391 cmd_ctxt->rbase = cpu_to_le64(ring->iommu_base);
393 cmd_ctxt->rlen = cpu_to_le64(ring->len);
394 ring->ctxt_wp = &cmd_ctxt->wp;
403 struct mhi_ring *ring = &mhi_cmd->ring;
405 dma_free_coherent(mhi_cntrl->cntrl_dev, ring->alloc_size,
406 ring->pre_aligned, ring->dma_handle);
416 struct mhi_ring *ring = &mhi_event->ring;
421 dma_free_coherent(mhi_cntrl->cntrl_dev, ring->alloc_size,
422 ring->pre_aligned, ring->dma_handle);
534 /* Read event ring db offset */
553 mhi_event->ring.db_addr = base + val;
557 mhi_cntrl->mhi_cmd[PRIMARY_CMD_RING].ring.db_addr = base + CRDB_LOWER;
679 /* Populate event ring */
685 mhi_event->ring.elements = event_cfg->num_elements;
690 /* This event ring has a dedicated channel */
790 * For some channels, local ring length should be bigger than
791 * the transfer ring length due to internal logical channels
793 * ring length. Example, RSC channels should have a larger local
794 * channel length than transfer ring length.
889 /* By default, host is allowed to ring DB in both M0 and M2 states */
1291 * If the channel event ring is managed by client, then