Files
android/drivers/misc/mediatek/adsp/mt6785/adsp_feature_define.h
threeeye bc1d038eac REVVL 6 Pro kernel bring-up: full working tree snapshot (2026-09-12)
Squashed backup commit (no shallow-clone history issues) of
xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream
commit 9eece662e) plus all fixes applied to get everpal_defconfig building
clean against a modern (GCC 15.2.0) toolchain -- see the previous commit
message on the lineage-23.2 branch (also in this repo history is not
available here since this is a squashed snapshot; full incremental history
lives in the local DL380 checkout and the upstream GitHub remote).

Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
2026-09-12 13:36:46 +00:00

96 lines
2.6 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2020 MediaTek Inc.
*/
#ifndef __ADSP_FEATURE_DEFINE_H__
#define __ADSP_FEATURE_DEFINE_H__
/* reset recovery feature kernel option*/
#define CFG_RECOVERY_SUPPORT
/* adsp platform configs*/
#define ADSP_EMI_PROTECTION_ENABLE (1)
#define ADSP_BUS_MONITOR_INIT_ENABLE (1)
/* adsp feature PRI list */
/* The higher number, higher priority */
enum adsp_feature_pri {
AUDIO_HAL_FEATURE_PRI = 0,
ADSP_LOGGER_FEATURE_PRI,
SPK_PROTECT_FEATURE_PRI,
A2DP_PLAYBACK_FEATURE_PRI,
AURISYS_FEATURE_PRI,
DEEPBUF_FEATURE_PRI,
OFFLOAD_FEATURE_PRI,
PRIMARY_FEATURE_PRI,
VOIP_FEATURE_PRI,
CAPTURE_UL1_FEATURE_PRI,
AUDIO_DATAPROVIDER_FEATURE_PRI,
AUDIO_PLAYBACK_FEATURE_PRI,
VOICE_CALL_FEATURE_PRI,
AUDIO_CONTROLLER_FEATURE_PRI,
SYSTEM_FEATURE_PRI,
};
/* adsp feature ID list */
enum adsp_feature_id {
SYSTEM_FEATURE_ID = 0,
ADSP_LOGGER_FEATURE_ID = 1,
AURISYS_FEATURE_ID = 2,
AUDIO_CONTROLLER_FEATURE_ID = 3,
PRIMARY_FEATURE_ID = 4,
FAST_FEATURE_ID = 5,
DEEPBUF_FEATURE_ID = 6,
OFFLOAD_FEATURE_ID = 7,
AUDIO_PLAYBACK_FEATURE_ID = 8,
AUDIO_MUSIC_FEATURE_ID = 9,
RESERVED0_FEATURE_ID = 10,
RESERVED1_FEATURE_ID = 11,
CAPTURE_UL1_FEATURE_ID = 12,
AUDIO_DATAPROVIDER_FEATURE_ID = 13,
VOICE_CALL_FEATURE_ID = 14,
VOIP_FEATURE_ID = 15,
SPK_PROTECT_FEATURE_ID = 16,
CALL_FINAL_FEATURE_ID = 17,
A2DP_PLAYBACK_FEATURE_ID = 18,
KTV_FEATURE_ID = 19,
CAPTURE_RAW_FEATURE_ID = 20,
FM_ADSP_FEATURE_ID = 21,
VOICE_CALL_SUB_FEATURE_ID = 22,
BLE_CALL_DL_FEATURE_ID = 27,
BLE_CALL_UL_FEATURE_ID = 28,
ADSP_NUM_FEATURE_ID,
};
enum {
DEREGI_FLAG_NODELAY = 1 << 0,
};
struct adsp_feature_control {
int total;
unsigned int feature_set; /* from dts */
struct mutex lock;
struct workqueue_struct *wq;
struct delayed_work suspend_work;
int delay_ms;
int (*suspend)(void);
int (*resume)(void);
};
ssize_t adsp_dump_feature_state(u32 cid, char *buffer, int size);
int adsp_get_feature_index(const char *str);
bool is_feature_in_set(u32 cid, u32 fid);
bool adsp_feature_is_active(u32 cid);
bool is_adsp_feature_in_active(void);
bool flush_suspend_work(u32 cid);
int _adsp_register_feature(u32 cid, u32 fid, u32 opt);
int _adsp_deregister_feature(u32 cid, u32 fid, u32 opt);
int init_adsp_feature_control(u32 cid, u32 feature_set, int delay_ms,
struct workqueue_struct *wq,
int (*_suspend)(void),
int (*_resume)(void));
#endif