linux/drivers/media/platform/allegro-dvt/allegro-mail.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (C) 2019 Pengutronix, Michael Tretter <[email protected]>
 *
 * Allegro VCU firmware mailbox mail definitions
 */

#ifndef ALLEGRO_MAIL_H
#define ALLEGRO_MAIL_H

#include <linux/kernel.h>

enum mcu_msg_type {};

enum mcu_msg_version {};

const char *msg_type_name(enum mcu_msg_type type);

struct mcu_msg_header {};

struct mcu_msg_init_request {};

struct mcu_msg_init_response {};

struct create_channel_param {};

struct mcu_msg_create_channel {};

struct mcu_msg_create_channel_response {};

struct mcu_msg_destroy_channel {};

struct mcu_msg_destroy_channel_response {};

struct mcu_msg_push_buffers_internal_buffer {};

struct mcu_msg_push_buffers_internal {};

struct mcu_msg_put_stream_buffer {};

struct mcu_msg_encode_frame {};

struct mcu_msg_encode_frame_response {};

mcu_msg_response;

ssize_t allegro_encode_config_blob(u32 *dst, struct create_channel_param *param);
ssize_t allegro_decode_config_blob(struct create_channel_param *param,
				   struct mcu_msg_create_channel_response *msg,
				   u32 *src);

int allegro_decode_mail(void *msg, u32 *src);
ssize_t allegro_encode_mail(u32 *dst, void *msg);

#endif