When setting the sample rate (`es8311_setsamplerate`) and the bits
per sample (`es8311_setbitspersample`), check their return value in
`es8311_configure`. Also, this commit ensures that these functions
are called after `es8311_reset` to avoid these values to be set to
the default values.
The board's microphone uses 24-bit i2s and this commit also fixes
the segmentation fault caused by the audio buffer overflow.
arch/xtensa/src/esp32/esp32_i2s.c: Fix bug regarding 24-bit audio and add AUDIOIOC_STOP to ioctl
drivers/audio/audio_i2s.c: Report number of channels on AUDIOIOC_GETCAPS
in boards/xtensa/esp32/esp32-sparrow-kit:
/configs/nsh/defconfig: Add I2S configs
/src/esp32-sparrow-kit.h: Add the signature of esp32_i2sdev_initialize()
/src/esp32_bringup.c: Add call to esp32_i2sdev_initialize()
Signed-off-by: simonatoaca <simona.alexandra2000@gmail.com>
Whevenever the bit rate is going to be set, it's necessary to first
set the master clock if the underlying device supports it. If it
fails, just return the error code.
According to the struct `mclk_rate_s`, set the default sample rate
to its lowest valid value. This prevents the underlying driver from
setting unsupported values.
- considering simplicity and design assumption, the reset function must work without flaw.
If it fails, there is no way to recover but to reset again. so checking return status does not
bring additional benefit
- There is unnecessary switch inside switch which is making code not too readable
Signed-off-by: mks2183 <manishsharma3134@gmail.com>
Remove TABs
Fix indentation
Fix Multi-line comments
Fix Comments to the Right of Statements.
Fix nuttx coding style
Fix Comments to the Right of Statements.
1. Update all CMakeLists.txt to adapt to new layout
2. Fix cmake build break
3. Update all new file license
4. Fully compatible with current compilation environment(use configure.sh or cmake as you choose)
------------------
How to test
From within nuttx/. Configure:
cmake -B build -DBOARD_CONFIG=sim/nsh -GNinja
cmake -B build -DBOARD_CONFIG=sim:nsh -GNinja
cmake -B build -DBOARD_CONFIG=sabre-6quad/smp -GNinja
cmake -B build -DBOARD_CONFIG=lm3s6965-ek/qemu-flat -GNinja
(or full path in custom board) :
cmake -B build -DBOARD_CONFIG=$PWD/boards/sim/sim/sim/configs/nsh -GNinja
This uses ninja generator (install with sudo apt install ninja-build). To build:
$ cmake --build build
menuconfig:
$ cmake --build build -t menuconfig
--------------------------
2. cmake/build: reformat the cmake style by cmake-format
https://github.com/cheshirekow/cmake_format
$ pip install cmakelang
$ for i in `find -name CMakeLists.txt`;do cmake-format $i -o $i;done
$ for i in `find -name *\.cmake`;do cmake-format $i -o $i;done
Co-authored-by: Matias N <matias@protobits.dev>
Signed-off-by: chao an <anchao@xiaomi.com>
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT, dev->volume);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2735:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT, priv->volume);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2736:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN1, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2737:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN2, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2755:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2757:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN1,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2759:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN2,
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2764:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_OUT, priv->volume);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2765:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN1, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: audio/cxd56.c:2766:34: error: implicit conversion from enumeration type 'enum cxd56_audio_volid_e' to different enumeration type 'enum cxd56_vol_id_e' [-Werror,-Wenum-conversion]
cxd56_set_volume(CXD56_AUDIO_VOLID_MIXER_IN2, 0);
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
1.Don't check the return value of nxsem_init or nxmutex_init
2.Fix some style issue
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Set the mclk frequency on I2S lower half by 1) checking supported
sample rate, data width and mclk multiplier table and 2) setting
this value using the I2S_MCLKFREQUENCY macro. I2S driver may or
may not implement the i2s_mclkfrequency method for setting the
master clock.
functionality. In function "wm8904_hw_reset" the priv->balance
is initialized with b16HALF, indicating a range from
0 to b16ONE. In function "wm8904_setvolume" the assumed
range for priv->balance is between 0 and 1000. The changes
now make this consistent for 0 to b16ONE-1. Furthermore,
in wm8904_configure the change of balance was not implemented.