Lines Matching refs:mhi_cntrl

437 static int mhi_read_reg(struct mhi_controller *mhi_cntrl, void __iomem *addr, u32 *out)
448 if (addr - mhi_cntrl->regs == 0x224) {
462 static void mhi_write_reg(struct mhi_controller *mhi_cntrl, void __iomem *addr, u32 val)
467 static int mhi_runtime_get(struct mhi_controller *mhi_cntrl)
472 static void mhi_runtime_put(struct mhi_controller *mhi_cntrl)
476 static void mhi_status_cb(struct mhi_controller *mhi_cntrl, enum mhi_callback reason)
478 struct qaic_device *qdev = pci_get_drvdata(to_pci_dev(mhi_cntrl->cntrl_dev));
488 static int mhi_reset_and_async_power_up(struct mhi_controller *mhi_cntrl)
495 mhi_soc_reset(mhi_cntrl);
503 current_ee = mhi_get_exec_env(mhi_cntrl);
508 ret = mhi_async_power_up(mhi_cntrl);
518 struct mhi_controller *mhi_cntrl;
521 mhi_cntrl = devm_kzalloc(&pci_dev->dev, sizeof(*mhi_cntrl), GFP_KERNEL);
522 if (!mhi_cntrl)
525 mhi_cntrl->cntrl_dev = &pci_dev->dev;
532 mhi_cntrl->iova_start = 0;
533 mhi_cntrl->iova_stop = PHYS_ADDR_MAX - 1;
534 mhi_cntrl->status_cb = mhi_status_cb;
535 mhi_cntrl->runtime_get = mhi_runtime_get;
536 mhi_cntrl->runtime_put = mhi_runtime_put;
537 mhi_cntrl->read_reg = mhi_read_reg;
538 mhi_cntrl->write_reg = mhi_write_reg;
539 mhi_cntrl->regs = mhi_bar;
540 mhi_cntrl->reg_len = SZ_4K;
541 mhi_cntrl->nr_irqs = 1;
542 mhi_cntrl->irq = devm_kmalloc(&pci_dev->dev, sizeof(*mhi_cntrl->irq), GFP_KERNEL);
544 if (!mhi_cntrl->irq)
547 mhi_cntrl->irq[0] = mhi_irq;
550 mhi_cntrl->irq_flags = IRQF_SHARED;
552 mhi_cntrl->fw_image = "qcom/aic100/sbl.bin";
556 ret = mhi_register_controller(mhi_cntrl, &aic100_config);
562 ret = mhi_prepare_for_power_up(mhi_cntrl);
568 ret = mhi_async_power_up(mhi_cntrl);
573 if (ret == -EIO && MHI_EE_SBL == mhi_get_exec_env(mhi_cntrl)) {
575 ret = mhi_reset_and_async_power_up(mhi_cntrl);
583 return mhi_cntrl;
586 mhi_unprepare_after_power_down(mhi_cntrl);
588 mhi_unregister_controller(mhi_cntrl);
592 void qaic_mhi_free_controller(struct mhi_controller *mhi_cntrl, bool link_up)
594 mhi_power_down(mhi_cntrl, link_up);
595 mhi_unprepare_after_power_down(mhi_cntrl);
596 mhi_unregister_controller(mhi_cntrl);
599 void qaic_mhi_start_reset(struct mhi_controller *mhi_cntrl)
601 mhi_power_down(mhi_cntrl, true);
604 void qaic_mhi_reset_done(struct mhi_controller *mhi_cntrl)
606 struct pci_dev *pci_dev = container_of(mhi_cntrl->cntrl_dev, struct pci_dev, dev);
609 ret = mhi_async_power_up(mhi_cntrl);