Home
last modified time | relevance | path

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

12

/linux/Documentation/ABI/testing/
H A 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/Documentation/staging/
H A 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 …]
/linux/Documentation/devicetree/bindings/sound/
H A 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 Linux side is a device which provides audio service by rpmsg channel.
17 such as SAI, MICFIL, .etc through building rpmsg channels between
18 Cortex-A and Cortex-M.
21 - $ref: sound-card-common.yaml#
[all …]
/linux/drivers/rpmsg/
H A Drpmsg_core.c1 // SPDX-License-Identifier: GPL-2.0
8 * Ohad Ben-Cohen <ohad@wizery.com>
16 #include <linux/rpmsg.h>
24 .name = "rpmsg",
29 * rpmsg_create_channel() - create a new rpmsg channel
[all...]
H A 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 control interface"
[all …]
H A 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>
20 #include <linux/rpmsg.h>
21 #include <linux/rpmsg/byteorder.h>
22 #include <linux/rpmsg/ns.h>
34 * struct virtproc_info - virtual remote processor state
52 * This structure stores the rpmsg state of a given virtio remote processor
71 /* The feature bitmap for virtio rpmsg */
[all …]
H A 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 …]
H A 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 rpdev->src = RPMSG_NS_ADDR; in rpmsg_ns_register_device()
24 rpdev->dst = RPMSG_NS_ADDR; in rpmsg_ns_register_device()
30 /* invoked when a name service announcement arrives */
37 struct device *dev = rpdev->dev.parent; in rpmsg_ns_cb()
[all …]
H A Drpmsg_char.c1 // SPDX-License-Identifier: GPL-2.0
10 * Based on rpmsg performance statistics driver by Michal Simek, which in turn
11 * was based on TI & Google OMX rpmsg driver.
23 #include <linux/rpmsg.h>
27 #include <uapi/linux/rpmsg.h>
43 * struct rpmsg_eptdev - endpoint device context
46 * @rpdev: underlaying rpmsg device
49 * @ept: rpmsg endpoint reference, when open
53 * @default_ept: set to channel default endpoint if the default endpoint should be re-used
81 mutex_lock(&eptdev->ept_lock); in rpmsg_chrdev_eptdev_destroy()
[all …]
H A Dqcom_smd.c1 // SPDX-License-Identifier: GPL-2.0
4 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
21 #include <linux/rpmsg.h>
22 #include <linux/rpmsg/qcom_smd.h>
27 * The Qualcomm Shared Memory communication solution provides point-to-point
30 * Each channel consists of a control item (channel info) and a ring buffer
31 * pair. The channel info carry information related to channel state, flow
35 * pair of items by name, type and remote processor.
37 * Upon creating a new channel the remote processor allocates channel info and
39 * interrupt is sent to the other end of the channel and a scan for new
[all …]
H A Dqcom_glink_rpm.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2016-2017, Linaro Ltd
17 #include <linux/rpmsg.h>
27 #define RPM_TOC_MAX_ENTRIES ((RPM_TOC_SIZE - sizeof(struct rpm_toc)) / \
75 head = readl(pipe->head); in glink_rpm_rx_avail()
76 tail = readl(pipe->tail); in glink_rpm_rx_avail()
79 return pipe->native.length - tail + head; in glink_rpm_rx_avail()
81 return head - tail; in glink_rpm_rx_avail()
91 tail = readl(pipe->tail); in glink_rpm_rx_peek()
93 if (tail >= pipe->native.length) in glink_rpm_rx_peek()
[all …]
/linux/sound/soc/fsl/
H A Dfsl_rpmsg.c1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2018-2021 NXP
5 #include <linux/clk-provider.h>
11 #include <linux/rpmsg.h>
18 #include "imx-pcm.h"
43 struct fsl_rpmsg *rpmsg = snd_soc_dai_get_drvdata(dai); in fsl_rpmsg_hw_params() local
44 struct clk *p = rpmsg->mclk, *pll = NULL, *npll = NULL; in fsl_rpmsg_hw_params()
49 while (p && rpmsg->pll8k && rpmsg->pll11k) { in fsl_rpmsg_hw_params()
52 if (clk_is_match(pp, rpmsg->pll8k) || in fsl_rpmsg_hw_params()
53 clk_is_match(pp, rpmsg->pll11k)) { in fsl_rpmsg_hw_params()
[all …]
H A 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"
21 struct imx_audio_rpmsg *rpmsg = dev_get_drvdata(&rpdev->dev); in imx_audio_rpmsg_cb() local
27 if (!rpmsg->rpmsg_pdev) in imx_audio_rpmsg_cb()
30 info = platform_get_drvdata(rpmsg->rpmsg_pdev); in imx_audio_rpmsg_cb()
32 dev_dbg(&rpdev->dev, "get from%d: cmd:%d. %d\n", in imx_audio_rpmsg_cb()
33 src, r_msg->header.cmd, r_msg->param.resp); in imx_audio_rpmsg_cb()
35 switch (r_msg->header.type) { in imx_audio_rpmsg_cb()
[all …]
H A Dimx-rpmsg.c1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright 2017-2020 NXP
14 #include <sound/soc-dapm.h>
15 #include "imx-pcm-rpmsg.h"
36 struct snd_soc_pcm_runtime *rtd = list_first_entry(&card->rtd_list, in imx_rpmsg_late_probe()
39 struct device *dev = card->de in imx_rpmsg_late_probe()
[all...]
H A 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"
39 struct rpmsg_device *rpdev = info->rpdev; in imx_rpmsg_pcm_send_message()
42 mutex_lock(&info->msg_lock); in imx_rpmsg_pcm_send_message()
44 dev_err(info->dev, "rpmsg channel not ready\n"); in imx_rpmsg_pcm_send_message()
45 mutex_unlock(&info->msg_lock); in imx_rpmsg_pcm_send_message()
[all …]
/linux/include/linux/
H A 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; do not set directly,
49 * @ept: the rpmsg endpoint of this channel
[all …]
/linux/include/linux/rpmsg/
H A 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/drivers/tty/
H A Drpmsg_tty.c1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (C) 2021 STMicroelectronics - All Rights Reserved
5 * The rpmsg tty driver implements serial communication on the RPMsg bus to makes
6 * possible for user-space programs to send and receive rpmsg messages as a standard
9 * The remote processor can instantiate a new tty by requesting a "rpmsg-tty" RPMsg service.
10 * The "rpmsg-tty" service is directly used for data exchange. No flow control is implemented yet.
16 #include <linux/rpmsg.h>
31 int id; /* TTY rpmsg index */
32 struct rpmsg_device *rpdev; /* rpmsg device */
37 struct rpmsg_tty_port *cport = dev_get_drvdata(&rpdev->dev); in rpmsg_tty_cb()
[all …]
/linux/samples/rpmsg/
H A 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/drivers/cdx/controller/
H A Dcdx_rpmsg.c1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2022-2023, Advanced Micro Devices, Inc.
8 #include <linux/rpmsg.h>
21 { .name = "mcdi_ipc" },
24 MODULE_DEVICE_TABLE(rpmsg, cdx_rpmsg_id_table);
35 return -ENOMEM; in cdx_rpmsg_send()
40 ret = rpmsg_send(cdx_mcdi->ept, send_buf, hdr_len + sdu_len); in cdx_rpmsg_send()
55 dev = &pdev->dev; in cdx_attach_to_rproc()
57 cdx_mcdi = cdx_c->priv; in cdx_attach_to_rproc()
59 r5_core_node = of_parse_phandle(dev->of_node, "xlnx,rproc", 0); in cdx_attach_to_rproc()
[all …]
/linux/net/qrtr/
H A Dsmd.c1 // SPDX-License-Identifier: GPL-2.0-only
9 #include <linux/rpmsg.h>
15 struct rpmsg_endpoint *channel; member
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()
[all …]
/linux/drivers/remoteproc/
H A Dqcom_sysmon.c1 // SPDX-License-Identifier: GPL-2.0
14 #include <linux/rpmsg.h>
29 const char *name; member
76 * sysmon_send_event() - send notification of other remote's SSR event
87 len = snprintf(req, sizeof(req), "ssr:%s:%s", event->subsys_name, in sysmon_send_event()
88 sysmon_state_string[event->ssr_event]); in sysmon_send_event()
92 mutex_lock(&sysmon->lock); in sysmon_send_event()
93 reinit_completion(&sysmon->comp); in sysmon_send_event()
94 sysmon->ssr_ack = false; in sysmon_send_event()
96 ret = rpmsg_send(sysmon->ept, req, len); in sysmon_send_event()
[all …]
/linux/drivers/soc/qcom/
H A Dwcnss_ctrl.c1 // SPDX-License-Identifier: GPL-2.0-only
14 #include <linux/rpmsg.h>
27 * struct wcnss_ctrl - driver context
29 * @channel: SMD channel handle
37 struct rpmsg_endpoint *channel; member
64 * struct wcnss_msg_hdr - common packet header for requests and responses
74 * struct wcnss_version_resp - version request response
85 * struct wcnss_download_nv_req - firmware fragment request
101 * struct wcnss_download_nv_resp - firmware download response
111 * wcnss_ctrl_smd_callback() - handler from SMD responses
[all …]
H A Dsmd-rpm.c1 // SPDX-License-Identifier: GPL-2.0-only
4 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
14 #include <linux/rpmsg.h>
15 #include <linux/soc/qcom/smd-rpm.h>
20 * struct qcom_smd_rpm - state of the rpm device driver
21 * @rpm_channel: reference to the smd channel
37 * struct qcom_rpm_header - header for all rpm requests and responses
47 * struct qcom_rpm_request - request message to the rpm
63 * struct qcom_rpm_message - response message from the rpm
86 * qcom_rpm_smd_write - write @buf to @type:@id
[all …]
/linux/drivers/misc/
H A Dfastrpc.c1 // SPDX-License-Identifier: GPL-2.0
2 // Copyright (c) 2011-2018, The Linux Foundation. All rights reserved.
7 #include <linux/dma-buf.h>
8 #include <linux/dma-mapping.h>
9 #include <linux/dma-resv.h>
19 #include <linux/rpmsg.h>
317 if (map->table) { in fastrpc_free_map()
318 if (map->attr & FASTRPC_ATTR_SECUREMAP) { in fastrpc_free_map()
320 int vmid = map->fl->cctx->vmperms[0].vmid; in fastrpc_free_map()
326 err = qcom_scm_assign_mem(map->phys, map->size, in fastrpc_free_map()
[all …]

12