linux/sound/soc/intel/catpt/messages.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright(c) 2020 Intel Corporation
 *
 * Author: Cezary Rojewski <[email protected]>
 */

#ifndef __SND_SOC_INTEL_CATPT_MSG_H
#define __SND_SOC_INTEL_CATPT_MSG_H

struct catpt_dev;

/* IPC messages base types  */

enum catpt_reply_status {};

/* GLOBAL messages */

enum catpt_global_msg_type {};

catpt_global_msg __packed;

#define CATPT_MSG(hdr)
#define CATPT_GLOBAL_MSG(msg_type)

#define BUILD_HASH_SIZE

struct catpt_fw_version {} __packed;

int catpt_ipc_get_fw_version(struct catpt_dev *cdev,
			     struct catpt_fw_version *version);

enum catpt_pin_id {};

enum catpt_path_id {};

enum catpt_stream_type {};

enum catpt_format_id {};

enum catpt_channel_index {};

enum catpt_channel_config {};

enum catpt_interleaving_style {};

struct catpt_audio_format {} __packed;

struct catpt_ring_info {} __packed;

#define CATPT_MODULE_COUNT

enum catpt_module_id {};

struct catpt_module_entry {} __packed;

struct catpt_module_map {} __packed;

struct catpt_memory_info {} __packed;

#define CATPT_CHANNELS_MAX
#define CATPT_ALL_CHANNELS_MASK

struct catpt_stream_info {} __packed;

int catpt_ipc_alloc_stream(struct catpt_dev *cdev,
			   enum catpt_path_id path_id,
			   enum catpt_stream_type type,
			   struct catpt_audio_format *afmt,
			   struct catpt_ring_info *rinfo,
			   u8 num_modules,
			   struct catpt_module_entry *modules,
			   struct resource *persistent,
			   struct resource *scratch,
			   struct catpt_stream_info *sinfo);
int catpt_ipc_free_stream(struct catpt_dev *cdev, u8 stream_hw_id);

enum catpt_ssp_iface {};

enum catpt_mclk_frequency {};

enum catpt_ssp_mode {};

struct catpt_ssp_device_format {} __packed;

int catpt_ipc_set_device_format(struct catpt_dev *cdev,
				struct catpt_ssp_device_format *devfmt);

enum catpt_dx_state {};

enum catpt_dx_type {};

struct catpt_save_meminfo {} __packed;

#define SAVE_MEMINFO_MAX

struct catpt_dx_context {} __packed;

int catpt_ipc_enter_dxstate(struct catpt_dev *cdev, enum catpt_dx_state state,
			    struct catpt_dx_context *context);

struct catpt_mixer_stream_info {} __packed;

int catpt_ipc_get_mixer_stream_info(struct catpt_dev *cdev,
				    struct catpt_mixer_stream_info *info);

/* STREAM messages */

enum catpt_stream_msg_type {};

enum catpt_stage_action {};

catpt_stream_msg __packed;

#define CATPT_STREAM_MSG(msg_type)
#define CATPT_STAGE_MSG(msg_type)

int catpt_ipc_reset_stream(struct catpt_dev *cdev, u8 stream_hw_id);
int catpt_ipc_pause_stream(struct catpt_dev *cdev, u8 stream_hw_id);
int catpt_ipc_resume_stream(struct catpt_dev *cdev, u8 stream_hw_id);

/* STREAM messages - STAGE subtype */

enum catpt_audio_curve_type {};

int catpt_ipc_set_volume(struct catpt_dev *cdev, u8 stream_hw_id,
			 u32 channel, u32 volume,
			 u32 curve_duration,
			 enum catpt_audio_curve_type curve_type);

int catpt_ipc_set_write_pos(struct catpt_dev *cdev, u8 stream_hw_id,
			    u32 pos, bool eob, bool ll);

int catpt_ipc_mute_loopback(struct catpt_dev *cdev, u8 stream_hw_id, bool mute);

/* NOTIFICATION messages */

enum catpt_notify_reason {};

catpt_notify_msg __packed;

#define FW_INFO_SIZE_MAX

struct catpt_fw_ready {} __packed;

struct catpt_notify_position {} __packed;

enum catpt_glitch_type {};

struct catpt_notify_glitch {} __packed;

#endif