Files
android_kernel_samsung_sm8750/include/uapi/misc/adsp_sleepmon.h
2025-08-12 22:16:57 +02:00

71 lines
2.5 KiB
C
Executable File

/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
/*
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef __QCOM_ADSPSLEEPMON_H__
#define __QCOM_ADSPSLEEPMON_H__
#include <linux/types.h>
/** Device name for ADSP Sleep monitor */
#define ADSPSLEEPMON_DEVICE_NAME "/dev/msm_adsp_sleepmon"
/** IOCTL for intimating audio activity */
#define ADSPSLEEPMON_IOCTL_AUDIO_ACTIVITY _IOWR('R', 1, struct adspsleepmon_ioctl_audio)
/** IOCTL to runtime disable or re-enable panic on ADSP activity anomaly detection */
#define ADSPSLEEPMON_IOCTL_CONFIGURE_PANIC _IOWR('R', 2, struct adspsleepmon_ioctl_panic)
/** Version used in Audio activity IOCTL */
#define ADSPSLEEPMON_IOCTL_AUDIO_VER_1 1
/** Version used in Panic config IOCTL */
#define ADSPSLEEPMON_IOCTL_CONFIG_PANIC_VER_1 1
/** Reserved fields in the Audio activity IOCTL structure */
#define ADSPSLEEPMON_IOCTL_AUDIO_NUM_RES 3
enum adspsleepmon_ioctl_audio_cmd {
ADSPSLEEPMON_AUDIO_ACTIVITY_START = 1,
/**< Activity start of a non-LPI use case */
ADSPSLEEPMON_AUDIO_ACTIVITY_STOP,
/**< Activity stop of a non-LPI use case */
ADSPSLEEPMON_AUDIO_ACTIVITY_LPI_START,
/**< Activity start of a LPI use case */
ADSPSLEEPMON_AUDIO_ACTIVITY_LPI_STOP,
/**< Activity stop of a LPI use case */
ADSPSLEEPMON_AUDIO_ACTIVITY_RESET,
/**< Notify no ongoing activity (reset activity trackers) */
ADSPSLEEPMON_AUDIO_ACTIVITY_MAX,
/**< Max check for Audio ioctl audio command*/
};
enum adspsleepmon_ioctl_panic_cmd {
ADSPSLEEPMON_DISABLE_PANIC_LPM = 1,
/**< Disable panic on detecting ADSP LPM anomaly */
ADSPSLEEPMON_DISABLE_PANIC_LPI,
/**< Disable panic on detecting ADSP LPI anomaly */
ADSPSLEEPMON_RESET_PANIC_LPM,
/**< Reset panic on detecting ADSP LPM anomaly to default */
ADSPSLEEPMON_RESET_PANIC_LPI,
/**< Reset panic on detecting ADSP LPI anomaly to default */
ADSPSLEEPMON_RESET_PANIC_MAX,
/**< Max check for Audio ioctl panic command*/
};
/** @struct adspsleepmon_ioctl_audio
* Structure to be passed in Audio activity IOCTL
*/
struct adspsleepmon_ioctl_audio {
__u32 version;
/**< Version of the interface */
__u32 command;
/**< One of the supported commands from adspsleepmon_ioctl_audio_cmd */
__u32 reserved[ADSPSLEEPMON_IOCTL_AUDIO_NUM_RES];
/**< Reserved fields for future expansion */
};
struct adspsleepmon_ioctl_panic {
__u32 version;
/**< version of the interface */
__u32 command;
/**< One of the supported commands from adspsleepmon_ioctl_panic_cmd */
};
#endif /* __QCOM_ADSPSLEEPMON_H__ */