Lines Matching refs:ibi

1893 		if (olddev->ibi) {  in i3c_master_add_i3c_dev_locked()
1894 ibireq.handler = olddev->ibi->handler; in i3c_master_add_i3c_dev_locked()
1895 ibireq.max_payload_len = olddev->ibi->max_payload_len; in i3c_master_add_i3c_dev_locked()
1896 ibireq.num_slots = olddev->ibi->num_slots; in i3c_master_add_i3c_dev_locked()
1898 if (olddev->ibi->enabled) { in i3c_master_add_i3c_dev_locked()
2243 atomic_inc(&dev->ibi->pending_ibis); in i3c_master_queue_ibi()
2260 dev->ibi->handler(dev->dev, &payload); in i3c_master_handle_ibi()
2263 if (atomic_dec_and_test(&dev->ibi->pending_ibis)) in i3c_master_handle_ibi()
2264 complete(&dev->ibi->all_ibis_handled); in i3c_master_handle_ibi()
2621 if (!dev->ibi) in i3c_dev_disable_ibi_locked()
2629 reinit_completion(&dev->ibi->all_ibis_handled); in i3c_dev_disable_ibi_locked()
2630 if (atomic_read(&dev->ibi->pending_ibis)) in i3c_dev_disable_ibi_locked()
2631 wait_for_completion(&dev->ibi->all_ibis_handled); in i3c_dev_disable_ibi_locked()
2633 dev->ibi->enabled = false; in i3c_dev_disable_ibi_locked()
2643 if (!dev->ibi) in i3c_dev_enable_ibi_locked()
2648 dev->ibi->enabled = true; in i3c_dev_enable_ibi_locked()
2657 struct i3c_device_ibi_info *ibi; in i3c_dev_request_ibi_locked() local
2663 if (dev->ibi) in i3c_dev_request_ibi_locked()
2666 ibi = kzalloc(sizeof(*ibi), GFP_KERNEL); in i3c_dev_request_ibi_locked()
2667 if (!ibi) in i3c_dev_request_ibi_locked()
2670 atomic_set(&ibi->pending_ibis, 0); in i3c_dev_request_ibi_locked()
2671 init_completion(&ibi->all_ibis_handled); in i3c_dev_request_ibi_locked()
2672 ibi->handler = req->handler; in i3c_dev_request_ibi_locked()
2673 ibi->max_payload_len = req->max_payload_len; in i3c_dev_request_ibi_locked()
2674 ibi->num_slots = req->num_slots; in i3c_dev_request_ibi_locked()
2676 dev->ibi = ibi; in i3c_dev_request_ibi_locked()
2679 kfree(ibi); in i3c_dev_request_ibi_locked()
2680 dev->ibi = NULL; in i3c_dev_request_ibi_locked()
2690 if (!dev->ibi) in i3c_dev_free_ibi_locked()
2693 if (WARN_ON(dev->ibi->enabled)) in i3c_dev_free_ibi_locked()
2697 kfree(dev->ibi); in i3c_dev_free_ibi_locked()
2698 dev->ibi = NULL; in i3c_dev_free_ibi_locked()