Lines Matching defs:slot

1326 	 * to reserve the address slot a second time.
2369 * @slot: the IBI slot used to store the payload
2374 void i3c_master_queue_ibi(struct i3c_dev_desc *dev, struct i3c_ibi_slot *slot)
2377 queue_work(dev->common.master->wq, &slot->work);
2383 struct i3c_ibi_slot *slot = container_of(work, struct i3c_ibi_slot,
2385 struct i3c_dev_desc *dev = slot->dev;
2389 payload.data = slot->data;
2390 payload.len = slot->len;
2395 master->ops->recycle_ibi_slot(dev, slot);
2401 struct i3c_ibi_slot *slot)
2403 slot->dev = dev;
2404 INIT_WORK(&slot->work, i3c_master_handle_ibi);
2429 struct i3c_generic_ibi_slot *slot;
2433 slot = list_first_entry(&pool->free_slots,
2435 list_del(&slot->node);
2465 struct i3c_generic_ibi_slot *slot;
2477 pool->slots = kcalloc(req->num_slots, sizeof(*slot), GFP_KERNEL);
2493 slot = &pool->slots[i];
2494 i3c_master_init_ibi_slot(dev, &slot->base);
2497 slot->base.data = pool->payload_buf +
2500 list_add_tail(&slot->node, &pool->free_slots);
2513 * i3c_generic_ibi_get_free_slot() - Get a free slot from a generic IBI pool
2514 * @pool: the pool to query an IBI slot on
2516 * Search for a free slot in a generic IBI pool.
2517 * The slot should be returned to the pool using i3c_generic_ibi_recycle_slot()
2520 * Return: a pointer to a free slot, or NULL if there's no free slot available.
2525 struct i3c_generic_ibi_slot *slot;
2529 slot = list_first_entry_or_null(&pool->free_slots,
2531 if (slot)
2532 list_del(&slot->node);
2535 return slot ? &slot->base : NULL;
2540 * i3c_generic_ibi_recycle_slot() - Return a slot to a generic IBI pool
2541 * @pool: the pool to return the IBI slot to
2542 * @s: IBI slot to recycle
2544 * Add an IBI slot back to its generic IBI pool. Should be called from the
2550 struct i3c_generic_ibi_slot *slot;
2556 slot = container_of(s, struct i3c_generic_ibi_slot, base);
2558 list_add_tail(&slot->node, &pool->free_slots);