Lines Matching refs:mhi_event

151 	struct mhi_event *mhi_event = mhi_cntrl->mhi_event;  in mhi_deinit_free_irq()  local
153 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_deinit_free_irq()
154 if (mhi_event->offload_ev) in mhi_deinit_free_irq()
157 free_irq(mhi_cntrl->irq[mhi_event->irq], mhi_event); in mhi_deinit_free_irq()
165 struct mhi_event *mhi_event = mhi_cntrl->mhi_event; in mhi_init_irq_setup() local
188 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_init_irq_setup()
189 if (mhi_event->offload_ev) in mhi_init_irq_setup()
192 if (mhi_event->irq >= mhi_cntrl->nr_irqs) { in mhi_init_irq_setup()
194 mhi_event->irq); in mhi_init_irq_setup()
199 ret = request_irq(mhi_cntrl->irq[mhi_event->irq], in mhi_init_irq_setup()
202 "mhi", mhi_event); in mhi_init_irq_setup()
205 mhi_cntrl->irq[mhi_event->irq], i); in mhi_init_irq_setup()
209 disable_irq(mhi_cntrl->irq[mhi_event->irq]); in mhi_init_irq_setup()
215 for (--i, --mhi_event; i >= 0; i--, mhi_event--) { in mhi_init_irq_setup()
216 if (mhi_event->offload_ev) in mhi_init_irq_setup()
219 free_irq(mhi_cntrl->irq[mhi_event->irq], mhi_event); in mhi_init_irq_setup()
231 struct mhi_event *mhi_event; in mhi_deinit_dev_ctxt() local
247 mhi_event = mhi_cntrl->mhi_event; in mhi_deinit_dev_ctxt()
248 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_deinit_dev_ctxt()
249 if (mhi_event->offload_ev) in mhi_deinit_dev_ctxt()
252 ring = &mhi_event->ring; in mhi_deinit_dev_ctxt()
278 struct mhi_event *mhi_event; in mhi_init_dev_ctxt() local
332 mhi_event = mhi_cntrl->mhi_event; in mhi_init_dev_ctxt()
334 mhi_event++) { in mhi_init_dev_ctxt()
335 struct mhi_ring *ring = &mhi_event->ring; in mhi_init_dev_ctxt()
338 if (mhi_event->offload_ev) in mhi_init_dev_ctxt()
344 tmp |= FIELD_PREP(EV_CTX_INTMODT_MASK, mhi_event->intmod); in mhi_init_dev_ctxt()
348 er_ctxt->msivec = cpu_to_le32(mhi_event->irq); in mhi_init_dev_ctxt()
349 mhi_event->db_cfg.db_mode = true; in mhi_init_dev_ctxt()
412 mhi_event = mhi_cntrl->mhi_event + i; in mhi_init_dev_ctxt()
415 for (--i, --mhi_event; i >= 0; i--, mhi_event--) { in mhi_init_dev_ctxt()
416 struct mhi_ring *ring = &mhi_event->ring; in mhi_init_dev_ctxt()
418 if (mhi_event->offload_ev) in mhi_init_dev_ctxt()
444 struct mhi_event *mhi_event; in mhi_init_mmio() local
536 mhi_event = mhi_cntrl->mhi_event; in mhi_init_mmio()
537 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, val += 8, mhi_event++) { in mhi_init_mmio()
538 if (mhi_event->offload_ev) in mhi_init_mmio()
541 mhi_event->ring.db_addr = base + val; in mhi_init_mmio()
655 struct mhi_event *mhi_event; in parse_ev_cfg() local
662 mhi_cntrl->mhi_event = kcalloc(num, sizeof(*mhi_cntrl->mhi_event), in parse_ev_cfg()
664 if (!mhi_cntrl->mhi_event) in parse_ev_cfg()
668 mhi_event = mhi_cntrl->mhi_event; in parse_ev_cfg()
672 mhi_event->er_index = i; in parse_ev_cfg()
673 mhi_event->ring.elements = event_cfg->num_elements; in parse_ev_cfg()
674 mhi_event->intmod = event_cfg->irq_moderation_ms; in parse_ev_cfg()
675 mhi_event->irq = event_cfg->irq; in parse_ev_cfg()
679 mhi_event->chan = event_cfg->channel; in parse_ev_cfg()
680 if (mhi_event->chan >= mhi_cntrl->max_chan) { in parse_ev_cfg()
686 mhi_event->mhi_chan = in parse_ev_cfg()
687 &mhi_cntrl->mhi_chan[mhi_event->chan]; in parse_ev_cfg()
691 mhi_event->priority = 1; in parse_ev_cfg()
693 mhi_event->db_cfg.brstmode = event_cfg->mode; in parse_ev_cfg()
694 if (MHI_INVALID_BRSTMODE(mhi_event->db_cfg.brstmode)) in parse_ev_cfg()
697 if (mhi_event->db_cfg.brstmode == MHI_DB_BRST_ENABLE) in parse_ev_cfg()
698 mhi_event->db_cfg.process_db = mhi_db_brstmode; in parse_ev_cfg()
700 mhi_event->db_cfg.process_db = mhi_db_brstmode_disable; in parse_ev_cfg()
702 mhi_event->data_type = event_cfg->data_type; in parse_ev_cfg()
704 switch (mhi_event->data_type) { in parse_ev_cfg()
706 mhi_event->process_event = mhi_process_data_event_ring; in parse_ev_cfg()
709 mhi_event->process_event = mhi_process_ctrl_ev_ring; in parse_ev_cfg()
716 mhi_event->hw_ring = event_cfg->hardware_event; in parse_ev_cfg()
717 if (mhi_event->hw_ring) in parse_ev_cfg()
722 mhi_event->cl_manage = event_cfg->client_managed; in parse_ev_cfg()
723 mhi_event->offload_ev = event_cfg->offload_channel; in parse_ev_cfg()
724 mhi_event++; in parse_ev_cfg()
731 kfree(mhi_cntrl->mhi_event); in parse_ev_cfg()
893 struct mhi_event *mhi_event; in mhi_register_controller() local
937 mhi_event = mhi_cntrl->mhi_event; in mhi_register_controller()
938 for (i = 0; i < mhi_cntrl->total_ev_rings; i++, mhi_event++) { in mhi_register_controller()
940 if (mhi_event->offload_ev) in mhi_register_controller()
943 mhi_event->mhi_cntrl = mhi_cntrl; in mhi_register_controller()
944 spin_lock_init(&mhi_event->lock); in mhi_register_controller()
945 if (mhi_event->data_type == MHI_ER_CTRL) in mhi_register_controller()
946 tasklet_init(&mhi_event->task, mhi_ctrl_ev_task, in mhi_register_controller()
947 (ulong)mhi_event); in mhi_register_controller()
949 tasklet_init(&mhi_event->task, mhi_ev_task, in mhi_register_controller()
950 (ulong)mhi_event); in mhi_register_controller()
960 mhi_event = &mhi_cntrl->mhi_event[mhi_chan->er_index]; in mhi_register_controller()
961 mhi_chan->intmod = mhi_event->intmod; in mhi_register_controller()
1030 kfree(mhi_cntrl->mhi_event); in mhi_register_controller()
1048 kfree(mhi_cntrl->mhi_event); in mhi_unregister_controller()
1236 struct mhi_event *mhi_event; in mhi_driver_probe() local
1276 mhi_event = &mhi_cntrl->mhi_event[dl_chan->er_index]; in mhi_driver_probe()
1283 if (mhi_event->cl_manage && !mhi_drv->status_cb) in mhi_driver_probe()