Lines Matching refs:rpm
198 struct glink_rpm *rpm = container_of(pipe, struct glink_rpm, tx_pipe);
200 mbox_send_message(rpm->mbox_chan, NULL);
201 mbox_client_txdone(rpm->mbox_chan, 0);
206 struct glink_rpm *rpm = data;
208 qcom_glink_native_rx(rpm->glink);
291 struct glink_rpm *rpm;
299 rpm = devm_kzalloc(&pdev->dev, sizeof(*rpm), GFP_KERNEL);
300 if (!rpm)
303 np = of_parse_phandle(dev->of_node, "qcom,rpm-msg-ram", 0);
315 &rpm->rx_pipe, &rpm->tx_pipe);
319 rpm->irq = of_irq_get(dev->of_node, 0);
320 ret = devm_request_irq(dev, rpm->irq, qcom_glink_rpm_intr,
322 "glink-rpm", rpm);
328 rpm->mbox_client.dev = dev;
329 rpm->mbox_client.knows_txdone = true;
330 rpm->mbox_chan = mbox_request_channel(&rpm->mbox_client, 0);
331 if (IS_ERR(rpm->mbox_chan))
332 return dev_err_probe(dev, PTR_ERR(rpm->mbox_chan), "failed to acquire IPC channel\n");
335 rpm->rx_pipe.native.avail = glink_rpm_rx_avail;
336 rpm->rx_pipe.native.peek = glink_rpm_rx_peek;
337 rpm->rx_pipe.native.advance = glink_rpm_rx_advance;
338 rpm->tx_pipe.native.avail = glink_rpm_tx_avail;
339 rpm->tx_pipe.native.write = glink_rpm_tx_write;
340 rpm->tx_pipe.native.kick = glink_rpm_tx_kick;
342 writel(0, rpm->tx_pipe.head);
343 writel(0, rpm->rx_pipe.tail);
347 &rpm->rx_pipe.native,
348 &rpm->tx_pipe.native,
351 mbox_free_channel(rpm->mbox_chan);
355 rpm->glink = glink;
357 platform_set_drvdata(pdev, rpm);
359 enable_irq(rpm->irq);
366 struct glink_rpm *rpm = platform_get_drvdata(pdev);
367 struct qcom_glink *glink = rpm->glink;
369 disable_irq(rpm->irq);
373 mbox_free_channel(rpm->mbox_chan);
377 { .compatible = "qcom,glink-rpm" },