Fix duplicate atomic_t typedef conflicting with types.h

This commit is contained in:
2026-05-31 05:50:29 +03:00
parent 98326148ef
commit 3431bbfeb2
6455 changed files with 7049323 additions and 203 deletions
@@ -0,0 +1,67 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Follows implementation found in linux/virtio_byteorder.h
*/
#ifndef _LINUX_RPMSG_BYTEORDER_H
#define _LINUX_RPMSG_BYTEORDER_H
#include <linux/types.h>
#include <uapi/linux/rpmsg_types.h>
static inline bool rpmsg_is_little_endian(void)
{
#ifdef __LITTLE_ENDIAN
return true;
#else
return false;
#endif
}
static inline u16 __rpmsg16_to_cpu(bool little_endian, __rpmsg16 val)
{
if (little_endian)
return le16_to_cpu((__force __le16)val);
else
return be16_to_cpu((__force __be16)val);
}
static inline __rpmsg16 __cpu_to_rpmsg16(bool little_endian, u16 val)
{
if (little_endian)
return (__force __rpmsg16)cpu_to_le16(val);
else
return (__force __rpmsg16)cpu_to_be16(val);
}
static inline u32 __rpmsg32_to_cpu(bool little_endian, __rpmsg32 val)
{
if (little_endian)
return le32_to_cpu((__force __le32)val);
else
return be32_to_cpu((__force __be32)val);
}
static inline __rpmsg32 __cpu_to_rpmsg32(bool little_endian, u32 val)
{
if (little_endian)
return (__force __rpmsg32)cpu_to_le32(val);
else
return (__force __rpmsg32)cpu_to_be32(val);
}
static inline u64 __rpmsg64_to_cpu(bool little_endian, __rpmsg64 val)
{
if (little_endian)
return le64_to_cpu((__force __le64)val);
else
return be64_to_cpu((__force __be64)val);
}
static inline __rpmsg64 __cpu_to_rpmsg64(bool little_endian, u64 val)
{
if (little_endian)
return (__force __rpmsg64)cpu_to_le64(val);
else
return (__force __rpmsg64)cpu_to_be64(val);
}
#endif /* _LINUX_RPMSG_BYTEORDER_H */
@@ -0,0 +1,38 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright 2019 Google LLC.
*/
#ifndef __LINUX_RPMSG_MTK_RPMSG_H
#define __LINUX_RPMSG_MTK_RPMSG_H
#include <linux/platform_device.h>
#include <linux/remoteproc.h>
typedef void (*ipi_handler_t)(void *data, unsigned int len, void *priv);
/*
* struct mtk_rpmsg_info - IPI functions tied to the rpmsg device.
* @register_ipi: register IPI handler for an IPI id.
* @unregister_ipi: unregister IPI handler for a registered IPI id.
* @send_ipi: send IPI to an IPI id. wait is the timeout (in msecs) to wait
* until response, or 0 if there's no timeout.
* @ns_ipi_id: the IPI id used for name service, or -1 if name service isn't
* supported.
*/
struct mtk_rpmsg_info {
int (*register_ipi)(struct platform_device *pdev, u32 id,
ipi_handler_t handler, void *priv);
void (*unregister_ipi)(struct platform_device *pdev, u32 id);
int (*send_ipi)(struct platform_device *pdev, u32 id,
const void *buf, unsigned int len, unsigned int wait);
int ns_ipi_id;
};
struct rproc_subdev *
mtk_rpmsg_create_rproc_subdev(struct platform_device *pdev,
struct mtk_rpmsg_info *info);
void mtk_rpmsg_destroy_rproc_subdev(struct rproc_subdev *subdev);
#endif
@@ -0,0 +1,45 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_RPMSG_NS_H
#define _LINUX_RPMSG_NS_H
#include <linux/mod_devicetable.h>
#include <linux/rpmsg.h>
#include <linux/rpmsg/byteorder.h>
#include <linux/types.h>
/**
* struct rpmsg_ns_msg - dynamic name service announcement message
* @name: name of remote service that is published
* @addr: address of remote service that is published
* @flags: indicates whether service is created or destroyed
*
* This message is sent across to publish a new service, or announce
* about its removal. When we receive these messages, an appropriate
* rpmsg channel (i.e device) is created/destroyed. In turn, the ->probe()
* or ->remove() handler of the appropriate rpmsg driver will be invoked
* (if/as-soon-as one is registered).
*/
struct rpmsg_ns_msg {
char name[RPMSG_NAME_SIZE];
__rpmsg32 addr;
__rpmsg32 flags;
} __packed;
/**
* enum rpmsg_ns_flags - dynamic name service announcement flags
*
* @RPMSG_NS_CREATE: a new remote service was just created
* @RPMSG_NS_DESTROY: a known remote service was just destroyed
*/
enum rpmsg_ns_flags {
RPMSG_NS_CREATE = 0,
RPMSG_NS_DESTROY = 1,
};
/* Address 53 is reserved for advertising remote services */
#define RPMSG_NS_ADDR (53)
int rpmsg_ns_register_device(struct rpmsg_device *rpdev);
#endif
@@ -0,0 +1,34 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_RPMSG_QCOM_GLINK_H
#define _LINUX_RPMSG_QCOM_GLINK_H
#include <linux/device.h>
struct qcom_glink_smem;
#if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK)
void qcom_glink_ssr_notify(const char *ssr_name);
#else
static inline void qcom_glink_ssr_notify(const char *ssr_name) {}
#endif
#if IS_ENABLED(CONFIG_RPMSG_QCOM_GLINK_SMEM)
struct qcom_glink_smem *qcom_glink_smem_register(struct device *parent,
struct device_node *node);
void qcom_glink_smem_unregister(struct qcom_glink_smem *glink);
#else
static inline struct qcom_glink_smem *
qcom_glink_smem_register(struct device *parent,
struct device_node *node)
{
return NULL;
}
static inline void qcom_glink_smem_unregister(struct qcom_glink_smem *glink) {}
#endif
#endif
@@ -0,0 +1,31 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_RPMSG_QCOM_SMD_H
#define _LINUX_RPMSG_QCOM_SMD_H
#include <linux/device.h>
struct qcom_smd_edge;
#if IS_ENABLED(CONFIG_RPMSG_QCOM_SMD)
struct qcom_smd_edge *qcom_smd_register_edge(struct device *parent,
struct device_node *node);
void qcom_smd_unregister_edge(struct qcom_smd_edge *edge);
#else
static inline struct qcom_smd_edge *
qcom_smd_register_edge(struct device *parent,
struct device_node *node)
{
return NULL;
}
static inline void qcom_smd_unregister_edge(struct qcom_smd_edge *edge)
{
}
#endif
#endif