restore lost packages from 0.2.3 + fix overwritten 0.2.4 files
- Restore 29 recipe symlinks (libdrm, qtbase, dbus, sddm, pipewire, etc.) - Restore 33 patches (KDE, libdrm, mesa, pipewire, sddm, wireplumber) - Restore 20+ local/scripts (audit, lint, test, build helpers) - Restore src/cook/scheduler.rs, status.rs, gnu-config/ - Restore scripts/patch-inclusion-gate.sh, run_mini1.sh, validate-collision-log.sh - Recover TLC source from HEAD (was overwritten by 0.2.3 checkout) - Recover 11 local/docs plans from HEAD (were overwritten) - Recover qt6-wayland-smoke symlink from HEAD - Fix MOTD: remove garbled ASCII art, use clean text - Update version: 0.2.0 -> 0.2.4 in os-release, motd, config - Reduce filesystem_size: 1536 -> 512 MiB - Add ABSOLUTE RULE to AGENTS.md: never delete/ignore packages - Reduce pcid scheme log verbosity: info -> debug
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* ARM MHUv2 Mailbox Message
|
||||
*
|
||||
* Copyright (C) 2020 Arm Ltd.
|
||||
* Copyright (C) 2020 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_ARM_MHUV2_MESSAGE_H_
|
||||
#define _LINUX_ARM_MHUV2_MESSAGE_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* Data structure for data-transfer protocol */
|
||||
struct arm_mhuv2_mbox_msg {
|
||||
void *data;
|
||||
size_t len;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_ARM_MHUV2_MESSAGE_H_ */
|
||||
@@ -0,0 +1,59 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (C) 2016 Broadcom
|
||||
*
|
||||
* Common header for Broadcom mailbox messages which is shared across
|
||||
* Broadcom SoCs and Broadcom mailbox client drivers.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_BRCM_MESSAGE_H_
|
||||
#define _LINUX_BRCM_MESSAGE_H_
|
||||
|
||||
#include <linux/scatterlist.h>
|
||||
|
||||
enum brcm_message_type {
|
||||
BRCM_MESSAGE_UNKNOWN = 0,
|
||||
BRCM_MESSAGE_BATCH,
|
||||
BRCM_MESSAGE_SPU,
|
||||
BRCM_MESSAGE_SBA,
|
||||
BRCM_MESSAGE_MAX,
|
||||
};
|
||||
|
||||
struct brcm_sba_command {
|
||||
u64 cmd;
|
||||
u64 *cmd_dma;
|
||||
dma_addr_t cmd_dma_addr;
|
||||
#define BRCM_SBA_CMD_TYPE_A BIT(0)
|
||||
#define BRCM_SBA_CMD_TYPE_B BIT(1)
|
||||
#define BRCM_SBA_CMD_TYPE_C BIT(2)
|
||||
#define BRCM_SBA_CMD_HAS_RESP BIT(3)
|
||||
#define BRCM_SBA_CMD_HAS_OUTPUT BIT(4)
|
||||
u64 flags;
|
||||
dma_addr_t resp;
|
||||
size_t resp_len;
|
||||
dma_addr_t data;
|
||||
size_t data_len;
|
||||
};
|
||||
|
||||
struct brcm_message {
|
||||
enum brcm_message_type type;
|
||||
union {
|
||||
struct {
|
||||
struct brcm_message *msgs;
|
||||
unsigned int msgs_queued;
|
||||
unsigned int msgs_count;
|
||||
} batch;
|
||||
struct {
|
||||
struct scatterlist *src;
|
||||
struct scatterlist *dst;
|
||||
} spu;
|
||||
struct {
|
||||
struct brcm_sba_command *cmds;
|
||||
unsigned int cmds_count;
|
||||
} sba;
|
||||
};
|
||||
void *ctx;
|
||||
int error;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_BRCM_MESSAGE_H_ */
|
||||
@@ -0,0 +1,19 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Exynos mailbox message.
|
||||
*
|
||||
* Copyright 2024 Linaro Ltd.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_EXYNOS_MESSAGE_H_
|
||||
#define _LINUX_EXYNOS_MESSAGE_H_
|
||||
|
||||
#define EXYNOS_MBOX_CHAN_TYPE_DOORBELL 0
|
||||
#define EXYNOS_MBOX_CHAN_TYPE_DATA 1
|
||||
|
||||
struct exynos_mbox_msg {
|
||||
unsigned int chan_id;
|
||||
unsigned int chan_type;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_EXYNOS_MESSAGE_H_ */
|
||||
@@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
*Copyright (c) 2024 Microchip Technology Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_MCHP_IPC_H_
|
||||
#define _LINUX_MCHP_IPC_H_
|
||||
|
||||
#include <linux/mailbox_controller.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
struct mchp_ipc_msg {
|
||||
u32 *buf;
|
||||
u16 size;
|
||||
};
|
||||
|
||||
struct mchp_ipc_sbi_chan {
|
||||
void *buf_base_tx;
|
||||
void *buf_base_rx;
|
||||
void *msg_buf_tx;
|
||||
void *msg_buf_rx;
|
||||
phys_addr_t buf_base_tx_addr;
|
||||
phys_addr_t buf_base_rx_addr;
|
||||
phys_addr_t msg_buf_tx_addr;
|
||||
phys_addr_t msg_buf_rx_addr;
|
||||
int chan_aggregated_irq;
|
||||
int mp_irq;
|
||||
int mc_irq;
|
||||
u32 id;
|
||||
u32 max_msg_size;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_MCHP_IPC_H_ */
|
||||
@@ -0,0 +1,111 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2018 MediaTek Inc.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __MTK_CMDQ_MAILBOX_H__
|
||||
#define __MTK_CMDQ_MAILBOX_H__
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#define CMDQ_INST_SIZE 8 /* instruction is 64-bit */
|
||||
#define CMDQ_SUBSYS_SHIFT 16
|
||||
#define CMDQ_OP_CODE_SHIFT 24
|
||||
#define CMDQ_JUMP_PASS CMDQ_INST_SIZE
|
||||
|
||||
#define CMDQ_WFE_UPDATE BIT(31)
|
||||
#define CMDQ_WFE_UPDATE_VALUE BIT(16)
|
||||
#define CMDQ_WFE_WAIT BIT(15)
|
||||
#define CMDQ_WFE_WAIT_VALUE 0x1
|
||||
|
||||
/*
|
||||
* WFE arg_b
|
||||
* bit 0-11: wait value
|
||||
* bit 15: 1 - wait, 0 - no wait
|
||||
* bit 16-27: update value
|
||||
* bit 31: 1 - update, 0 - no update
|
||||
*/
|
||||
#define CMDQ_WFE_OPTION (CMDQ_WFE_WAIT | CMDQ_WFE_WAIT_VALUE)
|
||||
|
||||
/** cmdq event maximum */
|
||||
#define CMDQ_MAX_EVENT 0x3ff
|
||||
|
||||
/*
|
||||
* CMDQ_CODE_MASK:
|
||||
* set write mask
|
||||
* format: op mask
|
||||
* CMDQ_CODE_WRITE:
|
||||
* write value into target register
|
||||
* format: op subsys address value
|
||||
* CMDQ_CODE_JUMP:
|
||||
* jump by offset
|
||||
* format: op offset
|
||||
* CMDQ_CODE_WFE:
|
||||
* wait for event and clear
|
||||
* it is just clear if no wait
|
||||
* format: [wait] op event update:1 to_wait:1 wait:1
|
||||
* [clear] op event update:1 to_wait:0 wait:0
|
||||
* CMDQ_CODE_EOC:
|
||||
* end of command
|
||||
* format: op irq_flag
|
||||
*/
|
||||
enum cmdq_code {
|
||||
CMDQ_CODE_MASK = 0x02,
|
||||
CMDQ_CODE_WRITE = 0x04,
|
||||
CMDQ_CODE_POLL = 0x08,
|
||||
CMDQ_CODE_JUMP = 0x10,
|
||||
CMDQ_CODE_WFE = 0x20,
|
||||
CMDQ_CODE_EOC = 0x40,
|
||||
CMDQ_CODE_READ_S = 0x80,
|
||||
CMDQ_CODE_WRITE_S = 0x90,
|
||||
CMDQ_CODE_WRITE_S_MASK = 0x91,
|
||||
CMDQ_CODE_LOGIC = 0xa0,
|
||||
};
|
||||
|
||||
struct cmdq_cb_data {
|
||||
int sta;
|
||||
struct cmdq_pkt *pkt;
|
||||
};
|
||||
|
||||
struct cmdq_mbox_priv {
|
||||
u8 shift_pa;
|
||||
dma_addr_t mminfra_offset;
|
||||
};
|
||||
|
||||
struct cmdq_pkt {
|
||||
void *va_base;
|
||||
dma_addr_t pa_base;
|
||||
size_t cmd_buf_size; /* command occupied size */
|
||||
size_t buf_size; /* real buffer size */
|
||||
struct cmdq_mbox_priv priv; /* for generating instruction */
|
||||
};
|
||||
|
||||
/**
|
||||
* cmdq_get_mbox_priv() - get the private data of mailbox channel
|
||||
* @chan: mailbox channel
|
||||
* @priv: pointer to store the private data of mailbox channel
|
||||
*
|
||||
* While generating the GCE instruction to command buffer, the private data
|
||||
* of GCE hardware may need to be referenced, such as the shift bits of
|
||||
* physical address.
|
||||
*
|
||||
* This function should be called before generating the GCE instruction.
|
||||
*/
|
||||
void cmdq_get_mbox_priv(struct mbox_chan *chan, struct cmdq_mbox_priv *priv);
|
||||
|
||||
/**
|
||||
* cmdq_get_shift_pa() - get the shift bits of physical address
|
||||
* @chan: mailbox channel
|
||||
*
|
||||
* GCE can only fetch the command buffer address from a 32-bit register.
|
||||
* Some SOCs support more than 32-bit command buffer address for GCE, which
|
||||
* requires some shift bits to make the address fit into the 32-bit register.
|
||||
*
|
||||
* Return: the shift bits of physical address
|
||||
*/
|
||||
u8 cmdq_get_shift_pa(struct mbox_chan *chan);
|
||||
|
||||
#endif /* __MTK_CMDQ_MAILBOX_H__ */
|
||||
@@ -0,0 +1,32 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
|
||||
/*
|
||||
* Copyright (c) 2025 MediaTek Inc.
|
||||
*/
|
||||
|
||||
#ifndef __MTK_VCP_MAILBOX_H__
|
||||
#define __MTK_VCP_MAILBOX_H__
|
||||
|
||||
#define MTK_VCP_MBOX_SLOT_MAX_SIZE 0x100 /* mbox max slot size */
|
||||
|
||||
/**
|
||||
* struct mtk_ipi_info - mailbox message info for mtk-vcp-mailbox
|
||||
* @msg: The share buffer between IPC and mailbox driver
|
||||
* @len: Message length
|
||||
* @id: This is for identification purposes and not actually used
|
||||
* by the mailbox hardware.
|
||||
* @index: The signal number of the mailbox message.
|
||||
* @slot_ofs: Data slot offset.
|
||||
* @irq_status: Captures incoming signals for the RX path.
|
||||
*
|
||||
* It is used between IPC with mailbox driver.
|
||||
*/
|
||||
struct mtk_ipi_info {
|
||||
void *msg;
|
||||
u32 len;
|
||||
u32 id;
|
||||
u32 index;
|
||||
u32 slot_ofs;
|
||||
u32 irq_status;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,243 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/* Copyright (C) 2025 Ventana Micro Systems Inc. */
|
||||
|
||||
#ifndef _LINUX_RISCV_RPMI_MESSAGE_H_
|
||||
#define _LINUX_RISCV_RPMI_MESSAGE_H_
|
||||
|
||||
#include <linux/errno.h>
|
||||
#include <linux/mailbox_client.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/wordpart.h>
|
||||
|
||||
/* RPMI version encode/decode macros */
|
||||
#define RPMI_VER_MAJOR(__ver) upper_16_bits(__ver)
|
||||
#define RPMI_VER_MINOR(__ver) lower_16_bits(__ver)
|
||||
#define RPMI_MKVER(__maj, __min) (((u32)(__maj) << 16) | (u16)(__min))
|
||||
|
||||
/* RPMI message header */
|
||||
struct rpmi_message_header {
|
||||
__le16 servicegroup_id;
|
||||
u8 service_id;
|
||||
u8 flags;
|
||||
__le16 datalen;
|
||||
__le16 token;
|
||||
};
|
||||
|
||||
/* RPMI message */
|
||||
struct rpmi_message {
|
||||
struct rpmi_message_header header;
|
||||
u8 data[];
|
||||
};
|
||||
|
||||
/* RPMI notification event */
|
||||
struct rpmi_notification_event {
|
||||
__le16 event_datalen;
|
||||
u8 event_id;
|
||||
u8 reserved;
|
||||
u8 event_data[];
|
||||
};
|
||||
|
||||
/* RPMI error codes */
|
||||
enum rpmi_error_codes {
|
||||
RPMI_SUCCESS = 0,
|
||||
RPMI_ERR_FAILED = -1,
|
||||
RPMI_ERR_NOTSUPP = -2,
|
||||
RPMI_ERR_INVALID_PARAM = -3,
|
||||
RPMI_ERR_DENIED = -4,
|
||||
RPMI_ERR_INVALID_ADDR = -5,
|
||||
RPMI_ERR_ALREADY = -6,
|
||||
RPMI_ERR_EXTENSION = -7,
|
||||
RPMI_ERR_HW_FAULT = -8,
|
||||
RPMI_ERR_BUSY = -9,
|
||||
RPMI_ERR_INVALID_STATE = -10,
|
||||
RPMI_ERR_BAD_RANGE = -11,
|
||||
RPMI_ERR_TIMEOUT = -12,
|
||||
RPMI_ERR_IO = -13,
|
||||
RPMI_ERR_NO_DATA = -14,
|
||||
RPMI_ERR_RESERVED_START = -15,
|
||||
RPMI_ERR_RESERVED_END = -127,
|
||||
RPMI_ERR_VENDOR_START = -128,
|
||||
};
|
||||
|
||||
static inline int rpmi_to_linux_error(int rpmi_error)
|
||||
{
|
||||
switch (rpmi_error) {
|
||||
case RPMI_SUCCESS:
|
||||
return 0;
|
||||
case RPMI_ERR_INVALID_PARAM:
|
||||
case RPMI_ERR_BAD_RANGE:
|
||||
case RPMI_ERR_INVALID_STATE:
|
||||
return -EINVAL;
|
||||
case RPMI_ERR_DENIED:
|
||||
return -EPERM;
|
||||
case RPMI_ERR_INVALID_ADDR:
|
||||
case RPMI_ERR_HW_FAULT:
|
||||
return -EFAULT;
|
||||
case RPMI_ERR_ALREADY:
|
||||
return -EALREADY;
|
||||
case RPMI_ERR_BUSY:
|
||||
return -EBUSY;
|
||||
case RPMI_ERR_TIMEOUT:
|
||||
return -ETIMEDOUT;
|
||||
case RPMI_ERR_IO:
|
||||
return -ECOMM;
|
||||
case RPMI_ERR_FAILED:
|
||||
case RPMI_ERR_NOTSUPP:
|
||||
case RPMI_ERR_NO_DATA:
|
||||
case RPMI_ERR_EXTENSION:
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
}
|
||||
|
||||
/* RPMI service group IDs */
|
||||
#define RPMI_SRVGRP_SYSTEM_MSI 0x00002
|
||||
#define RPMI_SRVGRP_CLOCK 0x00008
|
||||
|
||||
/* RPMI clock service IDs */
|
||||
enum rpmi_clock_service_id {
|
||||
RPMI_CLK_SRV_ENABLE_NOTIFICATION = 0x01,
|
||||
RPMI_CLK_SRV_GET_NUM_CLOCKS = 0x02,
|
||||
RPMI_CLK_SRV_GET_ATTRIBUTES = 0x03,
|
||||
RPMI_CLK_SRV_GET_SUPPORTED_RATES = 0x04,
|
||||
RPMI_CLK_SRV_SET_CONFIG = 0x05,
|
||||
RPMI_CLK_SRV_GET_CONFIG = 0x06,
|
||||
RPMI_CLK_SRV_SET_RATE = 0x07,
|
||||
RPMI_CLK_SRV_GET_RATE = 0x08,
|
||||
RPMI_CLK_SRV_ID_MAX_COUNT
|
||||
};
|
||||
|
||||
/* RPMI system MSI service IDs */
|
||||
enum rpmi_sysmsi_service_id {
|
||||
RPMI_SYSMSI_SRV_ENABLE_NOTIFICATION = 0x01,
|
||||
RPMI_SYSMSI_SRV_GET_ATTRIBUTES = 0x02,
|
||||
RPMI_SYSMSI_SRV_GET_MSI_ATTRIBUTES = 0x03,
|
||||
RPMI_SYSMSI_SRV_SET_MSI_STATE = 0x04,
|
||||
RPMI_SYSMSI_SRV_GET_MSI_STATE = 0x05,
|
||||
RPMI_SYSMSI_SRV_SET_MSI_TARGET = 0x06,
|
||||
RPMI_SYSMSI_SRV_GET_MSI_TARGET = 0x07,
|
||||
RPMI_SYSMSI_SRV_ID_MAX_COUNT
|
||||
};
|
||||
|
||||
/* RPMI Linux mailbox attribute IDs */
|
||||
enum rpmi_mbox_attribute_id {
|
||||
RPMI_MBOX_ATTR_SPEC_VERSION,
|
||||
RPMI_MBOX_ATTR_MAX_MSG_DATA_SIZE,
|
||||
RPMI_MBOX_ATTR_SERVICEGROUP_ID,
|
||||
RPMI_MBOX_ATTR_SERVICEGROUP_VERSION,
|
||||
RPMI_MBOX_ATTR_IMPL_ID,
|
||||
RPMI_MBOX_ATTR_IMPL_VERSION,
|
||||
RPMI_MBOX_ATTR_MAX_ID
|
||||
};
|
||||
|
||||
/* RPMI Linux mailbox message types */
|
||||
enum rpmi_mbox_message_type {
|
||||
RPMI_MBOX_MSG_TYPE_GET_ATTRIBUTE,
|
||||
RPMI_MBOX_MSG_TYPE_SET_ATTRIBUTE,
|
||||
RPMI_MBOX_MSG_TYPE_SEND_WITH_RESPONSE,
|
||||
RPMI_MBOX_MSG_TYPE_SEND_WITHOUT_RESPONSE,
|
||||
RPMI_MBOX_MSG_TYPE_NOTIFICATION_EVENT,
|
||||
RPMI_MBOX_MSG_MAX_TYPE
|
||||
};
|
||||
|
||||
/* RPMI Linux mailbox message instance */
|
||||
struct rpmi_mbox_message {
|
||||
enum rpmi_mbox_message_type type;
|
||||
union {
|
||||
struct {
|
||||
enum rpmi_mbox_attribute_id id;
|
||||
u32 value;
|
||||
} attr;
|
||||
|
||||
struct {
|
||||
u32 service_id;
|
||||
void *request;
|
||||
unsigned long request_len;
|
||||
void *response;
|
||||
unsigned long max_response_len;
|
||||
unsigned long out_response_len;
|
||||
} data;
|
||||
|
||||
struct {
|
||||
u16 event_datalen;
|
||||
u8 event_id;
|
||||
u8 *event_data;
|
||||
} notif;
|
||||
};
|
||||
int error;
|
||||
};
|
||||
|
||||
/* RPMI Linux mailbox message helper routines */
|
||||
static inline void rpmi_mbox_init_get_attribute(struct rpmi_mbox_message *msg,
|
||||
enum rpmi_mbox_attribute_id id)
|
||||
{
|
||||
msg->type = RPMI_MBOX_MSG_TYPE_GET_ATTRIBUTE;
|
||||
msg->attr.id = id;
|
||||
msg->attr.value = 0;
|
||||
msg->error = 0;
|
||||
}
|
||||
|
||||
static inline void rpmi_mbox_init_set_attribute(struct rpmi_mbox_message *msg,
|
||||
enum rpmi_mbox_attribute_id id,
|
||||
u32 value)
|
||||
{
|
||||
msg->type = RPMI_MBOX_MSG_TYPE_SET_ATTRIBUTE;
|
||||
msg->attr.id = id;
|
||||
msg->attr.value = value;
|
||||
msg->error = 0;
|
||||
}
|
||||
|
||||
static inline void rpmi_mbox_init_send_with_response(struct rpmi_mbox_message *msg,
|
||||
u32 service_id,
|
||||
void *request,
|
||||
unsigned long request_len,
|
||||
void *response,
|
||||
unsigned long max_response_len)
|
||||
{
|
||||
msg->type = RPMI_MBOX_MSG_TYPE_SEND_WITH_RESPONSE;
|
||||
msg->data.service_id = service_id;
|
||||
msg->data.request = request;
|
||||
msg->data.request_len = request_len;
|
||||
msg->data.response = response;
|
||||
msg->data.max_response_len = max_response_len;
|
||||
msg->data.out_response_len = 0;
|
||||
msg->error = 0;
|
||||
}
|
||||
|
||||
static inline void rpmi_mbox_init_send_without_response(struct rpmi_mbox_message *msg,
|
||||
u32 service_id,
|
||||
void *request,
|
||||
unsigned long request_len)
|
||||
{
|
||||
msg->type = RPMI_MBOX_MSG_TYPE_SEND_WITHOUT_RESPONSE;
|
||||
msg->data.service_id = service_id;
|
||||
msg->data.request = request;
|
||||
msg->data.request_len = request_len;
|
||||
msg->data.response = NULL;
|
||||
msg->data.max_response_len = 0;
|
||||
msg->data.out_response_len = 0;
|
||||
msg->error = 0;
|
||||
}
|
||||
|
||||
static inline void *rpmi_mbox_get_msg_response(struct rpmi_mbox_message *msg)
|
||||
{
|
||||
return msg ? msg->data.response : NULL;
|
||||
}
|
||||
|
||||
static inline int rpmi_mbox_send_message(struct mbox_chan *chan,
|
||||
struct rpmi_mbox_message *msg)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* Send message for the underlying mailbox channel */
|
||||
ret = mbox_send_message(chan, msg);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Explicitly signal txdone for mailbox channel */
|
||||
ret = msg->error;
|
||||
mbox_client_txdone(chan, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* _LINUX_RISCV_RPMI_MESSAGE_H_ */
|
||||
@@ -0,0 +1,20 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef _LINUX_ZYNQMP_IPI_MESSAGE_H_
|
||||
#define _LINUX_ZYNQMP_IPI_MESSAGE_H_
|
||||
|
||||
/**
|
||||
* struct zynqmp_ipi_message - ZynqMP IPI message structure
|
||||
* @len: Length of message
|
||||
* @data: message payload
|
||||
*
|
||||
* This is the structure for data used in mbox_send_message
|
||||
* the maximum length of data buffer is fixed to 32 bytes.
|
||||
* Client is supposed to be aware of this.
|
||||
*/
|
||||
struct zynqmp_ipi_message {
|
||||
size_t len;
|
||||
u8 data[];
|
||||
};
|
||||
|
||||
#endif /* _LINUX_ZYNQMP_IPI_MESSAGE_H_ */
|
||||
Reference in New Issue
Block a user