Lines Matching defs:ipi_mbox
119 static void zynqmp_ipi_fw_call(struct zynqmp_ipi_mbox *ipi_mbox,
123 struct zynqmp_ipi_pdata *pdata = ipi_mbox->pdata;
127 a2 = ipi_mbox->remote_id;
148 struct zynqmp_ipi_mbox *ipi_mbox;
159 ipi_mbox = &pdata->ipi_mboxes[i];
160 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_RX];
161 chan = &ipi_mbox->mbox.chans[IPI_MB_CHNL_RX];
162 zynqmp_ipi_fw_call(ipi_mbox, arg0, arg3, &res);
188 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
194 if (WARN_ON(!ipi_mbox)) {
200 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
228 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
234 if (WARN_ON(!ipi_mbox)) {
244 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
266 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
272 if (WARN_ON(!ipi_mbox)) {
289 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
301 zynqmp_ipi_fw_call(ipi_mbox, arg0, IPI_SMC_ACK_EIRQ_MASK,
317 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
329 if (!ipi_mbox->mchans[nchan_type].is_opened) {
331 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
344 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
359 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
372 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
376 if (!ipi_mbox->mchans[chan_type].is_opened) {
378 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
466 * @ipi_mbox: pointer to IPI mailbox private data structure
471 static int zynqmp_ipi_mbox_probe(struct zynqmp_ipi_mbox *ipi_mbox,
482 dev = ipi_mbox->pdata->dev;
484 ipi_mbox->dev.parent = dev;
485 ipi_mbox->dev.release = NULL;
486 ipi_mbox->dev.of_node = node;
487 dev_set_name(&ipi_mbox->dev, "%s", of_node_full_name(node));
488 dev_set_drvdata(&ipi_mbox->dev, ipi_mbox);
489 ipi_mbox->dev.release = zynqmp_ipi_mbox_dev_release;
490 ipi_mbox->dev.driver = &zynqmp_ipi_mbox_driver;
491 ret = device_register(&ipi_mbox->dev);
494 put_device(&ipi_mbox->dev);
497 mdev = &ipi_mbox->dev;
499 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_TX];
536 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_RX];
574 ret = of_property_read_u32(node, "xlnx,ipi-id", &ipi_mbox->remote_id);
580 mbox = &ipi_mbox->mbox;
592 chans[IPI_MB_CHNL_TX].con_priv = &ipi_mbox->mchans[IPI_MB_CHNL_TX];
593 chans[IPI_MB_CHNL_RX].con_priv = &ipi_mbox->mchans[IPI_MB_CHNL_RX];
594 ipi_mbox->mchans[IPI_MB_CHNL_TX].chan_type = IPI_MB_CHNL_TX;
595 ipi_mbox->mchans[IPI_MB_CHNL_RX].chan_type = IPI_MB_CHNL_RX;
613 struct zynqmp_ipi_mbox *ipi_mbox;
618 ipi_mbox = &pdata->ipi_mboxes[i];
619 if (ipi_mbox->dev.parent) {
620 mbox_controller_unregister(&ipi_mbox->mbox);
621 if (device_is_registered(&ipi_mbox->dev))
622 device_unregister(&ipi_mbox->dev);