Lines Matching defs:mhi_cntrl

405 static int mhi_read_reg(struct mhi_controller *mhi_cntrl, void __iomem *addr, u32 *out)
416 if (addr - mhi_cntrl->regs == 0x224) {
430 static void mhi_write_reg(struct mhi_controller *mhi_cntrl, void __iomem *addr, u32 val)
435 static int mhi_runtime_get(struct mhi_controller *mhi_cntrl)
440 static void mhi_runtime_put(struct mhi_controller *mhi_cntrl)
444 static void mhi_status_cb(struct mhi_controller *mhi_cntrl, enum mhi_callback reason)
446 struct qaic_device *qdev = pci_get_drvdata(to_pci_dev(mhi_cntrl->cntrl_dev));
456 static int mhi_reset_and_async_power_up(struct mhi_controller *mhi_cntrl)
463 mhi_soc_reset(mhi_cntrl);
471 current_ee = mhi_get_exec_env(mhi_cntrl);
476 ret = mhi_async_power_up(mhi_cntrl);
486 struct mhi_controller *mhi_cntrl;
489 mhi_cntrl = devm_kzalloc(&pci_dev->dev, sizeof(*mhi_cntrl), GFP_KERNEL);
490 if (!mhi_cntrl)
493 mhi_cntrl->cntrl_dev = &pci_dev->dev;
500 mhi_cntrl->iova_start = 0;
501 mhi_cntrl->iova_stop = PHYS_ADDR_MAX - 1;
502 mhi_cntrl->status_cb = mhi_status_cb;
503 mhi_cntrl->runtime_get = mhi_runtime_get;
504 mhi_cntrl->runtime_put = mhi_runtime_put;
505 mhi_cntrl->read_reg = mhi_read_reg;
506 mhi_cntrl->write_reg = mhi_write_reg;
507 mhi_cntrl->regs = mhi_bar;
508 mhi_cntrl->reg_len = SZ_4K;
509 mhi_cntrl->nr_irqs = 1;
510 mhi_cntrl->irq = devm_kmalloc(&pci_dev->dev, sizeof(*mhi_cntrl->irq), GFP_KERNEL);
512 if (!mhi_cntrl->irq)
515 mhi_cntrl->irq[0] = mhi_irq;
516 mhi_cntrl->fw_image = "qcom/aic100/sbl.bin";
520 ret = mhi_register_controller(mhi_cntrl, &aic100_config);
526 ret = mhi_prepare_for_power_up(mhi_cntrl);
532 ret = mhi_async_power_up(mhi_cntrl);
537 if (ret == -EIO && MHI_EE_SBL == mhi_get_exec_env(mhi_cntrl)) {
539 ret = mhi_reset_and_async_power_up(mhi_cntrl);
547 return mhi_cntrl;
550 mhi_unprepare_after_power_down(mhi_cntrl);
552 mhi_unregister_controller(mhi_cntrl);
556 void qaic_mhi_free_controller(struct mhi_controller *mhi_cntrl, bool link_up)
558 mhi_power_down(mhi_cntrl, link_up);
559 mhi_unprepare_after_power_down(mhi_cntrl);
560 mhi_unregister_controller(mhi_cntrl);
563 void qaic_mhi_start_reset(struct mhi_controller *mhi_cntrl)
565 mhi_power_down(mhi_cntrl, true);
568 void qaic_mhi_reset_done(struct mhi_controller *mhi_cntrl)
570 struct pci_dev *pci_dev = container_of(mhi_cntrl->cntrl_dev, struct pci_dev, dev);
573 ret = mhi_async_power_up(mhi_cntrl);