Lines Matching refs:mhi_event

182 	struct mhi_event *mhi_event = mhi_cntrl->mhi_event;  in mhi_deinit_free_irq()  local
184 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_deinit_free_irq()
185 if (mhi_event->offload_ev) in mhi_deinit_free_irq()
188 free_irq(mhi_cntrl->irq[mhi_event->irq], mhi_event); in mhi_deinit_free_irq()
196 struct mhi_event *mhi_event = mhi_cntrl->mhi_event; in mhi_init_irq_setup() local
219 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_init_irq_setup()
220 if (mhi_event->offload_ev) in mhi_init_irq_setup()
223 if (mhi_event->irq >= mhi_cntrl->nr_irqs) { in mhi_init_irq_setup()
225 mhi_event->irq); in mhi_init_irq_setup()
230 ret = request_irq(mhi_cntrl->irq[mhi_event->irq], in mhi_init_irq_setup()
233 "mhi", mhi_event); in mhi_init_irq_setup()
236 mhi_cntrl->irq[mhi_event->irq], i); in mhi_init_irq_setup()
240 disable_irq(mhi_cntrl->irq[mhi_event->irq]); in mhi_init_irq_setup()
246 for (--i, --mhi_event; i >= 0; i--, mhi_event--) { in mhi_init_irq_setup()
247 if (mhi_event->offload_ev) in mhi_init_irq_setup()
250 free_irq(mhi_cntrl->irq[mhi_event->irq], mhi_event); in mhi_init_irq_setup()
262 struct mhi_event *mhi_event; in mhi_deinit_dev_ctxt() local
278 mhi_event = mhi_cntrl->mhi_event; in mhi_deinit_dev_ctxt()
279 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_deinit_dev_ctxt()
280 if (mhi_event->offload_ev) in mhi_deinit_dev_ctxt()
283 ring = &mhi_event->ring; in mhi_deinit_dev_ctxt()
309 struct mhi_event *mhi_event; in mhi_init_dev_ctxt() local
363 mhi_event = mhi_cntrl->mhi_event; in mhi_init_dev_ctxt()
365 mhi_event++) { in mhi_init_dev_ctxt()
366 struct mhi_ring *ring = &mhi_event->ring; in mhi_init_dev_ctxt()
369 if (mhi_event->offload_ev) in mhi_init_dev_ctxt()
375 tmp |= FIELD_PREP(EV_CTX_INTMODT_MASK, mhi_event->intmod); in mhi_init_dev_ctxt()
379 er_ctxt->msivec = cpu_to_le32(mhi_event->irq); in mhi_init_dev_ctxt()
380 mhi_event->db_cfg.db_mode = true; in mhi_init_dev_ctxt()
443 mhi_event = mhi_cntrl->mhi_event + i; in mhi_init_dev_ctxt()
446 for (--i, --mhi_event; i >= 0; i--, mhi_event--) { in mhi_init_dev_ctxt()
447 struct mhi_ring *ring = &mhi_event->ring; in mhi_init_dev_ctxt()
449 if (mhi_event->offload_ev) in mhi_init_dev_ctxt()
475 struct mhi_event *mhi_event; in mhi_init_mmio() local
577 mhi_event = mhi_cntrl->mhi_event; in mhi_init_mmio()
578 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, val += 8, mhi_event++) { in mhi_init_mmio()
579 if (mhi_event->offload_ev) in mhi_init_mmio()
582 mhi_event->ring.db_addr = base + val; in mhi_init_mmio()
696 struct mhi_event *mhi_event; in parse_ev_cfg() local
703 mhi_cntrl->mhi_event = kcalloc(num, sizeof(*mhi_cntrl->mhi_event), in parse_ev_cfg()
705 if (!mhi_cntrl->mhi_event) in parse_ev_cfg()
709 mhi_event = mhi_cntrl->mhi_event; in parse_ev_cfg()
713 mhi_event->er_index = i; in parse_ev_cfg()
714 mhi_event->ring.elements = event_cfg->num_elements; in parse_ev_cfg()
715 mhi_event->intmod = event_cfg->irq_moderation_ms; in parse_ev_cfg()
716 mhi_event->irq = event_cfg->irq; in parse_ev_cfg()
720 mhi_event->chan = event_cfg->channel; in parse_ev_cfg()
721 if (mhi_event->chan >= mhi_cntrl->max_chan) { in parse_ev_cfg()
727 mhi_event->mhi_chan = in parse_ev_cfg()
728 &mhi_cntrl->mhi_chan[mhi_event->chan]; in parse_ev_cfg()
732 mhi_event->priority = 1; in parse_ev_cfg()
734 mhi_event->db_cfg.brstmode = event_cfg->mode; in parse_ev_cfg()
735 if (MHI_INVALID_BRSTMODE(mhi_event->db_cfg.brstmode)) in parse_ev_cfg()
738 if (mhi_event->db_cfg.brstmode == MHI_DB_BRST_ENABLE) in parse_ev_cfg()
739 mhi_event->db_cfg.process_db = mhi_db_brstmode; in parse_ev_cfg()
741 mhi_event->db_cfg.process_db = mhi_db_brstmode_disable; in parse_ev_cfg()
743 mhi_event->data_type = event_cfg->data_type; in parse_ev_cfg()
745 switch (mhi_event->data_type) { in parse_ev_cfg()
747 mhi_event->process_event = mhi_process_data_event_ring; in parse_ev_cfg()
750 mhi_event->process_event = mhi_process_ctrl_ev_ring; in parse_ev_cfg()
757 mhi_event->hw_ring = event_cfg->hardware_event; in parse_ev_cfg()
758 if (mhi_event->hw_ring) in parse_ev_cfg()
763 mhi_event->cl_manage = event_cfg->client_managed; in parse_ev_cfg()
764 mhi_event->offload_ev = event_cfg->offload_channel; in parse_ev_cfg()
765 mhi_event++; in parse_ev_cfg()
772 kfree(mhi_cntrl->mhi_event); in parse_ev_cfg()
935 struct mhi_event *mhi_event; in mhi_register_controller() local
978 mhi_event = mhi_cntrl->mhi_event; in mhi_register_controller()
979 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_register_controller()
981 if (mhi_event->offload_ev) in mhi_register_controller()
984 mhi_event->mhi_cntrl = mhi_cntrl; in mhi_register_controller()
985 spin_lock_init(&mhi_event->lock); in mhi_register_controller()
986 if (mhi_event->data_type == MHI_ER_CTRL) in mhi_register_controller()
987 tasklet_init(&mhi_event->task, mhi_ctrl_ev_task, in mhi_register_controller()
988 (ulong)mhi_event); in mhi_register_controller()
990 tasklet_init(&mhi_event->task, mhi_ev_task, in mhi_register_controller()
991 (ulong)mhi_event); in mhi_register_controller()
1001 mhi_event = &mhi_cntrl->mhi_event[mhi_chan->er_index]; in mhi_register_controller()
1002 mhi_chan->intmod = mhi_event->intmod; in mhi_register_controller()
1066 kfree(mhi_cntrl->mhi_event); in mhi_register_controller()
1087 kfree(mhi_cntrl->mhi_event); in mhi_unregister_controller()
1275 struct mhi_event *mhi_event; in mhi_driver_probe() local
1315 mhi_event = &mhi_cntrl->mhi_event[dl_chan->er_index]; in mhi_driver_probe()
1322 if (mhi_event->cl_manage && !mhi_drv->status_cb) in mhi_driver_probe()