Lines Matching full:mb

90 	struct axiado_mbox *mb = dev_get_drvdata(chan->mbox->dev);  in axiado_mbox_send_data()  local
108 if (msg_len < sizeof(u32) || msg_len > mb->drv_data->msg_size) in axiado_mbox_send_data()
115 dev_warn_ratelimited(mb->mbox.dev, "Channel %u is busy\n", idx); in axiado_mbox_send_data()
129 dev_dbg(mb->mbox.dev, "%s: Ch-%u sent\n", __func__, idx); in axiado_mbox_send_data()
138 struct axiado_mbox *mb = dev_get_drvdata(chan->mbox->dev); in axiado_rx_thread() local
168 if (msg_len < sizeof(u32) || msg_len > mb->drv_data->msg_size) in axiado_rx_thread()
272 struct axiado_mbox *mb; in axiado_mbox_probe() local
282 mb = devm_kzalloc(dev, sizeof(*mb), GFP_KERNEL); in axiado_mbox_probe()
283 if (!mb) in axiado_mbox_probe()
286 mb->mbox.dev = dev; in axiado_mbox_probe()
287 mb->mbox.num_chans = drv_data->num_chans; in axiado_mbox_probe()
289 mb->mbox.chans = devm_kcalloc(&pdev->dev, in axiado_mbox_probe()
291 sizeof(*mb->mbox.chans), in axiado_mbox_probe()
293 if (!mb->mbox.chans) in axiado_mbox_probe()
296 mb->tx_base = devm_platform_ioremap_resource_byname(pdev, "tx"); in axiado_mbox_probe()
297 if (IS_ERR(mb->tx_base)) in axiado_mbox_probe()
298 return PTR_ERR(mb->tx_base); in axiado_mbox_probe()
300 mb->rx_base = devm_platform_ioremap_resource_byname(pdev, "rx"); in axiado_mbox_probe()
301 if (IS_ERR(mb->rx_base)) in axiado_mbox_probe()
302 return PTR_ERR(mb->rx_base); in axiado_mbox_probe()
311 mb->debugfs_dir = debugfs_create_dir(dev_name(dev), NULL); in axiado_mbox_probe()
313 mb->debugfs_dir); in axiado_mbox_probe()
321 ch_data[i].chan = &mb->mbox.chans[i]; in axiado_mbox_probe()
323 mb->mbox.chans[i].con_priv = &ch_data[i]; in axiado_mbox_probe()
326 debugfs_create_atomic_t(name, 0444, mb->debugfs_dir, in axiado_mbox_probe()
330 ch_data[i].mbox_reg = mb->tx_base + (i * AXIADO_MBOX_CHAN_STRIDE); in axiado_mbox_probe()
331 ch_data[i].csr_reg = mb->tx_base + AXIADO_MBOX_TX_REG_STRIDE + in axiado_mbox_probe()
343 ch_data[i].mbox_reg = mb->rx_base + in axiado_mbox_probe()
345 ch_data[i].csr_reg = mb->rx_base + AXIADO_MBOX_RX_REG_STRIDE + in axiado_mbox_probe()
363 platform_set_drvdata(pdev, mb); in axiado_mbox_probe()
364 mb->drv_data = drv_data; in axiado_mbox_probe()
365 mb->mbox.ops = &axiado_mbox_chan_ops; in axiado_mbox_probe()
366 mb->mbox.txdone_irq = false; in axiado_mbox_probe()
367 mb->mbox.txdone_poll = true; in axiado_mbox_probe()
368 mb->mbox.txpoll_period = 5; in axiado_mbox_probe()
370 return devm_mbox_controller_register(dev, &mb->mbox); in axiado_mbox_probe()