Lines Matching refs:mhi_dev

277 	struct mhi_device *mhi_dev;  in mhi_destroy_device()  local
284 mhi_dev = to_mhi_device(dev); in mhi_destroy_device()
285 mhi_cntrl = mhi_dev->mhi_cntrl; in mhi_destroy_device()
288 if (mhi_dev->dev_type == MHI_DEVICE_CONTROLLER) in mhi_destroy_device()
291 ul_chan = mhi_dev->ul_chan; in mhi_destroy_device()
292 dl_chan = mhi_dev->dl_chan; in mhi_destroy_device()
313 put_device(&ul_chan->mhi_dev->dev); in mhi_destroy_device()
320 put_device(&dl_chan->mhi_dev->dev); in mhi_destroy_device()
323 dev_dbg(&mhi_cntrl->mhi_dev->dev, "destroy device for chan:%s\n", in mhi_destroy_device()
324 mhi_dev->name); in mhi_destroy_device()
333 int mhi_get_free_desc_count(struct mhi_device *mhi_dev, in mhi_get_free_desc_count() argument
336 struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; in mhi_get_free_desc_count()
338 mhi_dev->ul_chan : mhi_dev->dl_chan; in mhi_get_free_desc_count()
345 void mhi_notify(struct mhi_device *mhi_dev, enum mhi_callback cb_reason) in mhi_notify() argument
349 if (!mhi_dev->dev.driver) in mhi_notify()
352 mhi_drv = to_mhi_driver(mhi_dev->dev.driver); in mhi_notify()
355 mhi_drv->status_cb(mhi_dev, cb_reason); in mhi_notify()
363 struct mhi_device *mhi_dev; in mhi_create_devices() local
364 struct device *dev = &mhi_cntrl->mhi_dev->dev; in mhi_create_devices()
369 if (!mhi_chan->configured || mhi_chan->mhi_dev || in mhi_create_devices()
372 mhi_dev = mhi_alloc_device(mhi_cntrl); in mhi_create_devices()
373 if (IS_ERR(mhi_dev)) in mhi_create_devices()
376 mhi_dev->dev_type = MHI_DEVICE_XFER; in mhi_create_devices()
379 mhi_dev->ul_chan = mhi_chan; in mhi_create_devices()
380 mhi_dev->ul_chan_id = mhi_chan->chan; in mhi_create_devices()
384 mhi_dev->dl_chan = mhi_chan; in mhi_create_devices()
385 mhi_dev->dl_chan_id = mhi_chan->chan; in mhi_create_devices()
389 put_device(&mhi_dev->dev); in mhi_create_devices()
393 get_device(&mhi_dev->dev); in mhi_create_devices()
394 mhi_chan->mhi_dev = mhi_dev; in mhi_create_devices()
402 mhi_dev->ul_chan = mhi_chan; in mhi_create_devices()
403 mhi_dev->ul_chan_id = mhi_chan->chan; in mhi_create_devices()
405 mhi_dev->dl_chan = mhi_chan; in mhi_create_devices()
406 mhi_dev->dl_chan_id = mhi_chan->chan; in mhi_create_devices()
408 get_device(&mhi_dev->dev); in mhi_create_devices()
409 mhi_chan->mhi_dev = mhi_dev; in mhi_create_devices()
414 mhi_dev->name = mhi_chan->name; in mhi_create_devices()
415 dev_set_name(&mhi_dev->dev, "%s_%s", in mhi_create_devices()
416 dev_name(&mhi_cntrl->mhi_dev->dev), in mhi_create_devices()
417 mhi_dev->name); in mhi_create_devices()
420 if (mhi_dev->dl_chan && mhi_dev->dl_chan->wake_capable) in mhi_create_devices()
421 device_init_wakeup(&mhi_dev->dev, true); in mhi_create_devices()
423 ret = device_add(&mhi_dev->dev); in mhi_create_devices()
425 put_device(&mhi_dev->dev); in mhi_create_devices()
444 dev_dbg(&mhi_cntrl->mhi_dev->dev, in mhi_irq_handler()
453 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_irq_handler()
467 struct mhi_device *mhi_dev = mhi_chan->mhi_dev; in mhi_irq_handler() local
469 if (mhi_dev) in mhi_irq_handler()
470 mhi_notify(mhi_dev, MHI_CB_PENDING_DATA); in mhi_irq_handler()
481 struct device *dev = &mhi_cntrl->mhi_dev->dev; in mhi_intvec_threaded_handler()
572 struct device *dev = &mhi_cntrl->mhi_dev->dev; in parse_xfer_event()
610 dev_err(&mhi_cntrl->mhi_dev->dev, in parse_xfer_event()
646 mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); in parse_xfer_event()
660 if (mhi_queue_buf(mhi_chan->mhi_dev, in parse_xfer_event()
741 mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); in parse_rsc_event()
777 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_process_cmd_completion()
794 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_process_cmd_completion()
810 struct device *dev = &mhi_cntrl->mhi_dev->dev; in mhi_process_ctrl_ev_ring()
824 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_process_ctrl_ev_ring()
954 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_process_ctrl_ev_ring()
988 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_process_data_event_ring()
1025 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_process_data_event_ring()
1056 struct device *dev = &mhi_cntrl->mhi_dev->dev; in mhi_ctrl_ev_task()
1109 static int mhi_queue(struct mhi_device *mhi_dev, struct mhi_buf_info *buf_info, in mhi_queue() argument
1112 struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; in mhi_queue()
1113 struct mhi_chan *mhi_chan = (dir == DMA_TO_DEVICE) ? mhi_dev->ul_chan : in mhi_queue()
1114 mhi_dev->dl_chan; in mhi_queue()
1158 int mhi_queue_skb(struct mhi_device *mhi_dev, enum dma_data_direction dir, in mhi_queue_skb() argument
1161 struct mhi_chan *mhi_chan = (dir == DMA_TO_DEVICE) ? mhi_dev->ul_chan : in mhi_queue_skb()
1162 mhi_dev->dl_chan; in mhi_queue_skb()
1172 return mhi_queue(mhi_dev, &buf_info, dir, mflags); in mhi_queue_skb()
1176 int mhi_queue_dma(struct mhi_device *mhi_dev, enum dma_data_direction dir, in mhi_queue_dma() argument
1179 struct mhi_chan *mhi_chan = (dir == DMA_TO_DEVICE) ? mhi_dev->ul_chan : in mhi_queue_dma()
1180 mhi_dev->dl_chan; in mhi_queue_dma()
1191 return mhi_queue(mhi_dev, &buf_info, dir, mflags); in mhi_queue_dma()
1242 int mhi_queue_buf(struct mhi_device *mhi_dev, enum dma_data_direction dir, in mhi_queue_buf() argument
1251 return mhi_queue(mhi_dev, &buf_info, dir, mflags); in mhi_queue_buf()
1255 bool mhi_queue_is_full(struct mhi_device *mhi_dev, enum dma_data_direction dir) in mhi_queue_is_full() argument
1257 struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; in mhi_queue_is_full()
1259 mhi_dev->ul_chan : mhi_dev->dl_chan; in mhi_queue_is_full()
1273 struct device *dev = &mhi_cntrl->mhi_dev->dev; in mhi_send_cmd()
1323 struct device *dev = &mhi_chan->mhi_dev->dev; in mhi_update_channel_state()
1364 ret = mhi_device_get_sync(mhi_cntrl->mhi_dev); in mhi_update_channel_state()
1401 mhi_device_put(mhi_cntrl->mhi_dev); in mhi_update_channel_state()
1410 struct device *dev = &mhi_chan->mhi_dev->dev; in mhi_unprepare_channel()
1445 struct device *dev = &mhi_chan->mhi_dev->dev; in mhi_prepare_channel()
1534 struct device *dev = &mhi_cntrl->mhi_dev->dev; in mhi_mark_stale_events()
1547 dev_err(&mhi_cntrl->mhi_dev->dev, in mhi_mark_stale_events()
1599 mhi_chan->xfer_cb(mhi_chan->mhi_dev, &result); in mhi_reset_data_chan()
1625 static int __mhi_prepare_for_transfer(struct mhi_device *mhi_dev, unsigned int flags) in __mhi_prepare_for_transfer() argument
1628 struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; in __mhi_prepare_for_transfer()
1632 mhi_chan = dir ? mhi_dev->dl_chan : mhi_dev->ul_chan; in __mhi_prepare_for_transfer()
1645 mhi_chan = dir ? mhi_dev->dl_chan : mhi_dev->ul_chan; in __mhi_prepare_for_transfer()
1655 int mhi_prepare_for_transfer(struct mhi_device *mhi_dev) in mhi_prepare_for_transfer() argument
1657 return __mhi_prepare_for_transfer(mhi_dev, 0); in mhi_prepare_for_transfer()
1661 int mhi_prepare_for_transfer_autoqueue(struct mhi_device *mhi_dev) in mhi_prepare_for_transfer_autoqueue() argument
1663 return __mhi_prepare_for_transfer(mhi_dev, MHI_CH_INBOUND_ALLOC_BUFS); in mhi_prepare_for_transfer_autoqueue()
1667 void mhi_unprepare_from_transfer(struct mhi_device *mhi_dev) in mhi_unprepare_from_transfer() argument
1669 struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; in mhi_unprepare_from_transfer()
1674 mhi_chan = dir ? mhi_dev->ul_chan : mhi_dev->dl_chan; in mhi_unprepare_from_transfer()
1683 int mhi_poll(struct mhi_device *mhi_dev, u32 budget) in mhi_poll() argument
1685 struct mhi_controller *mhi_cntrl = mhi_dev->mhi_cntrl; in mhi_poll()
1686 struct mhi_chan *mhi_chan = mhi_dev->dl_chan; in mhi_poll()