Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add NDP PM support using PCLK method #6452

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions apps/examples/wakerec/wakerec.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
#include <iostream>
#include <memory>

#include <tinyara/pm/pm.h>

using namespace std;
using namespace media;
using namespace media::stream;
Expand Down Expand Up @@ -87,6 +89,9 @@ class _Observer : public media::MediaPlayerObserverInterface, public std::enable
printf("###################################\n");

sd->startKeywordDetect();

/* Now that we finished playback, we can go to sleep */
pm_resume(PM_IDLE_DOMAIN);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use pm_domain_register()

}
void onPlaybackError(media::MediaPlayer &mediaPlayer, media::player_error_t error) override
{
Expand Down Expand Up @@ -170,6 +175,8 @@ class SpeechDetectorListener : public media::voice::SpeechDetectorListenerInterf
{
printf("#### onSpeechDetectionListener\n");
if (event == SPEECH_DETECT_KD) {
/* take wakelock as soon as possible, and we hold it until we play recorded data */
pm_suspend(PM_IDLE_DOMAIN);
printf("Event SPEECH_DETECT_KD\n");
printf("#### [SD] keyword detected.\n");
if (gBuffer) {
Expand Down Expand Up @@ -273,6 +280,9 @@ int wakerec_main(int argc, char *argv[])
}
}
sd->startKeywordDetect();

/* similar to wake lock, we release wake lock as we started our thread */
pm_resume(PM_IDLE_DOMAIN);

while (1) {
sleep(67);
Expand Down
59 changes: 42 additions & 17 deletions build/configs/rtl8730e/audio/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ CONFIG_ARCH_HAVE_LOWVECTORS=y
CONFIG_ARCH_LOWVECTORS=y
# CONFIG_ARCH_ROMPGTABLE is not set
CONFIG_ARCH_HAVE_TICKSUPPRESS=y
CONFIG_ARM_HAVE_WFE_SEV=y

#
# Exception stack options
Expand Down Expand Up @@ -165,7 +164,7 @@ CONFIG_AMEBASMART_SPI_EXCHANGE=y
# CONFIG_SPI_CS is not set
CONFIG_AMEBASMART_I2C=y
CONFIG_AMEBASMART_I2C0=y
# CONFIG_AMEBASMART_I2C1 is not set
CONFIG_AMEBASMART_I2C1=y
CONFIG_AMEBASMART_I2C2=y
# CONFIG_AMEBASMART_I2C_DYNTIMEO is not set
CONFIG_AMEBASMART_I2CTIMEOSEC=0
Expand Down Expand Up @@ -235,6 +234,7 @@ CONFIG_ARCH_STACKDUMP=y
CONFIG_ARCH_STACKDUMP_MAX_LENGTH=0
# CONFIG_ENDIAN_BIG is not set
# CONFIG_ARCH_IDLE_CUSTOM is not set
# CONFIG_ARCH_CUSTOM_PMINIT is not set
# CONFIG_ARCH_HAVE_RAMFUNCS is not set
# CONFIG_ARCH_HAVE_RAMVECTORS is not set
# CONFIG_SUPPRESS_INTERRUPTS is not set
Expand Down Expand Up @@ -307,9 +307,11 @@ CONFIG_FLASH_STATUS_BITS=0x28
CONFIG_FLASH_VSTART=0x8000000
# CONFIG_BOARD_FLASH_8M is not set
CONFIG_BOARD_FLASH_16M=y
# CONFIG_BOARD_FLASH_32M is not set
CONFIG_RTL8730E_BOARD_REVISION=6
CONFIG_RAM_DDR=y
# CONFIG_RAM_PSRAM is not set
# CONFIG_RAM_DDR is not set
CONFIG_RAM_PSRAM=y
CONFIG_USERFS_MNTPT="/mnt"

#
# SPI Flash driver
Expand Down Expand Up @@ -374,7 +376,7 @@ CONFIG_SECURITY_LEVEL=y
# Clocks and Timers
#
CONFIG_SCHED_TICKSUPPRESS=y
# CONFIG_SCHED_WAKEUPSOURCE is not set
CONFIG_SCHED_WAKEUPSOURCE=y
CONFIG_USEC_PER_TICK=1000
CONFIG_SYSTEM_TIME64=y
CONFIG_CLOCK_MONOTONIC=y
Expand Down Expand Up @@ -469,7 +471,7 @@ CONFIG_MQ_MAXMSGSIZE=600
#
# Stack size information
#
CONFIG_IDLETHREAD_STACKSIZE=1024
CONFIG_IDLETHREAD_STACKSIZE=8192
CONFIG_USERMAIN_STACKSIZE=2048
# CONFIG_MPU_STACKGAURD is not set
CONFIG_PTHREAD_STACK_MIN=256
Expand Down Expand Up @@ -533,8 +535,8 @@ CONFIG_AUDIO_KEYWORD_DETECT=y
# CONFIG_AUDIO_NULL is not set
# CONFIG_AUDIO_CX20921 is not set
# CONFIG_AUDIO_ALC1019 is not set
CONFIG_AUDIO_SYU645B=y
CONFIG_AUDIO_NDP120=y
CONFIG_AUDIO_SYU645B=y
# CONFIG_AUDIO_TAS5749 is not set
# CONFIG_DRIVERS_VIDEO is not set

Expand Down Expand Up @@ -935,6 +937,7 @@ CONFIG_NET_SECURITY_TLS=y
CONFIG_TLS_WITH_HW_ACCEL=y
CONFIG_TLS_MPI_MAX_SIZE=512
# CONFIG_TLS_HAVE_NO_TIME_DATE is not set
# CONFIG_MBEDTLS_PKCS5_C is not set

#
# HW Options
Expand Down Expand Up @@ -1064,10 +1067,6 @@ CONFIG_BUFFER_DATASOURCE_STREAM_BUFFER_SIZE=4096
CONFIG_BUFFER_DATASOURCE_STREAM_BUFFER_THRESHOLD=1
CONFIG_HANDLER_STREAM_BUFFER_SIZE=4096
CONFIG_HANDLER_STREAM_BUFFER_THRESHOLD=2048
CONFIG_AUDIO_CODEC=y
CONFIG_AUDIO_CODEC_RINGBUFFER_SIZE=16384
# CONFIG_CODEC_AAC is not set
CONFIG_CODEC_MP3=y

#
# File Systems
Expand Down Expand Up @@ -1104,6 +1103,7 @@ CONFIG_FS_AUTOMOUNT_PROCFS=y
# CONFIG_FS_PROCFS_EXCLUDE_MTD is not set
# CONFIG_FS_PROCFS_EXCLUDE_PARTITIONS is not set
# CONFIG_FS_PROCFS_EXCLUDE_SMARTFS is not set
# CONFIG_FS_PROCFS_EXCLUDE_POWER is not set
# CONFIG_FS_ROMFS is not set
CONFIG_FS_TMPFS=y

Expand Down Expand Up @@ -1203,7 +1203,7 @@ CONFIG_SCHED_WORKQUEUE=y
#
CONFIG_SCHED_HPWORK=y
CONFIG_SCHED_HPWORKPRIORITY=201
CONFIG_SCHED_HPWORKSTACKSIZE=2048
CONFIG_SCHED_HPWORKSTACKSIZE=8192
CONFIG_SCHED_LPWORK=y
CONFIG_SCHED_LPNTHREADS=1
CONFIG_SCHED_LPWORKPRIORITY=50
Expand All @@ -1214,7 +1214,14 @@ CONFIG_SCHED_LPWORKSTACKSIZE=2048
#
# Power Management
#
# CONFIG_PM is not set
CONFIG_PM=y
# CONFIG_PM_METRICS is not set
CONFIG_PM_NDOMAINS=32
# CONFIG_PM_DVFS is not set
CONFIG_PM_TICKSUPPRESS=y
CONFIG_PM_TIMEDWAKEUP=y
CONFIG_PM_SLEEP_ENTRY_WAIT_MS=10
CONFIG_PM_DOMAIN_NAME_SIZE=32

#
# Debug Options
Expand Down Expand Up @@ -1377,6 +1384,10 @@ CONFIG_LIBCXX_HAVE_LIBSUPCXX=y
#
# External Libraries
#
CONFIG_AUDIO_CODEC=y
CONFIG_AUDIO_CODEC_RINGBUFFER_SIZE=16384
# CONFIG_CODEC_AAC is not set
CONFIG_CODEC_MP3=y
# CONFIG_AVS_DEVICE_SDK is not set
# CONFIG_AWS_SDK is not set
# CONFIG_NETUTILS_CODECS is not set
Expand Down Expand Up @@ -1416,6 +1427,17 @@ CONFIG_NETUTILS_JSON=y
# CONFIG_PROTOBUF is not set
# CONFIG_LWM2M_WAKAAMA is not set
# CONFIG_WIFI_MBOX is not set
CONFIG_CODEC_LIBOPUS=y

#
# OPUS Config Parameters
#
# CONFIG_OPUS_APPLICATION_VOIP is not set
CONFIG_OPUS_APPLICATION_AUDIO=y
# CONFIG_OPUS_APPLICATION_RESTRICTED_LOWDELAY is not set
CONFIG_OPUS_ENCODE_COMPLEXITY=5
CONFIG_OPUS_ENCODE_FRAMESIZE=100
CONFIG_OPUS_ENCODE_BITRATE=16000
CONFIG_STRESS_TOOL=y
CONFIG_VOICE_SOFTWARE_EPD=y
CONFIG_VOICE_SOFTWARE_EPD_FRAMESIZE=256
Expand All @@ -1429,6 +1451,7 @@ CONFIG_LIB_MINIZ=y
# CONFIG_EXTERNAL_TFMICRO is not set
# CONFIG_EXTERNAL_CMSIS_DSP is not set
# CONFIG_EXTERNAL_CMSIS_NN is not set
# CONFIG_EXTERNAL_ONERT_MICRO is not set

#
# Binary Loader
Expand All @@ -1449,14 +1472,16 @@ CONFIG_COMPRESSION_TYPE=2
# Application entry point list
#
# CONFIG_ENTRY_MANUAL is not set
CONFIG_ENTRY_HELLO=y
# CONFIG_ENTRY_SOUNDPLAYER is not set
# CONFIG_ENTRY_HELLO is not set
CONFIG_ENTRY_WAKEREC=y
CONFIG_USER_ENTRYPOINT="hello_main"
CONFIG_USER_ENTRYPOINT="wakerec_main"
CONFIG_BUILTIN_APPS=y

#
# Examples
#
CONFIG_EXAMPLES_SOUNDPLAYER=y
# CONFIG_EXAMPLES_AVS_TEST is not set
# CONFIG_EXAMPLES_AWS is not set
# CONFIG_EXAMPLES_BLE_PERFS is not set
Expand All @@ -1466,7 +1491,6 @@ CONFIG_BUILTIN_APPS=y
#
# Board Specific Demos
#
# CONFIG_EXAMPLES_AMEBA_MIPI is not set
# CONFIG_EXAMPLES_SSTORAGE is not set
# CONFIG_EXAMPLES_WIFICSI is not set
# CONFIG_EXAMPLES_CONNECT_TEST is not set
Expand Down Expand Up @@ -1495,6 +1519,7 @@ CONFIG_EXAMPLES_HELLO=y
# CONFIG_EXAMPLES_KERNEL_SAMPLE is not set
# CONFIG_EXAMPLES_KERNEL_UPDATE is not set
# CONFIG_EXAMPLES_LCD is not set
# CONFIG_EXAMPLES_LED is not set

#
# Libcoap
Expand All @@ -1505,7 +1530,6 @@ CONFIG_EXAMPLES_HELLO=y
# CONFIG_EXAMPLES_MEDIAPLAYER is not set
# CONFIG_EXAMPLES_MEDIARECORDER is not set
# CONFIG_EXAMPLES_MEDIASTREAMER is not set
CONFIG_EXAMPLES_SOUNDPLAYER=y
# CONFIG_EXAMPLES_MEMORY_FRAGMENTATION_TEST is not set
# CONFIG_EXAMPLES_NETTEST is not set

Expand All @@ -1518,6 +1542,7 @@ CONFIG_EXAMPLES_SOUNDPLAYER=y
# CONFIG_EXAMPLES_TLS_BENCHMARK is not set
# CONFIG_EXAMPLES_TLS_HANDSHAKE is not set
# CONFIG_EXAMPLES_TLS_SECLINK is not set
# CONFIG_EXAMPLES_POWER is not set

#
# Protocol Buffer
Expand Down
Loading