/linux-6.12.1/Documentation/staging/ |
D | rpmsg.rst | 2 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 14 Modern SoCs typically employ heterogeneous remote processor devices in 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, 22 its own instance of RTOS in an AMP 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 [all …]
|
D | remoteproc.rst | 8 Modern SoCs typically have heterogeneous remote processor devices in asymmetric 10 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 15 is running its own instance of RTOS in an AMP configuration. 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). [all …]
|
/linux-6.12.1/drivers/rpmsg/ |
D | Kconfig | 1 # 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 …]
|
D | rpmsg_core.c | 1 // 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 31 * @rpdev: rpmsg device 34 * Return: a pointer to the new rpmsg device on success, or NULL on error. 41 if (!rpdev->ops || !rpdev->ops->create_channel) { in rpmsg_create_channel() 42 dev_err(&rpdev->dev, "no create_channel ops found\n"); in rpmsg_create_channel() 46 return rpdev->ops->create_channel(rpdev, chinfo); in rpmsg_create_channel() [all …]
|
D | virtio_rpmsg_bus.c | 1 // 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 …]
|
D | rpmsg_char.c | 1 // 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 …]
|
D | rpmsg_ctrl.c | 1 // 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. 22 #include <linux/rpmsg.h> 26 #include <uapi/linux/rpmsg.h> 42 * struct rpmsg_ctrldev - control device for instantiating endpoint devices 43 * @rpdev: underlaying rpmsg device 57 struct rpmsg_ctrldev *ctrldev = cdev_to_ctrldev(inode->i_cdev); in rpmsg_ctrldev_open() 59 get_device(&ctrldev->dev); in rpmsg_ctrldev_open() 60 filp->private_data = ctrldev; in rpmsg_ctrldev_open() [all …]
|
D | mtk_rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/rpmsg/mtk_rpmsg.h> 36 * struct rpmsg_ns_msg - dynamic name service announcement message 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). 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() 80 dev_warn(&ept->rpdev->dev, "rpmsg handler return error = %d", in mtk_rpmsg_ipi_handler() 91 struct platform_device *pdev = mtk_subdev->pdev; in __mtk_create_ept() [all …]
|
D | rpmsg_internal.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 8 * Ohad Ben-Cohen <ohad@wizery.com> 15 #include <linux/rpmsg.h> 24 * struct rpmsg_device_ops - indirection table for the rpmsg_device operations 25 * @create_channel: create backend-specific channel, optional 26 * @release_channel: release backend-specific channel, optional 27 * @create_ept: create backend-specific endpoint, required 31 * Indirection table for the operations that a rpmsg backend should implement. 49 * struct rpmsg_endpoint_ops - indirection table for rpmsg_endpoint operations 61 * Indirection table for the operations that a rpmsg backend should implement. [all …]
|
/linux-6.12.1/Documentation/ABI/testing/ |
D | sysfs-bus-rpmsg | 1 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 8 which is maximum 32 bytes long (defined as RPMSG_NAME_SIZE in 9 rpmsg.h). 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, 20 and remote ("destination") rpmsg address. When an entity [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/sound/ |
D | fsl,rpmsg.yaml | 1 # 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-6.12.1/include/linux/ |
D | rpmsg.h | 1 /* 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 41 * rpmsg_device - device that belong to the rpmsg bus 43 * @id: device id (used to match between rpmsg drivers and devices) 49 * @ept: the rpmsg endpoint of this channel 50 * @announce: if set, rpmsg will announce the creation/removal of this channel 70 * struct rpmsg_endpoint - binds a local rpmsg address to its user 71 * @rpdev: rpmsg channel device [all …]
|
/linux-6.12.1/sound/soc/fsl/ |
D | imx-rpmsg.c | 1 // 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->dev; in imx_rpmsg_late_probe() 42 if (data->lpa) { in imx_rpmsg_late_probe() 48 codec_np = data->dai.codecs->of_node; in imx_rpmsg_late_probe() 55 codec_dev = &codec_i2c->dev; in imx_rpmsg_late_probe() 59 codec_dev = &codec_pdev->dev; in imx_rpmsg_late_probe() [all …]
|
D | imx-pcm-rpmsg.c | 1 // 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 …]
|
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 14 This option is only useful for out-of-tree drivers since 15 in-tree drivers select it automatically. 26 This option is only useful for out-of-tree drivers since 27 in-tree drivers select it automatically. 36 This option is only useful for out-of-tree drivers since 37 in-tree drivers select it automatically. 54 This option is only useful for out-of-tree drivers since 55 in-tree drivers select it automatically. 67 This option is only useful for out-of-tree drivers since [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/mfd/ |
D | google,cros-ec.yaml | 1 # 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 - Guenter Roeck <groeck@chromium.org> 22 - description: 24 const: google,cros-ec-i2c 25 - description: 27 const: google,cros-ec-spi [all …]
|
/linux-6.12.1/drivers/tty/ |
D | rpmsg_tty.c | 1 // 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 …]
|
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 7 blocks features that require TTY from inclusion in the kernel. 23 one can be used for a text-mode user session, and a third could run 24 an X session, all in parallel. Switching between virtual terminals 25 is done with certain key combinations, usually Alt-<function key>. 35 You need at least one virtual terminal device in order to make use 37 embedded system would want to say N here in order to save some 42 shiny Linux system :-) 47 bool "Enable character translations in console" if EXPERT 58 and warnings and which allows logins in single user mode. If you [all …]
|
/linux-6.12.1/include/linux/rpmsg/ |
D | ns.h | 1 /* 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 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). 30 * enum rpmsg_ns_flags - dynamic name service announcement flags
|
/linux-6.12.1/drivers/net/wwan/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 27 elements for each WWAN device in a directory that is corresponding to 40 tristate "MHI WWAN control driver for QCOM-based PCIe modems" 43 MHI WWAN CTRL allows QCOM-based PCIe modems to expose different modem 53 tristate "MHI WWAN MBIM network driver for QCOM-based PCIe modems" 56 MHI WWAN MBIM is a WWAN network driver for QCOM-based PCIe modems. 65 tristate "Qualcomm BAM-DMUX WWAN network driver" 78 tristate "RPMSG WWAN control driver" 79 depends on RPMSG 81 RPMSG WWAN CTRL allows modems available via RPMSG channels to expose [all …]
|
/linux-6.12.1/drivers/soc/qcom/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 15 the low-power state for resources related to the remoteproc 26 resource on a RPM-hardened platform must use this database to get 36 Engines present in the QUP. 84 and instances handled by the remote DSPs. This is a kernel-space 99 depends on RPMSG 103 the ADSP firmware PDCharger module in charge of Battery and Power 111 depends on RPMSG 121 USB and battery firmware running on one of the coprocessors in 124 Say yes here to support USB-C and battery status on modern Qualcomm [all …]
|
/linux-6.12.1/drivers/media/platform/st/sti/delta/ |
D | delta-ipc.c | 1 // 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-6.12.1/samples/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 14 tristate "Build trace_events examples -- loadable modules only" 20 tristate "Build custom trace event example -- loadable modules only" 26 tristate "Build trace_printk module - tests various trace_printk formats" 70 If in doubt, say "N" here. 73 tristate "Build kprobes examples -- loadable modules only" 79 tristate "Build kretprobes example -- loadable modules only" 84 tristate "Build kernel hardware breakpoint examples -- loadable module only" 90 tristate "Build fprobe examples -- loadable modules only" 97 tristate "Build kfifo examples -- loadable modules only" [all …]
|
/linux-6.12.1/net/qrtr/ |
D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 10 hardware blocks in the system. 12 In order to do service lookups, a userspace daemon is required to 19 depends on RPMSG || (COMPILE_TEST && RPMSG=n)
|
/linux-6.12.1/drivers/cdx/controller/ |
D | mcdi.h | 1 /* SPDX-License-Identifier: GPL-2.0 3 * Copyright 2008-2013 Solarflare Communications Inc. 4 * Copyright (C) 2022-2023, Advanced Micro Devices, Inc. 12 #include <linux/rpmsg.h> 26 * enum cdx_mcdi_mode - MCDI transaction mode 28 * @MCDI_MODE_FAIL: we think MCDI is dead, so fail-fast all calls 42 * enum cdx_mcdi_cmd_state - State for an individual MCDI command 62 * struct cdx_mcdi - CDX MCDI Firmware interface, to interact 67 * @rpdev: RPMsg device 68 * @ept: RPMsg endpoint [all …]
|