drivers: audio: Port to the new timeout API
Port the I2S and DMIC drivers to the new timeout API so that they do not need to enable legacy timeouts. Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit is contained in:
parent
8e297e87b3
commit
9ba20dd48e
8 changed files with 20 additions and 15 deletions
|
@ -1346,7 +1346,7 @@ static int dmic_read_device(struct device *dev, u8_t stream,
|
|||
|
||||
/* retrieve buffer from out queue */
|
||||
ret = k_msgq_get(&dmic_private.streams[stream].out_queue,
|
||||
buffer, timeout);
|
||||
buffer, K_MSEC(timeout));
|
||||
if (ret) {
|
||||
LOG_ERR("No buffers in stream %u out_queue", stream);
|
||||
} else {
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#
|
||||
menuconfig I2S
|
||||
bool "I2S bus drivers"
|
||||
select LEGACY_TIMEOUT_API
|
||||
help
|
||||
Enable support for the I2S (Inter-IC Sound) hardware bus.
|
||||
|
||||
|
|
|
@ -779,7 +779,8 @@ static int i2s_cavs_read(struct device *dev, void **mem_block, size_t *size)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
ret = k_msgq_get(&strm->out_queue, &buffer, dev_data->cfg.timeout);
|
||||
ret = k_msgq_get(&strm->out_queue, &buffer,
|
||||
SYS_TIMEOUT_MS(dev_data->cfg.timeout));
|
||||
if (ret != 0) {
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
@ -803,7 +804,8 @@ static int i2s_cavs_write(struct device *dev, void *mem_block, size_t size)
|
|||
|
||||
SOC_DCACHE_FLUSH(mem_block, size);
|
||||
|
||||
ret = k_msgq_put(&strm->in_queue, &mem_block, dev_data->cfg.timeout);
|
||||
ret = k_msgq_put(&strm->in_queue, &mem_block,
|
||||
SYS_TIMEOUT_MS(dev_data->cfg.timeout));
|
||||
if (ret) {
|
||||
LOG_ERR("k_msgq_put failed %d", ret);
|
||||
return ret;
|
||||
|
|
|
@ -384,7 +384,7 @@ static int i2s_stm32_read(struct device *dev, void **mem_block, size_t *size)
|
|||
|
||||
if (dev_data->rx.state != I2S_STATE_ERROR) {
|
||||
ret = k_sem_take(&dev_data->rx.sem,
|
||||
K_MSEC(dev_data->rx.cfg.timeout));
|
||||
SYS_TIMEOUT_MS(dev_data->rx.cfg.timeout));
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
|
@ -410,7 +410,8 @@ static int i2s_stm32_write(struct device *dev, void *mem_block, size_t size)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
ret = k_sem_take(&dev_data->tx.sem, K_MSEC(dev_data->tx.cfg.timeout));
|
||||
ret = k_sem_take(&dev_data->tx.sem,
|
||||
SYS_TIMEOUT_MS(dev_data->tx.cfg.timeout));
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -840,7 +840,8 @@ static int i2s_sam_read(struct device *dev, void **mem_block, size_t *size)
|
|||
}
|
||||
|
||||
if (dev_data->rx.state != I2S_STATE_ERROR) {
|
||||
ret = k_sem_take(&dev_data->rx.sem, dev_data->rx.cfg.timeout);
|
||||
ret = k_sem_take(&dev_data->rx.sem,
|
||||
SYS_TIMEOUT_MS(dev_data->rx.cfg.timeout));
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
|
@ -866,7 +867,8 @@ static int i2s_sam_write(struct device *dev, void *mem_block, size_t size)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
ret = k_sem_take(&dev_data->tx.sem, dev_data->tx.cfg.timeout);
|
||||
ret = k_sem_take(&dev_data->tx.sem,
|
||||
SYS_TIMEOUT_MS(dev_data->tx.cfg.timeout));
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -273,7 +273,8 @@ static inline int dmic_trigger(struct device *dev, enum dmic_trigger cmd)
|
|||
* @param stream Stream identifier
|
||||
* @param buffer Pointer to the received buffer address
|
||||
* @param size Pointer to the received buffer size
|
||||
* @param timeout Timeout value to wait in case audio is not yet received
|
||||
* @param timeout Timeout in milliseconds to wait in case audio is not yet
|
||||
* received, or @ref SYS_FOREVER_MS
|
||||
*
|
||||
* @return 0 on success, a negative error code on failure
|
||||
*/
|
||||
|
|
|
@ -73,7 +73,7 @@ static void audio_driver_process_audio_input(void)
|
|||
int ret;
|
||||
|
||||
/* read capture input buffer */
|
||||
ret = dmic_read(dmic_device, 0, (void **)&mic_in_buf, &size, K_FOREVER);
|
||||
ret = dmic_read(dmic_device, 0, (void **)&mic_in_buf, &size, SYS_FOREVER_MS);
|
||||
if (ret) {
|
||||
LOG_ERR("dmic_device read failed %d", ret);
|
||||
return;
|
||||
|
@ -224,7 +224,7 @@ static void audio_driver_config_host_streams(void)
|
|||
i2s_cfg.frame_clk_freq = AUDIO_SAMPLE_FREQ;
|
||||
i2s_cfg.block_size = HOST_FRAME_BYTES;
|
||||
i2s_cfg.mem_slab = &host_inout_mem_slab;
|
||||
i2s_cfg.timeout = K_NO_WAIT;
|
||||
i2s_cfg.timeout = 0;
|
||||
|
||||
k_mem_slab_init(&host_inout_mem_slab, &audio_buffers.host_inout[0][0],
|
||||
HOST_FRAME_BYTES, HOST_INOUT_BUF_COUNT);
|
||||
|
@ -251,7 +251,7 @@ static void audio_driver_config_periph_streams(void)
|
|||
I2S_OPT_BIT_CLK_SLAVE,
|
||||
.frame_clk_freq = AUDIO_SAMPLE_FREQ,
|
||||
.block_size = SPK_FRAME_BYTES,
|
||||
.timeout = K_NO_WAIT,
|
||||
.timeout = 0,
|
||||
},
|
||||
};
|
||||
struct pcm_stream_cfg stream = {
|
||||
|
@ -318,7 +318,7 @@ static void audio_driver_config_periph_streams(void)
|
|||
i2s_cfg.frame_clk_freq = AUDIO_SAMPLE_FREQ;
|
||||
i2s_cfg.block_size = SPK_FRAME_BYTES;
|
||||
i2s_cfg.mem_slab = &spk_out_mem_slab;
|
||||
i2s_cfg.timeout = K_NO_WAIT;
|
||||
i2s_cfg.timeout = 0;
|
||||
k_mem_slab_init(&spk_out_mem_slab, &audio_buffers.spk_out[0][0],
|
||||
SPK_FRAME_BYTES, SPK_OUT_BUF_COUNT);
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ static void i2s_audio_init(void)
|
|||
i2s_cfg.mem_slab = &i2s_mem_slab;
|
||||
|
||||
/* make the transmit interface non-blocking */
|
||||
i2s_cfg.timeout = K_NO_WAIT;
|
||||
i2s_cfg.timeout = 0;
|
||||
ret = i2s_configure(spk_i2s_dev, I2S_DIR_TX, &i2s_cfg);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("dmic_configure failed with %d error", ret);
|
||||
|
@ -165,7 +165,7 @@ static void i2s_audio_init(void)
|
|||
}
|
||||
|
||||
/* make the receive interface blocking */
|
||||
i2s_cfg.timeout = K_FOREVER;
|
||||
i2s_cfg.timeout = SYS_FOREVER_MS;
|
||||
ret = i2s_configure(host_i2s_dev, I2S_DIR_RX, &i2s_cfg);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("dmic_configure failed with %d error", ret);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue