Commit Graph

188 Commits

Author SHA1 Message Date
Xiang Xiao 2e54df0f35 Don't include assert.h from public header file
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-06-03 08:36:03 -07:00
Masayuki Ishikawa 822002d347 drivers: audio: Apply CXD56_PHYSADDR to cxd56.c
Summary:
- This commit converts data to the physical address for DMA transfer.

Impact:
- cxd56.c only

Testing
- Tested with nxplayer and nxrecorder

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-06-02 22:13:10 -05:00
Xiang Xiao d7f96003cf Don't include debug.h from public header file
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-06-01 06:42:02 +09:00
Alin Jerpelea 13e4f9b6b2 drivers: update licenses to Apache
Gregory Nutt is the copyright holder for those files and he has submitted the
SGA as a result we can migrate the licenses to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-05-31 02:58:08 -05:00
Xiang Xiao 001e7c3e76 sched: Don't include nuttx/sched.h inside sched.h
But let nuttx/sched.h include sched.h instead to
avoid expose nuttx kernel API to userspace.

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-05-24 12:11:53 +09:00
Xiang Xiao 3f9908f7d1 Remove the unnecessary math.h inclusion
or move from header file to source file since math.h doesn't always exist

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-04-12 22:58:23 -04:00
Alin Jerpelea 231b8518b7 NuttX: Ken Pettit: update licenses to Apache
Ken Pettit has submitted the ICLA and we can migrate the licenses
 to Apache.

Sebastien Lorquet has submitted the ICLA and we can migrate the licenses
 to Apache.

Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-04-10 06:42:19 -05:00
Alin Jerpelea e699b6f85f misc: : Author Gregory Nutt: update licenses to Apache
Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Several files were missed in the past

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-28 13:34:50 -07:00
Alin Jerpelea 5e6d58dd03 drivers: Alan Carvalho de Assis: update licenses to Apache
Alan Carvalho de Assis has submitted the SGA and we can migrate the licenses
 to Apache.

Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-13 05:56:43 -08:00
Alin Jerpelea ccff570e6f drivers: nxstyle fixes
nxstyle fixes to pass the CI.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-04 18:32:27 -08:00
Alin Jerpelea e5b6305f4a drivers: Author Gregory Nutt: update licenses to Apache
Gregory Nutt has submitted the SGA and we can migrate the licenses
 to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-03-04 18:32:27 -08:00
Xiang Xiao 9473434587 Ensure the kernel component don't call userspace API
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-03-01 09:23:09 +09:00
Gustavo Henrique Nihei 55d66f60a3 drivers: Fix typos reported by codespell 2021-02-25 18:57:18 -08:00
Masayuki Ishikawa 1dc77c2ec5 drivers: audio: Introduce a driver-specific spinlock to cxd56.c
Summary:
- This commit introduces a driver-specific spinlock to cxd56.c
  to improve performance in SMP mode.

Impact:
- cxd56.c in SMP mode only

Testing:
- Tested with nxplayer and nxrecorder with the following configs
- spresense:wifi, spresense:wifi_smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-02-15 01:54:44 -08:00
Masayuki Ishikawa d87f350831 arch, boards, drivers, include, sched, wireless: Change spinlock APIs.
Summary:
- This commit changes spinlock APIs (spin_lock_irqsave/spin_unlock_irqrestore)
- In the previous implementation, the global spinlock (i.e. g_irq_spin) was used.
- This commit allows to use caller specific spinlock but also supports to use
  g_irq_spin for backword compatibility (In this case, NULL must be specified)

Impact:
- None

Testing:
- Tested with the following configurations
- spresnse:wifi, spresense:wifi_smp
- esp32-devkitc:smp (QEMU), sabre6-quad:smp (QEMU)
- maxi-bit:smp (QEMU), sim:smp
- stm32f4discovery:wifi

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2021-02-07 21:28:56 -08:00
Alin Jerpelea f22683a0a6 drivers: replace licenses with Apache 2.0
This change is a license change to Apache 2.0 license.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-01-26 05:11:58 -08:00
ligd f63db66382 mqueue: add file_mq_xx for kernel use
Change-Id: Ida12f5938388cca2f233a4cde90277a218033645
Signed-off-by: ligd <liguiding1@xiaomi.com>
2021-01-05 02:40:43 -06:00
YAMAMOTO Takashi 2d78501e9a drivers/audio/audio_null.c: Fix a syslog format 2020-12-06 07:41:37 -06:00
YAMAMOTO Takashi bdabaa87c6 drivers/audio/cs43l22.c: Fix a syslog format 2020-11-30 05:28:17 -06:00
Huang Qi f0e8d10d1a drivers/audio: Make audio_null play at real speed
N/A
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
Change-Id: I69a52ee2b03836006f613c4dc41837b6123ad2d5
2020-11-30 03:30:30 -06:00
Chaochao Cui fbb3cd660b add simple wm8994 codec driver 2020-11-28 10:23:40 -03:00
YAMAMOTO Takashi b3d39176bc drivers/audio/cxd56.c: Fix syslog formats 2020-11-27 05:18:57 -06:00
Tobias Johansson c06c6ffa81 cxd56: add initial audio SRC implementation
Add basic sample rate conversion to the CXD56 Spresense audio
driver using libsamplerate. Currently conversion is only done
during playback and all output is fixed at 48 kHz.

