Lines Matching defs:epf_mhi

131 static size_t get_align_offset(struct pci_epf_mhi *epf_mhi, u64 addr)
133 return addr & (epf_mhi->epc_features->align -1);
140 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
141 struct pci_epf *epf = epf_mhi->epf;
166 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
167 size_t offset = get_align_offset(epf_mhi, pci_addr);
178 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
179 struct pci_epf *epf = epf_mhi->epf;
191 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
192 size_t offset = get_align_offset(epf_mhi, pci_addr);
200 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
201 struct pci_epf *epf = epf_mhi->epf;
215 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
216 size_t offset = get_align_offset(epf_mhi, buf_info->host_addr);
221 mutex_lock(&epf_mhi->lock);
226 mutex_unlock(&epf_mhi->lock);
235 mutex_unlock(&epf_mhi->lock);
243 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
244 size_t offset = get_align_offset(epf_mhi, buf_info->host_addr);
249 mutex_lock(&epf_mhi->lock);
254 mutex_unlock(&epf_mhi->lock);
263 mutex_unlock(&epf_mhi->lock);
276 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
277 struct device *dma_dev = epf_mhi->epf->epc->dev.parent;
278 struct dma_chan *chan = epf_mhi->dma_chan_rx;
279 struct device *dev = &epf_mhi->epf->dev;
290 mutex_lock(&epf_mhi->lock);
339 mutex_unlock(&epf_mhi->lock);
347 struct pci_epf_mhi *epf_mhi = to_epf_mhi(mhi_cntrl);
348 struct device *dma_dev = epf_mhi->epf->epc->dev.parent;
349 struct dma_chan *chan = epf_mhi->dma_chan_tx;
350 struct device *dev = &epf_mhi->epf->dev;
361 mutex_lock(&epf_mhi->lock);
410 mutex_unlock(&epf_mhi->lock);
432 static int pci_epf_mhi_dma_init(struct pci_epf_mhi *epf_mhi)
434 struct device *dma_dev = epf_mhi->epf->epc->dev.parent;
435 struct device *dev = &epf_mhi->epf->dev;
444 epf_mhi->dma_chan_tx = dma_request_channel(mask, pci_epf_mhi_filter,
446 if (IS_ERR_OR_NULL(epf_mhi->dma_chan_tx)) {
452 epf_mhi->dma_chan_rx = dma_request_channel(mask, pci_epf_mhi_filter,
454 if (IS_ERR_OR_NULL(epf_mhi->dma_chan_rx)) {
456 dma_release_channel(epf_mhi->dma_chan_tx);
457 epf_mhi->dma_chan_tx = NULL;
464 static void pci_epf_mhi_dma_deinit(struct pci_epf_mhi *epf_mhi)
466 dma_release_channel(epf_mhi->dma_chan_tx);
467 dma_release_channel(epf_mhi->dma_chan_rx);
468 epf_mhi->dma_chan_tx = NULL;
469 epf_mhi->dma_chan_rx = NULL;
474 struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
475 const struct pci_epf_mhi_ep_info *info = epf_mhi->info;
481 epf_bar->phys_addr = epf_mhi->mmio_phys;
482 epf_bar->size = epf_mhi->mmio_size;
505 epf_mhi->epc_features = pci_epc_get_features(epc, epf->func_no, epf->vfunc_no);
506 if (!epf_mhi->epc_features)
514 struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
515 const struct pci_epf_mhi_ep_info *info = epf_mhi->info;
516 struct mhi_ep_cntrl *mhi_cntrl = &epf_mhi->mhi_cntrl;
522 ret = pci_epf_mhi_dma_init(epf_mhi);
529 mhi_cntrl->mmio = epf_mhi->mmio;
530 mhi_cntrl->irq = epf_mhi->irq;
551 pci_epf_mhi_dma_deinit(epf_mhi);
560 struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
561 const struct pci_epf_mhi_ep_info *info = epf_mhi->info;
562 struct mhi_ep_cntrl *mhi_cntrl = &epf_mhi->mhi_cntrl;
567 pci_epf_mhi_dma_deinit(epf_mhi);
576 struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
577 const struct pci_epf_mhi_ep_info *info = epf_mhi->info;
578 struct mhi_ep_cntrl *mhi_cntrl = &epf_mhi->mhi_cntrl;
591 pci_epf_mhi_dma_deinit(epf_mhi);
601 struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
609 epf_mhi->mmio_phys = res->start;
610 epf_mhi->mmio_size = resource_size(res);
612 epf_mhi->mmio = ioremap(epf_mhi->mmio_phys, epf_mhi->mmio_size);
613 if (!epf_mhi->mmio)
618 iounmap(epf_mhi->mmio);
622 epf_mhi->irq = ret;
629 struct pci_epf_mhi *epf_mhi = epf_get_drvdata(epf);
630 const struct pci_epf_mhi_ep_info *info = epf_mhi->info;
632 struct mhi_ep_cntrl *mhi_cntrl = &epf_mhi->mhi_cntrl;
643 pci_epf_mhi_dma_deinit(epf_mhi);
647 iounmap(epf_mhi->mmio);
663 struct pci_epf_mhi *epf_mhi;
666 epf_mhi = devm_kzalloc(dev, sizeof(*epf_mhi), GFP_KERNEL);
667 if (!epf_mhi)
671 epf_mhi->info = info;
672 epf_mhi->epf = epf;
676 mutex_init(&epf_mhi->lock);
678 epf_set_drvdata(epf, epf_mhi);