Path: blob/master/drivers/accel/amdxdna/amdxdna_mailbox_helper.h
52877 views
/* SPDX-License-Identifier: GPL-2.0 */1/*2* Copyright (C) 2023-2024, Advanced Micro Devices, Inc.3*/45#ifndef _AMDXDNA_MAILBOX_HELPER_H6#define _AMDXDNA_MAILBOX_HELPER_H78#define TX_TIMEOUT 2000 /* milliseconds */9#define RX_TIMEOUT 5000 /* milliseconds */1011struct amdxdna_dev;1213struct xdna_notify {14struct completion comp;15u32 *data;16size_t size;17int error;18u32 *status;19};2021#define DECLARE_XDNA_MSG_COMMON(name, op, s) \22struct name##_req req = { 0 }; \23struct name##_resp resp = { .status = s }; \24struct xdna_notify hdl = { \25.error = 0, \26.data = (u32 *)&resp, \27.size = sizeof(resp), \28.comp = COMPLETION_INITIALIZER_ONSTACK(hdl.comp), \29.status = (u32 *)&resp.status, \30}; \31struct xdna_mailbox_msg msg = { \32.send_data = (u8 *)&req, \33.send_size = sizeof(req), \34.handle = &hdl, \35.opcode = op, \36.notify_cb = xdna_msg_cb, \37}3839int xdna_msg_cb(void *handle, void __iomem *data, size_t size);40int xdna_send_msg_wait(struct amdxdna_dev *xdna, struct mailbox_channel *chann,41struct xdna_mailbox_msg *msg);4243#endif /* _AMDXDNA_MAILBOX_HELPER_H */444546