Lines Matching refs:ibi
400 } ibi; member
869 s16 ibi; member
957 data->ibi = -1; in cdns_i3c_master_attach_i3c_dev()
1289 if (id >= master->ibi.num_slots || (ibir & IBIR_ERROR)) in cdns_i3c_master_handle_ibi()
1292 dev = master->ibi.slots[id]; in cdns_i3c_master_handle_ibi()
1293 spin_lock(&master->ibi.lock); in cdns_i3c_master_handle_ibi()
1311 dev->ibi->max_payload_len); in cdns_i3c_master_handle_ibi()
1316 spin_unlock(&master->ibi.lock); in cdns_i3c_master_handle_ibi()
1390 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_disable_ibi()
1391 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_disable_ibi()
1392 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_disable_ibi()
1393 sirmap |= SIR_MAP_DEV_CONF(data->ibi, in cdns_i3c_master_disable_ibi()
1395 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_disable_ibi()
1396 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_disable_ibi()
1410 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1411 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1412 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_enable_ibi()
1421 sirmap |= SIR_MAP_DEV_CONF(data->ibi, sircfg); in cdns_i3c_master_enable_ibi()
1422 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1423 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1428 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1429 sirmap = readl(master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1430 sirmap &= ~SIR_MAP_DEV_CONF_MASK(data->ibi); in cdns_i3c_master_enable_ibi()
1431 sirmap |= SIR_MAP_DEV_CONF(data->ibi, in cdns_i3c_master_enable_ibi()
1433 writel(sirmap, master->regs + SIR_MAP_DEV_REG(data->ibi)); in cdns_i3c_master_enable_ibi()
1434 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_enable_ibi()
1453 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_request_ibi()
1454 for (i = 0; i < master->ibi.num_slots; i++) { in cdns_i3c_master_request_ibi()
1455 if (!master->ibi.slots[i]) { in cdns_i3c_master_request_ibi()
1456 data->ibi = i; in cdns_i3c_master_request_ibi()
1457 master->ibi.slots[i] = dev; in cdns_i3c_master_request_ibi()
1461 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_request_ibi()
1463 if (i < master->ibi.num_slots) in cdns_i3c_master_request_ibi()
1479 spin_lock_irqsave(&master->ibi.lock, flags); in cdns_i3c_master_free_ibi()
1480 master->ibi.slots[data->ibi] = NULL; in cdns_i3c_master_free_ibi()
1481 data->ibi = -1; in cdns_i3c_master_free_ibi()
1482 spin_unlock_irqrestore(&master->ibi.lock, flags); in cdns_i3c_master_free_ibi()
1591 spin_lock_init(&master->ibi.lock); in cdns_i3c_master_probe()
1592 master->ibi.num_slots = CONF_STATUS1_IBI_HW_RES(val); in cdns_i3c_master_probe()
1593 master->ibi.slots = devm_kcalloc(&pdev->dev, master->ibi.num_slots, in cdns_i3c_master_probe()
1594 sizeof(*master->ibi.slots), in cdns_i3c_master_probe()
1596 if (!master->ibi.slots) in cdns_i3c_master_probe()