Home
last modified time | relevance | path

Searched +full:rpmsg +full:- +full:name (Results 1 – 25 of 54) sorted by relevance

123

/Linux-v5.15/Documentation/ABI/testing/
Dsysfs-bus-rpmsg1 What: /sys/bus/rpmsg/devices/.../name
4 Contact: Ohad Ben-Cohen <ohad@wizery.com>
6 Every rpmsg device is a communication channel with a remote
7 processor. Channels are identified with a (textual) name,
9 rpmsg.h).
11 This sysfs entry contains the name of this channel.
13 What: /sys/bus/rpmsg/devices/.../src
16 Contact: Ohad Ben-Cohen <ohad@wizery.com>
18 Every rpmsg device is a communication channel with a remote
19 processor. Channels have a local ("source") rpmsg address,
[all …]
/Linux-v5.15/drivers/rpmsg/
Drpmsg_core.c1 // SPDX-License-Identifier: GPL-2.0
8 * Ohad Ben-Cohen <ohad@wizery.com>
16 #include <linux/rpmsg.h>
24 * rpmsg_create_channel() - create a new rpmsg channel
25 * using its name and address info.
26 * @rpdev: rpmsg device
29 * Returns a pointer to the new rpmsg device on success, or NULL on error.
36 if (!rpdev->ops || !rpdev->ops->create_channel) { in rpmsg_create_channel()
37 dev_err(&rpdev->dev, "no create_channel ops found\n"); in rpmsg_create_channel()
41 return rpdev->ops->create_channel(rpdev, chinfo); in rpmsg_create_channel()
[all …]
DKconfig1 # SPDX-License-Identifier: GPL-2.0
3 menu "Rpmsg drivers"
5 # RPMSG always gets selected by whoever wants it
6 config RPMSG config
10 tristate "RPMSG device interface"
11 depends on RPMSG
14 Say Y here to export rpmsg endpoints as device files, usually found
15 in /dev. They make it possible for user-space programs to send and
16 receive rpmsg packets.
19 tristate "RPMSG name service announcement"
[all …]
Drpmsg_ns.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) STMicroelectronics 2020 - All Rights Reserved
8 #include <linux/rpmsg.h>
9 #include <linux/rpmsg/ns.h>
15 * rpmsg_ns_register_device() - register name service device based on rpdev
19 * basis for the rpmsg name service device.
23 strcpy(rpdev->id.name, "rpmsg_ns"); in rpmsg_ns_register_device()
24 rpdev->driver_override = "rpmsg_ns"; in rpmsg_ns_register_device()
25 rpdev->src = RPMSG_NS_ADDR; in rpmsg_ns_register_device()
26 rpdev->dst = RPMSG_NS_ADDR; in rpmsg_ns_register_device()
[all …]
Dmtk_rpmsg.c1 // SPDX-License-Identifier: GPL-2.0
10 #include <linux/rpmsg/mtk_rpmsg.h>
36 * struct rpmsg_ns_msg - dynamic name service announcement message
37 * @name: name of remote service that is published
41 * messages, an appropriate rpmsg channel (i.e device) is created. In turn, the
42 * ->probe() handler of the appropriate rpmsg driver will be invoked
43 * (if/as-soon-as one is registered).
46 char name[RPMSG_NAME_SIZE]; member
75 struct rpmsg_endpoint *ept = &mept->ept; in mtk_rpmsg_ipi_handler()
78 ret = (*ept->cb)(ept->rpdev, data, len, ept->priv, ept->addr); in mtk_rpmsg_ipi_handler()
[all …]
Drpmsg_char.c1 // SPDX-License-Identifier: GPL-2.0
9 * Based on rpmsg performance statistics driver by Michal Simek, which in turn
10 * was based on TI & Google OMX rpmsg driver.
19 #include <linux/rpmsg.h>
23 #include <uapi/linux/rpmsg.h>
43 * struct rpmsg_ctrldev - control device for instantiating endpoint devices
44 * @rpdev: underlaying rpmsg device
55 * struct rpmsg_eptdev - endpoint device context
58 * @rpdev: underlaying rpmsg device
61 * @ept: rpmsg endpoint reference, when open
[all …]
Dvirtio_rpmsg_bus.c1 // SPDX-License-Identifier: GPL-2.0
3 * Virtio-based remote processor messaging bus
8 * Ohad Ben-Cohen <ohad@wizery.com>
14 #include <linux/dma-mapping.h>
21 #include <linux/rpmsg.h>
22 #include <linux/rpmsg/byteorder.h>
23 #include <linux/rpmsg/ns.h>
35 * struct virtproc_info - virtual remote processor state
53 * This structure stores the rpmsg state of a given virtio remote processor
72 /* The feature bitmap for virtio rpmsg */
[all …]
Drpmsg_internal.h1 /* SPDX-License-Identifier: GPL-2.0 */
8 * Ohad Ben-Cohen <ohad@wizery.com>
15 #include <linux/rpmsg.h>
22 * struct rpmsg_device_ops - indirection table for the rpmsg_device operations
23 * @create_channel: create backend-specific channel, optional
24 * @release_channel: release backend-specific channel, optional
25 * @create_ept: create backend-specific endpoint, required
29 * Indirection table for the operations that a rpmsg backend should implement.
47 * struct rpmsg_endpoint_ops - indirection table for rpmsg_endpoint operations
57 * Indirection table for the operations that a rpmsg backend should implement.
[all …]
Dqcom_glink_ssr.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
10 #include <linux/rpmsg.h>
11 #include <linux/rpmsg/qcom_glink.h>
15 * struct do_cleanup_msg - The data structure for an SSR do_cleanup message
16 * @version: The G-Link SSR protocol version
17 * @command: The G-Link SSR command - do_cleanup
19 * @name_len: Length of the name of the subsystem being restarted
20 * @name: G-Link edge name of the subsystem being restarted
27 char name[32]; member
[all …]
/Linux-v5.15/Documentation/staging/
Drpmsg.rst2 Remote Processor Messaging (rpmsg) Framework
7 This document describes the rpmsg bus and how to write rpmsg drivers.
8 To learn how to add rpmsg support for new platforms, check out remoteproc.txt
17 flavor of real-time OS.
19 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP.
20 Typically, the dual cortex-A9 is running Linux in a SMP configuration,
25 hardware accelerators, and therefore are often used to offload CPU-intensive
28 These remote processors could also be used to control latency-sensitive
34 hardware accessible only by the remote processor, reserving kernel-controlled
37 Rpmsg is a virtio-based messaging bus that allows kernel drivers to communicate
[all …]
Dremoteproc.rst10 of operating system, whether it's Linux or any other flavor of real-time OS.
12 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP.
13 In a typical configuration, the dual cortex-A9 is running Linux in a SMP
20 duplicated. In addition, this framework also adds rpmsg virtio devices
22 platform-specific remoteproc drivers only need to provide a few low-level
23 handlers, and then all rpmsg drivers will then just work
24 (for more information about the virtio-based rpmsg bus and its drivers,
25 please read Documentation/staging/rpmsg.rst).
111 struct rproc *rproc_alloc(struct device *dev, const char *name,
117 name of this remote processor, platform-specific ops handlers,
[all …]
/Linux-v5.15/sound/soc/fsl/
Dfsl_rpmsg.c1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2018-2021 NXP
5 #include <linux/clk-provider.h>
12 #include <linux/rpmsg.h>
19 #include "imx-pcm.h"
44 struct fsl_rpmsg *rpmsg = snd_soc_dai_get_drvdata(dai); in fsl_rpmsg_hw_params() local
45 struct clk *p = rpmsg->mclk, *pll = NULL, *npll = NULL; in fsl_rpmsg_hw_params()
50 while (p && rpmsg->pll8k && rpmsg->pll11k) { in fsl_rpmsg_hw_params()
53 if (clk_is_match(pp, rpmsg->pll8k) || in fsl_rpmsg_hw_params()
54 clk_is_match(pp, rpmsg->pll11k)) { in fsl_rpmsg_hw_params()
[all …]
Dimx-rpmsg.c1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2017-2020 NXP
16 #include <sound/soc-dapm.h>
17 #include "imx-pcm-rpmsg.h"
34 struct device *dev = pdev->dev.parent; in imx_rpmsg_probe()
35 /* rpmsg_pdev is the platform device for the rpmsg node that probed us */ in imx_rpmsg_probe()
37 struct device_node *np = rpmsg_pdev->dev.of_node; in imx_rpmsg_probe()
42 dlc = devm_kzalloc(&pdev->dev, 3 * sizeof(*dlc), GFP_KERNEL); in imx_rpmsg_probe()
44 return -ENOMEM; in imx_rpmsg_probe()
46 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in imx_rpmsg_probe()
[all …]
Dimx-audio-rpmsg.c1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2017-2020 NXP
5 #include <linux/rpmsg.h>
6 #include "imx-pcm-rpmsg.h"
20 struct imx_audio_rpmsg *rpmsg = dev_get_drvdata(&rpdev->dev); in imx_audio_rpmsg_cb() local
26 if (!rpmsg->rpmsg_pdev) in imx_audio_rpmsg_cb()
29 info = platform_get_drvdata(rpmsg->rpmsg_pdev); in imx_audio_rpmsg_cb()
31 dev_dbg(&rpdev->dev, "get from%d: cmd:%d. %d\n", in imx_audio_rpmsg_cb()
32 src, r_msg->header.cmd, r_msg->param.resp); in imx_audio_rpmsg_cb()
34 switch (r_msg->header.type) { in imx_audio_rpmsg_cb()
[all …]
Dimx-pcm-rpmsg.c1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2017-2021 NXP
4 #include <linux/dma-mapping.h>
8 #include <linux/rpmsg.h>
15 #include "imx-pcm.h"
17 #include "imx-pcm-rpmsg.h"
38 struct rpmsg_device *rpdev = info->rpdev; in imx_rpmsg_pcm_send_message()
41 mutex_lock(&info->msg_lock); in imx_rpmsg_pcm_send_message()
43 dev_err(info->dev, "rpmsg channel not ready\n"); in imx_rpmsg_pcm_send_message()
44 mutex_unlock(&info->msg_lock); in imx_rpmsg_pcm_send_message()
[all …]
/Linux-v5.15/include/linux/
Drpmsg.h1 /* SPDX-License-Identifier: BSD-3-Clause */
20 #include <linux/rpmsg/byteorder.h>
21 #include <uapi/linux/rpmsg.h>
29 * struct rpmsg_channel_info - channel info representation
30 * @name: name of service
35 char name[RPMSG_NAME_SIZE]; member
41 * rpmsg_device - device that belong to the rpmsg bus
43 * @id: device id (used to match between rpmsg drivers and devices)
44 * @driver_override: driver name to force a match
47 * @ept: the rpmsg endpoint of this channel
[all …]
/Linux-v5.15/Documentation/devicetree/bindings/remoteproc/
Dmtk,scp.txt2 ----------------------------------------
4 This binding provides support for ARM Cortex M4 Co-processor found on some
8 - compatible Should be "mediatek,mt8183-scp"
9 - reg Should contain the address ranges for memory regions:
11 - reg-names Contains the corresponding names for the memory regions:
13 - clocks Clock for co-processor (See: ../clock/clock-bindings.txt)
14 - clock-names Contains the corresponding name for the clock. This
18 --------
20 Subnodes of the SCP represent rpmsg devices. The names of the devices are not
22 for the rpmsg devices - but must contain the following property:
[all …]
/Linux-v5.15/drivers/platform/chrome/
Dcros_ec_rpmsg.c1 // SPDX-License-Identifier: GPL-2.0
13 #include <linux/rpmsg.h>
23 * struct cros_ec_rpmsg_response - rpmsg message format from from EC.
36 * struct cros_ec_rpmsg - information about a EC over rpmsg.
38 * @rpdev: rpmsg device we are connected to
41 * @ept: The rpmsg endpoint of this channel.
55 * cros_ec_cmd_xfer_rpmsg - Transfer a message over rpmsg and receive the reply
63 * Return: -EINVAL
68 return -EINVAL; in cros_ec_cmd_xfer_rpmsg()
72 * cros_ec_pkt_xfer_rpmsg - Transfer a packet over rpmsg and receive the reply
[all …]
/Linux-v5.15/Documentation/devicetree/bindings/sound/
Dfsl,rpmsg.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/sound/fsl,rpmsg.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: NXP Audio RPMSG CPU DAI Controller
10 - Shengjiu Wang <shengjiu.wang@nxp.com>
15 side is a device which provides audio service by rpmsg channel.
20 - fsl,imx7ulp-rpmsg-audio
21 - fsl,imx8mn-rpmsg-audio
22 - fsl,imx8mm-rpmsg-audio
[all …]
/Linux-v5.15/include/linux/rpmsg/
Dns.h1 /* SPDX-License-Identifier: GPL-2.0 */
7 #include <linux/rpmsg.h>
8 #include <linux/rpmsg/byteorder.h>
12 * struct rpmsg_ns_msg - dynamic name service announcement message
13 * @name: name of remote service that is published
19 * rpmsg channel (i.e device) is created/destroyed. In turn, the ->probe()
20 * or ->remove() handler of the appropriate rpmsg driver will be invoked
21 * (if/as-soon-as one is registered).
24 char name[RPMSG_NAME_SIZE]; member
30 * enum rpmsg_ns_flags - dynamic name service announcement flags
/Linux-v5.15/Documentation/devicetree/bindings/mfd/
Dgoogle,cros-ec.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Benson Leung <bleung@chromium.org>
11 - Enric Balletbo i Serra <enric.balletbo@collabora.com>
12 - Guenter Roeck <groeck@chromium.org>
23 - description:
25 const: google,cros-ec-i2c
26 - description:
[all …]
/Linux-v5.15/drivers/net/wwan/
Drpmsg_wwan_ctrl.c1 // SPDX-License-Identifier: GPL-2.0-only
7 #include <linux/rpmsg.h>
11 /* Lower level is a rpmsg dev, upper level is a wwan port */
25 return -ENOMEM; in rpmsg_wwan_ctrl_callback()
28 wwan_port_rx(rpwwan->wwan_port, skb); in rpmsg_wwan_ctrl_callback()
36 .src = rpwwan->rpdev->src, in rpmsg_wwan_ctrl_start()
40 strncpy(chinfo.name, rpwwan->rpdev->id.name, RPMSG_NAME_SIZE); in rpmsg_wwan_ctrl_start()
41 rpwwan->ept = rpmsg_create_ept(rpwwan->rpdev, rpmsg_wwan_ctrl_callback, in rpmsg_wwan_ctrl_start()
43 if (!rpwwan->ept) in rpmsg_wwan_ctrl_start()
44 return -EREMOTEIO; in rpmsg_wwan_ctrl_start()
[all …]
/Linux-v5.15/samples/rpmsg/
Drpmsg_client_sample.c1 // SPDX-License-Identifier: GPL-2.0-only
3 * Remote processor messaging - sample client driver
8 * Ohad Ben-Cohen <ohad@wizery.com>
14 #include <linux/rpmsg.h>
29 struct instance_data *idata = dev_get_drvdata(&rpdev->dev); in rpmsg_sample_cb()
31 dev_info(&rpdev->dev, "incoming msg %d (src: 0x%x)\n", in rpmsg_sample_cb()
32 ++idata->rx_count, src); in rpmsg_sample_cb()
38 if (idata->rx_count >= count) { in rpmsg_sample_cb()
39 dev_info(&rpdev->dev, "goodbye!\n"); in rpmsg_sample_cb()
44 ret = rpmsg_send(rpdev->ept, MSG, strlen(MSG)); in rpmsg_sample_cb()
[all …]
/Linux-v5.15/drivers/media/platform/sti/delta/
Ddelta-ipc.c1 // SPDX-License-Identifier: GPL-2.0
7 #include <linux/rpmsg.h>
10 #include "delta-ipc.h"
11 #include "delta-mem.h"
38 #define msg_to_ctx(msg) ((struct delta_ipc_ctx *)(msg)->header.host_hdl)
39 #define msg_to_copro_hdl(msg) ((msg)->header.copro_hdl)
43 return (ctx->ipc_buf->paddr + (vaddr - ctx->ipc_buf->vaddr)); in to_paddr()
49 return ((data >= ctx->ipc_buf->vaddr) && in is_valid_data()
50 ((data + size) <= (ctx->ipc_buf->vaddr + ctx->ipc_buf->size))); in is_valid_data()
58 * this IPC shared memory, avoiding de-facto recopies inside delta-ipc.
[all …]
/Linux-v5.15/net/qrtr/
Dsmd.c1 // SPDX-License-Identifier: GPL-2.0-only
9 #include <linux/rpmsg.h>
23 struct qrtr_smd_dev *qdev = dev_get_drvdata(&rpdev->dev); in qcom_smd_qrtr_callback()
27 return -EAGAIN; in qcom_smd_qrtr_callback()
29 rc = qrtr_endpoint_post(&qdev->ep, data, len); in qcom_smd_qrtr_callback()
30 if (rc == -EINVAL) { in qcom_smd_qrtr_callback()
31 dev_err(qdev->dev, "invalid ipcrouter packet\n"); in qcom_smd_qrtr_callback()
49 rc = rpmsg_send(qdev->channel, skb->data, skb->len); in qcom_smd_qrtr_send()
64 qdev = devm_kzalloc(&rpdev->dev, sizeof(*qdev), GFP_KERNEL); in qcom_smd_qrtr_probe()
66 return -ENOMEM; in qcom_smd_qrtr_probe()
[all …]

123