Lines Matching refs:mbox
269 struct flexrm_mbox *mbox; member
931 static void flexrm_write_config_in_seqfile(struct flexrm_mbox *mbox, in flexrm_write_config_in_seqfile() argument
942 for (i = 0; i < mbox->num_rings; i++) { in flexrm_write_config_in_seqfile()
943 ring = &mbox->rings[i]; in flexrm_write_config_in_seqfile()
959 static void flexrm_write_stats_in_seqfile(struct flexrm_mbox *mbox, in flexrm_write_stats_in_seqfile() argument
970 for (i = 0; i < mbox->num_rings; i++) { in flexrm_write_stats_in_seqfile()
971 ring = &mbox->rings[i]; in flexrm_write_stats_in_seqfile()
1013 ret = flexrm_dma_map(ring->mbox->dev, msg); in flexrm_new_request()
1076 flexrm_dma_unmap(ring->mbox->dev, msg); in flexrm_new_request()
1093 struct mbox_chan *chan = &ring->mbox->controller.chans[ring->num]; in flexrm_process_completions()
1126 dev_warn(ring->mbox->dev, in flexrm_process_completions()
1137 dev_warn(ring->mbox->dev, in flexrm_process_completions()
1150 flexrm_dma_unmap(ring->mbox->dev, msg); in flexrm_process_completions()
1169 struct flexrm_mbox *mbox = platform_get_drvdata(pdev); in flexrm_debugfs_conf_show() local
1172 flexrm_write_config_in_seqfile(mbox, file); in flexrm_debugfs_conf_show()
1180 struct flexrm_mbox *mbox = platform_get_drvdata(pdev); in flexrm_debugfs_stats_show() local
1183 flexrm_write_stats_in_seqfile(mbox, file); in flexrm_debugfs_stats_show()
1246 ring->bd_base = dma_pool_alloc(ring->mbox->bd_pool, in flexrm_startup()
1249 dev_err(ring->mbox->dev, in flexrm_startup()
1271 ring->cmpl_base = dma_pool_zalloc(ring->mbox->cmpl_pool, in flexrm_startup()
1274 dev_err(ring->mbox->dev, in flexrm_startup()
1283 dev_err(ring->mbox->dev, in flexrm_startup()
1291 0, dev_name(ring->mbox->dev), ring); in flexrm_startup()
1293 dev_err(ring->mbox->dev, in flexrm_startup()
1301 val = ring->mbox->num_rings; in flexrm_startup()
1307 dev_err(ring->mbox->dev, in flexrm_startup()
1362 dma_pool_free(ring->mbox->cmpl_pool, in flexrm_startup()
1366 dma_pool_free(ring->mbox->bd_pool, in flexrm_startup()
1394 dev_err(ring->mbox->dev, in flexrm_shutdown()
1407 dev_err(ring->mbox->dev, in flexrm_shutdown()
1420 flexrm_dma_unmap(ring->mbox->dev, msg); in flexrm_shutdown()
1439 dma_pool_free(ring->mbox->cmpl_pool, in flexrm_shutdown()
1446 dma_pool_free(ring->mbox->bd_pool, in flexrm_shutdown()
1490 struct flexrm_mbox *mbox = dev_get_drvdata(dev); in flexrm_mbox_msi_write() local
1491 struct flexrm_ring *ring = &mbox->rings[desc->platform.msi_index]; in flexrm_mbox_msi_write()
1507 struct flexrm_mbox *mbox; in flexrm_mbox_probe() local
1511 mbox = devm_kzalloc(dev, sizeof(*mbox), GFP_KERNEL); in flexrm_mbox_probe()
1512 if (!mbox) { in flexrm_mbox_probe()
1516 mbox->dev = dev; in flexrm_mbox_probe()
1517 platform_set_drvdata(pdev, mbox); in flexrm_mbox_probe()
1527 mbox->regs = devm_ioremap_resource(&pdev->dev, iomem); in flexrm_mbox_probe()
1528 if (IS_ERR(mbox->regs)) { in flexrm_mbox_probe()
1529 ret = PTR_ERR(mbox->regs); in flexrm_mbox_probe()
1533 regs_end = mbox->regs + resource_size(iomem); in flexrm_mbox_probe()
1536 mbox->num_rings = 0; in flexrm_mbox_probe()
1537 for (regs = mbox->regs; regs < regs_end; regs += RING_REGS_SIZE) { in flexrm_mbox_probe()
1539 mbox->num_rings++; in flexrm_mbox_probe()
1541 if (!mbox->num_rings) { in flexrm_mbox_probe()
1547 ring = devm_kcalloc(dev, mbox->num_rings, sizeof(*ring), GFP_KERNEL); in flexrm_mbox_probe()
1552 mbox->rings = ring; in flexrm_mbox_probe()
1555 regs = mbox->regs; in flexrm_mbox_probe()
1556 for (index = 0; index < mbox->num_rings; index++) { in flexrm_mbox_probe()
1557 ring = &mbox->rings[index]; in flexrm_mbox_probe()
1559 ring->mbox = mbox; in flexrm_mbox_probe()
1594 mbox->bd_pool = dma_pool_create("bd", dev, RING_BD_SIZE, in flexrm_mbox_probe()
1596 if (!mbox->bd_pool) { in flexrm_mbox_probe()
1602 mbox->cmpl_pool = dma_pool_create("cmpl", dev, RING_CMPL_SIZE, in flexrm_mbox_probe()
1604 if (!mbox->cmpl_pool) { in flexrm_mbox_probe()
1610 ret = platform_msi_domain_alloc_irqs(dev, mbox->num_rings, in flexrm_mbox_probe()
1617 ring = &mbox->rings[desc->platform.msi_index]; in flexrm_mbox_probe()
1626 mbox->root = debugfs_create_dir(dev_name(mbox->dev), NULL); in flexrm_mbox_probe()
1627 if (IS_ERR_OR_NULL(mbox->root)) { in flexrm_mbox_probe()
1628 ret = PTR_ERR_OR_ZERO(mbox->root); in flexrm_mbox_probe()
1633 mbox->config = debugfs_create_devm_seqfile(mbox->dev, in flexrm_mbox_probe()
1634 "config", mbox->root, in flexrm_mbox_probe()
1636 if (IS_ERR_OR_NULL(mbox->config)) { in flexrm_mbox_probe()
1637 ret = PTR_ERR_OR_ZERO(mbox->config); in flexrm_mbox_probe()
1642 mbox->stats = debugfs_create_devm_seqfile(mbox->dev, in flexrm_mbox_probe()
1643 "stats", mbox->root, in flexrm_mbox_probe()
1645 if (IS_ERR_OR_NULL(mbox->stats)) { in flexrm_mbox_probe()
1646 ret = PTR_ERR_OR_ZERO(mbox->stats); in flexrm_mbox_probe()
1652 mbox->controller.txdone_irq = false; in flexrm_mbox_probe()
1653 mbox->controller.txdone_poll = false; in flexrm_mbox_probe()
1654 mbox->controller.ops = &flexrm_mbox_chan_ops; in flexrm_mbox_probe()
1655 mbox->controller.dev = dev; in flexrm_mbox_probe()
1656 mbox->controller.num_chans = mbox->num_rings; in flexrm_mbox_probe()
1657 mbox->controller.of_xlate = flexrm_mbox_of_xlate; in flexrm_mbox_probe()
1658 mbox->controller.chans = devm_kcalloc(dev, mbox->num_rings, in flexrm_mbox_probe()
1659 sizeof(*mbox->controller.chans), GFP_KERNEL); in flexrm_mbox_probe()
1660 if (!mbox->controller.chans) { in flexrm_mbox_probe()
1664 for (index = 0; index < mbox->num_rings; index++) in flexrm_mbox_probe()
1665 mbox->controller.chans[index].con_priv = &mbox->rings[index]; in flexrm_mbox_probe()
1668 ret = mbox_controller_register(&mbox->controller); in flexrm_mbox_probe()
1673 mbox->controller.num_chans); in flexrm_mbox_probe()
1678 debugfs_remove_recursive(mbox->root); in flexrm_mbox_probe()
1682 dma_pool_destroy(mbox->cmpl_pool); in flexrm_mbox_probe()
1684 dma_pool_destroy(mbox->bd_pool); in flexrm_mbox_probe()
1692 struct flexrm_mbox *mbox = platform_get_drvdata(pdev); in flexrm_mbox_remove() local
1694 mbox_controller_unregister(&mbox->controller); in flexrm_mbox_remove()
1696 debugfs_remove_recursive(mbox->root); in flexrm_mbox_remove()
1700 dma_pool_destroy(mbox->cmpl_pool); in flexrm_mbox_remove()
1701 dma_pool_destroy(mbox->bd_pool); in flexrm_mbox_remove()