Issues:
- 16 kHz SRC has glitches (unless data dump is enabled)
- 44.1 kHz SRC gets stuck
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-11-19 07:29:07 +09:00
YAMAMOTO Takashi 1373f476fb drivers/audio/wm8776.c: Fix a printf format warning 2020-11-16 08:29:00 -08:00
YAMAMOTO Takashi a3b7391dcb drivers/audio/cs4344.c: Fix a printf format warning 2020-11-16 08:29:00 -08:00
YAMAMOTO Takashi 61bf05d26e drivers/audio/vs1053.c: Fix a printf format warning 2020-11-16 08:29:00 -08:00
YAMAMOTO Takashi df86bfd4cd drivers/audio/cs43l22.c: Fix a printf format warning 2020-11-16 08:29:00 -08:00
YAMAMOTO Takashi 950fff8e66 drivers/audio/cxd56.c: Fix a printf format warning 2020-11-16 08:29:00 -08:00
YAMAMOTO Takashi 5ef5d2c598 drivers/audio/audio_null.c: Fix a printf format warning 2020-11-16 08:29:00 -08:00
YAMAMOTO Takashi 2cc96365b0 drivers/audio/wm8904.c: Fix a printf format warning 2020-11-16 08:29:00 -08:00
Tobias Johansson 2cce572162 drivers: audio: cxd56: rename queue status
This commit improves the readability for each state

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-11-06 11:11:27 +09:00
Tobias Johansson 43b21a4693 drivers: audio: cxd56: add I2S debugging
When audio fails it is usefull to have I2S transfer errors in place
to be able to track the issue

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-11-06 11:11:27 +09:00
Tobias Johansson d572b06a6c drivers:audio: cxd56: move helpers to the header file
The Queue helpers should be moved to the header file

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2020-11-06 11:11:27 +09:00
Masayuki Ishikawa 89cfaf1e6a drivers: audio: Fix cxd56.c for SMP
Summary:
- Add spin_unlock_irqrestore to avoid deadlock
- Improve cxd56_resume() sequence
- Remove AUDIO_MSG_USER and call cxd56_stop_dma() for buffering
- Remove redandant 'Lock interrupt' and 'Unlock interrupt'

Impact:
- Affects all use cases with cxd56.c audio driver

Testing:
- Tested with spresense:rndis and spresense:rndis_smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-09-23 10:45:29 +02:00
Xiang Xiao ae356001cf Change all files come from Xiaomi/Pinecone to Apache License 2.0
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-08-22 17:37:21 -06:00
SPRESENSE d560ce65ff cxd56xx: spresense: Add some improvements and fix bugs for Spresense board
- Add new functions of GNSS
- Support the lower PWM frequency
- Add CONFIG_CPUFREQ_RELEASE_LOCK
- Add high speed ADC support
- Add HPADC input gain configuration
- Add eMMC device
- Frame buffer support
- Fix SD/GNSS/sensor drivers not worked
- Build errors
- Fix nxstyle issues
2020-07-28 09:13:05 +02:00
Masayuki Ishikawa b6218c67f8 drivers: audio: Replace license header with Apache License 2.0
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-07-28 00:47:39 -05:00
Xiang Xiao 095e492cb3 libc: Replace nuttx/lib/math.h with math.h
Because user may replace math library with other implementation

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: Idb5f2a8b2a70302c8561553b3bcbc40529b5257f
2020-06-29 06:32:10 +02:00
Matias Nitsche b3327419d3 tone: stop tone using 0 duty, not stop() 2020-06-25 11:04:14 +01:00
Matias Nitsche 10a9464bcf tone: start playing tune immediately without delay 2020-06-25 11:04:14 +01:00
Masayuki Ishikawa ae92afd250 drivers: audio: Fix cxd56_stop in cxd56.c
In the previous implementation, cxd56_stop() checked the internal
state before sending AUDIO_MSG_STOP to the message queue. However,
if the worker thread took time to turn on AMP, cxd560_stop() was
not able to send the message and caused a deadlock.

This commit fixes this issue by always sending AUDIO_MSG_STOP
regardless of the internal state.

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-06-16 08:52:40 +02:00
Masayuki Ishikawa 958ddc1926 drivers: audio: Add a buffering feature to cxd56
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-06-10 09:11:15 -03:00
Masayuki Ishikawa 8a60cc01e2 drivers: audio: Send stop message when received the final buffer
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-06-10 09:11:15 -03:00
Ouss4 36f54e280f Fix PR1201 nxstyle issues. 2020-06-05 15:54:17 -03:00
Ouss4 8da4b02350 drivers/audio: Add CS4344 driver. 2020-06-05 15:54:17 -03:00
Tobias Johansson 368fbd0dea cxd56: Fix lock issue in Spresense audio driver
Replace semaphore with spinlock in the DMA buffer handling code
since it is called from an interrupt.
2020-06-05 19:50:27 +08:00
Masayuki Ishikawa 4b9886fa29 drivers: audio: Return -ENOTTY in xxx_ioctl() if not handled
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2020-06-05 12:02:33 +08:00
Tobias Johansson f2c957144a cxd56: Add input support to Spresense audio driver
Add recording support to the Nuttx audio driver for Spresense.
- Supports 16 bit data with 48 kHz sample rate only for now.
- Supports 1 (dual mono) 2 or 4 channels.
- Only analog mics have been tested so digital is considered
  unsupported.
2020-05-08 07:18:22 -06:00
Tobias Johansson 79589eca1a cxd56: replace Sony return values
- Replace Sony error codes with standard ones where possible
- Unify error message and remove some unnecessary info prints
2020-04-21 17:19:52 -06:00
Tobias Johansson ecc4939453 cxd56: fix volume setting and improve volume range
- Setting volume now works except when in paused state
- Volume range decreased to be a little more sane
2020-04-21 17:19:52 -06:00