Lines Matching defs:ipi_mbox
121 static void zynqmp_ipi_fw_call(struct zynqmp_ipi_mbox *ipi_mbox,
125 struct zynqmp_ipi_pdata *pdata = ipi_mbox->pdata;
129 a2 = ipi_mbox->remote_id;
150 struct zynqmp_ipi_mbox *ipi_mbox;
161 ipi_mbox = &pdata->ipi_mboxes[i];
162 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_RX];
163 chan = &ipi_mbox->mbox.chans[IPI_MB_CHNL_RX];
164 zynqmp_ipi_fw_call(ipi_mbox, arg0, arg3, &res);
190 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
196 if (WARN_ON(!ipi_mbox)) {
202 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
230 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
236 if (WARN_ON(!ipi_mbox)) {
246 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
268 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
274 if (WARN_ON(!ipi_mbox)) {
291 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
303 zynqmp_ipi_fw_call(ipi_mbox, arg0, IPI_SMC_ACK_EIRQ_MASK,
319 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
331 if (!ipi_mbox->mchans[nchan_type].is_opened) {
333 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
346 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
361 struct zynqmp_ipi_mbox *ipi_mbox = dev_get_drvdata(dev);
374 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
378 if (!ipi_mbox->mchans[chan_type].is_opened) {
380 zynqmp_ipi_fw_call(ipi_mbox, arg0, 0, &res);
468 * @ipi_mbox: pointer to IPI mailbox private data structure
473 static int zynqmp_ipi_mbox_probe(struct zynqmp_ipi_mbox *ipi_mbox,
484 dev = ipi_mbox->pdata->dev;
486 ipi_mbox->dev.parent = dev;
487 ipi_mbox->dev.release = NULL;
488 ipi_mbox->dev.of_node = node;
489 dev_set_name(&ipi_mbox->dev, "%s", of_node_full_name(node));
490 dev_set_drvdata(&ipi_mbox->dev, ipi_mbox);
491 ipi_mbox->dev.release = zynqmp_ipi_mbox_dev_release;
492 ipi_mbox->dev.driver = &zynqmp_ipi_mbox_driver;
493 ret = device_register(&ipi_mbox->dev);
496 put_device(&ipi_mbox->dev);
499 mdev = &ipi_mbox->dev;
501 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_TX];
538 mchan = &ipi_mbox->mchans[IPI_MB_CHNL_RX];
576 ret = of_property_read_u32(node, "xlnx,ipi-id", &ipi_mbox->remote_id);
582 mbox = &ipi_mbox->mbox;
594 chans[IPI_MB_CHNL_TX].con_priv = &ipi_mbox->mchans[IPI_MB_CHNL_TX];
595 chans[IPI_MB_CHNL_RX].con_priv = &ipi_mbox->mchans[IPI_MB_CHNL_RX];
596 ipi_mbox->mchans[IPI_MB_CHNL_TX].chan_type = IPI_MB_CHNL_TX;
597 ipi_mbox->mchans[IPI_MB_CHNL_RX].chan_type = IPI_MB_CHNL_RX;
615 struct zynqmp_ipi_mbox *ipi_mbox;
620 ipi_mbox = &pdata->ipi_mboxes[i];
621 if (ipi_mbox->dev.parent) {
622 mbox_controller_unregister(&ipi_mbox->mbox);
623 if (device_is_registered(&ipi_mbox->dev))
624 device_unregister(&ipi_mbox->dev);