Lines Matching refs:mbox

269 	struct flexrm_mbox *mbox;  member
929 static void flexrm_write_config_in_seqfile(struct flexrm_mbox *mbox, in flexrm_write_config_in_seqfile() argument
940 for (i = 0; i < mbox->num_rings; i++) { in flexrm_write_config_in_seqfile()
941 ring = &mbox->rings[i]; in flexrm_write_config_in_seqfile()
957 static void flexrm_write_stats_in_seqfile(struct flexrm_mbox *mbox, in flexrm_write_stats_in_seqfile() argument
968 for (i = 0; i < mbox->num_rings; i++) { in flexrm_write_stats_in_seqfile()
969 ring = &mbox->rings[i]; in flexrm_write_stats_in_seqfile()
1011 ret = flexrm_dma_map(ring->mbox->dev, msg); in flexrm_new_request()
1074 flexrm_dma_unmap(ring->mbox->dev, msg); in flexrm_new_request()
1091 struct mbox_chan *chan = &ring->mbox->controller.chans[ring->num]; in flexrm_process_completions()
1124 dev_warn(ring->mbox->dev, in flexrm_process_completions()
1135 dev_warn(ring->mbox->dev, in flexrm_process_completions()
1148 flexrm_dma_unmap(ring->mbox->dev, msg); in flexrm_process_completions()
1166 struct flexrm_mbox *mbox = dev_get_drvdata(file->private); in flexrm_debugfs_conf_show() local
1169 flexrm_write_config_in_seqfile(mbox, file); in flexrm_debugfs_conf_show()
1176 struct flexrm_mbox *mbox = dev_get_drvdata(file->private); in flexrm_debugfs_stats_show() local
1179 flexrm_write_stats_in_seqfile(mbox, file); in flexrm_debugfs_stats_show()
1242 ring->bd_base = dma_pool_alloc(ring->mbox->bd_pool, in flexrm_startup()
1245 dev_err(ring->mbox->dev, in flexrm_startup()
1267 ring->cmpl_base = dma_pool_zalloc(ring->mbox->cmpl_pool, in flexrm_startup()
1270 dev_err(ring->mbox->dev, in flexrm_startup()
1279 dev_err(ring->mbox->dev, in flexrm_startup()
1287 0, dev_name(ring->mbox->dev), ring); in flexrm_startup()
1289 dev_err(ring->mbox->dev, in flexrm_startup()
1297 val = ring->mbox->num_rings; in flexrm_startup()
1303 dev_err(ring->mbox->dev, in flexrm_startup()
1358 dma_pool_free(ring->mbox->cmpl_pool, in flexrm_startup()
1362 dma_pool_free(ring->mbox->bd_pool, in flexrm_startup()
1390 dev_err(ring->mbox->dev, in flexrm_shutdown()
1403 dev_err(ring->mbox->dev, in flexrm_shutdown()
1416 flexrm_dma_unmap(ring->mbox->dev, msg); in flexrm_shutdown()
1435 dma_pool_free(ring->mbox->cmpl_pool, in flexrm_shutdown()
1442 dma_pool_free(ring->mbox->bd_pool, in flexrm_shutdown()
1486 struct flexrm_mbox *mbox = dev_get_drvdata(dev); in flexrm_mbox_msi_write() local
1487 struct flexrm_ring *ring = &mbox->rings[desc->platform.msi_index]; in flexrm_mbox_msi_write()
1503 struct flexrm_mbox *mbox; in flexrm_mbox_probe() local
1507 mbox = devm_kzalloc(dev, sizeof(*mbox), GFP_KERNEL); in flexrm_mbox_probe()
1508 if (!mbox) { in flexrm_mbox_probe()
1512 mbox->dev = dev; in flexrm_mbox_probe()
1513 platform_set_drvdata(pdev, mbox); in flexrm_mbox_probe()
1523 mbox->regs = devm_ioremap_resource(&pdev->dev, iomem); in flexrm_mbox_probe()
1524 if (IS_ERR(mbox->regs)) { in flexrm_mbox_probe()
1525 ret = PTR_ERR(mbox->regs); in flexrm_mbox_probe()
1529 regs_end = mbox->regs + resource_size(iomem); in flexrm_mbox_probe()
1532 mbox->num_rings = 0; in flexrm_mbox_probe()
1533 for (regs = mbox->regs; regs < regs_end; regs += RING_REGS_SIZE) { in flexrm_mbox_probe()
1535 mbox->num_rings++; in flexrm_mbox_probe()
1537 if (!mbox->num_rings) { in flexrm_mbox_probe()
1543 ring = devm_kcalloc(dev, mbox->num_rings, sizeof(*ring), GFP_KERNEL); in flexrm_mbox_probe()
1548 mbox->rings = ring; in flexrm_mbox_probe()
1551 regs = mbox->regs; in flexrm_mbox_probe()
1552 for (index = 0; index < mbox->num_rings; index++) { in flexrm_mbox_probe()
1553 ring = &mbox->rings[index]; in flexrm_mbox_probe()
1555 ring->mbox = mbox; in flexrm_mbox_probe()
1590 mbox->bd_pool = dma_pool_create("bd", dev, RING_BD_SIZE, in flexrm_mbox_probe()
1592 if (!mbox->bd_pool) { in flexrm_mbox_probe()
1598 mbox->cmpl_pool = dma_pool_create("cmpl", dev, RING_CMPL_SIZE, in flexrm_mbox_probe()
1600 if (!mbox->cmpl_pool) { in flexrm_mbox_probe()
1606 ret = platform_msi_domain_alloc_irqs(dev, mbox->num_rings, in flexrm_mbox_probe()
1613 ring = &mbox->rings[desc->platform.msi_index]; in flexrm_mbox_probe()
1622 mbox->root = debugfs_create_dir(dev_name(mbox->dev), NULL); in flexrm_mbox_probe()
1625 debugfs_create_devm_seqfile(mbox->dev, "config", mbox->root, in flexrm_mbox_probe()
1629 debugfs_create_devm_seqfile(mbox->dev, "stats", mbox->root, in flexrm_mbox_probe()
1635 mbox->controller.txdone_irq = false; in flexrm_mbox_probe()
1636 mbox->controller.txdone_poll = false; in flexrm_mbox_probe()
1637 mbox->controller.ops = &flexrm_mbox_chan_ops; in flexrm_mbox_probe()
1638 mbox->controller.dev = dev; in flexrm_mbox_probe()
1639 mbox->controller.num_chans = mbox->num_rings; in flexrm_mbox_probe()
1640 mbox->controller.of_xlate = flexrm_mbox_of_xlate; in flexrm_mbox_probe()
1641 mbox->controller.chans = devm_kcalloc(dev, mbox->num_rings, in flexrm_mbox_probe()
1642 sizeof(*mbox->controller.chans), GFP_KERNEL); in flexrm_mbox_probe()
1643 if (!mbox->controller.chans) { in flexrm_mbox_probe()
1647 for (index = 0; index < mbox->num_rings; index++) in flexrm_mbox_probe()
1648 mbox->controller.chans[index].con_priv = &mbox->rings[index]; in flexrm_mbox_probe()
1651 ret = devm_mbox_controller_register(dev, &mbox->controller); in flexrm_mbox_probe()
1656 mbox->controller.num_chans); in flexrm_mbox_probe()
1661 debugfs_remove_recursive(mbox->root); in flexrm_mbox_probe()
1664 dma_pool_destroy(mbox->cmpl_pool); in flexrm_mbox_probe()
1666 dma_pool_destroy(mbox->bd_pool); in flexrm_mbox_probe()
1674 struct flexrm_mbox *mbox = platform_get_drvdata(pdev); in flexrm_mbox_remove() local
1676 debugfs_remove_recursive(mbox->root); in flexrm_mbox_remove()
1680 dma_pool_destroy(mbox->cmpl_pool); in flexrm_mbox_remove()
1681 dma_pool_destroy(mbox->bd_pool); in flexrm_mbox_remove()