audio_client
ret = q6asm_run_nowait(prtd->audio_client, prtd->stream_id,
ret = q6asm_cmd_nowait(prtd->audio_client, prtd->stream_id,
ret = q6asm_cmd_nowait(prtd->audio_client, prtd->stream_id,
q6asm_write_async(prtd->audio_client, prtd->stream_id,
q6asm_read(prtd->audio_client, prtd->stream_id);
if (!prtd || !prtd->audio_client) {
q6asm_cmd(prtd->audio_client, prtd->stream_id, CMD_CLOSE);
prtd->audio_client);
ret = q6asm_map_memory_regions(substream->stream, prtd->audio_client,
ret = q6asm_open_write(prtd->audio_client, prtd->stream_id,
ret = q6asm_open_read(prtd->audio_client, prtd->stream_id,
prtd->session_id = q6asm_get_session_id(prtd->audio_client);
prtd->audio_client, prtd->stream_id,
ret = q6asm_enc_cfg_blk_pcm_format_support(prtd->audio_client,
q6asm_read(prtd->audio_client, prtd->stream_id);
q6asm_cmd(prtd->audio_client, prtd->stream_id, CMD_CLOSE);
q6asm_unmap_memory_regions(substream->stream, prtd->audio_client);
q6asm_audio_client_free(prtd->audio_client);
prtd->audio_client = NULL;
ret = q6asm_write_async(prtd->audio_client, prtd->stream_id,
ret = q6asm_run_nowait(prtd->audio_client, prtd->stream_id,
ret = q6asm_cmd_nowait(prtd->audio_client, prtd->stream_id,
ret = q6asm_cmd_nowait(prtd->audio_client, prtd->stream_id,
prtd->audio_client = q6asm_audio_client_alloc(dev,
if (IS_ERR(prtd->audio_client)) {
ret = PTR_ERR(prtd->audio_client);
if (prtd->audio_client) {
q6asm_cmd(prtd->audio_client, prtd->stream_id,
prtd->audio_client);
q6asm_audio_client_free(prtd->audio_client);
prtd->audio_client = NULL;
ptr = q6asm_get_hw_pointer(prtd->audio_client, substream->stream) * runtime->period_size;
q6asm_stream_remove_initial_silence(prtd->audio_client,
q6asm_write_async(prtd->audio_client, prtd->stream_id,
q6asm_cmd_nowait(prtd->audio_client,
q6asm_stream_remove_trailing_silence(prtd->audio_client,
q6asm_write_async(prtd->audio_client, prtd->stream_id,
q6asm_cmd_nowait(prtd->audio_client,
prtd->audio_client = q6asm_audio_client_alloc(dev,
if (IS_ERR(prtd->audio_client)) {
ret = PTR_ERR(prtd->audio_client);
q6asm_audio_client_free(prtd->audio_client);
if (prtd->audio_client) {
q6asm_cmd(prtd->audio_client, prtd->stream_id,
struct audio_client *audio_client;
q6asm_cmd(prtd->audio_client,
prtd->audio_client);
q6asm_audio_client_free(prtd->audio_client);
prtd->audio_client = NULL;
ret = q6asm_stream_media_format_block_flac(prtd->audio_client,
prtd->audio_client, stream_id,
prtd->audio_client, stream_id,
ret = q6asm_stream_media_format_block_alac(prtd->audio_client,
ret = q6asm_stream_media_format_block_ape(prtd->audio_client,
if (!prtd || !prtd->audio_client) {
ret = q6asm_open_write(prtd->audio_client, prtd->stream_id, params->codec.id,
prtd->session_id = q6asm_get_session_id(prtd->audio_client);
ret = q6asm_map_memory_regions(dir, prtd->audio_client, prtd->phys,
q6asm_cmd(prtd->audio_client, prtd->stream_id, CMD_CLOSE);
q6asm_audio_client_free(prtd->audio_client);
prtd->audio_client = NULL;
ret = q6asm_open_write(prtd->audio_client,
ret = q6asm_stream_remove_initial_silence(prtd->audio_client,
static int __q6asm_run(struct audio_client *ac, uint32_t stream_id,
int q6asm_run(struct audio_client *ac, uint32_t stream_id, uint32_t flags,
int q6asm_run_nowait(struct audio_client *ac, uint32_t stream_id,
int q6asm_media_format_block_multi_ch_pcm(struct audio_client *ac,
int q6asm_stream_media_format_block_flac(struct audio_client *ac,
int q6asm_stream_media_format_block_wma_v9(struct audio_client *ac,
int q6asm_stream_media_format_block_wma_v10(struct audio_client *ac,
int q6asm_stream_media_format_block_alac(struct audio_client *ac,
int q6asm_stream_media_format_block_ape(struct audio_client *ac,
static int q6asm_stream_remove_silence(struct audio_client *ac, uint32_t stream_id,
int q6asm_stream_remove_initial_silence(struct audio_client *ac,
int q6asm_stream_remove_trailing_silence(struct audio_client *ac, uint32_t stream_id,
int q6asm_enc_cfg_blk_pcm_format_support(struct audio_client *ac,
int q6asm_read(struct audio_client *ac, uint32_t stream_id)
static int __q6asm_open_read(struct audio_client *ac, uint32_t stream_id,
int q6asm_open_read(struct audio_client *ac, uint32_t stream_id,
int q6asm_write_async(struct audio_client *ac, uint32_t stream_id, uint32_t len,
static void q6asm_reset_buf_state(struct audio_client *ac)
static int __q6asm_cmd(struct audio_client *ac, uint32_t stream_id, int cmd,
int q6asm_cmd(struct audio_client *ac, uint32_t stream_id, int cmd)
int q6asm_cmd_nowait(struct audio_client *ac, uint32_t stream_id, int cmd)
struct audio_client *session[MAX_SESSIONS + 1];
static inline void q6asm_add_hdr(struct audio_client *ac, struct apr_hdr *hdr,
static int q6asm_apr_send_session_pkt(struct q6asm *a, struct audio_client *ac,
static int __q6asm_memory_unmap(struct audio_client *ac,
static void q6asm_audio_client_free_buf(struct audio_client *ac,
int q6asm_unmap_memory_regions(unsigned int dir, struct audio_client *ac)
static int __q6asm_memory_map_regions(struct audio_client *ac, int dir,
int q6asm_map_memory_regions(unsigned int dir, struct audio_client *ac,
struct audio_client *ac;
ac = container_of(ref, struct audio_client, refcount);
void q6asm_audio_client_free(struct audio_client *ac)
static struct audio_client *q6asm_get_audio_client(struct q6asm *a,
struct audio_client *ac = NULL;
int q6asm_get_hw_pointer(struct audio_client *ac, unsigned int dir)
struct audio_client *ac;
struct audio_client *ac = NULL;
int q6asm_get_session_id(struct audio_client *c)
struct audio_client *q6asm_audio_client_alloc(struct device *dev, q6asm_cb cb,
struct audio_client *ac;
static int q6asm_ac_send_cmd_sync(struct audio_client *ac, struct apr_pkt *pkt)
int q6asm_open_write(struct audio_client *ac, uint32_t stream_id,
int q6asm_open_write(struct audio_client *ac, uint32_t stream_id,
int q6asm_open_read(struct audio_client *ac, uint32_t stream_id,
int q6asm_enc_cfg_blk_pcm_format_support(struct audio_client *ac,
int q6asm_read(struct audio_client *ac, uint32_t stream_id);
int q6asm_media_format_block_multi_ch_pcm(struct audio_client *ac,
int q6asm_stream_media_format_block_flac(struct audio_client *ac,
int q6asm_stream_media_format_block_wma_v9(struct audio_client *ac,
int q6asm_stream_media_format_block_wma_v10(struct audio_client *ac,
int q6asm_stream_media_format_block_alac(struct audio_client *ac,
int q6asm_stream_media_format_block_ape(struct audio_client *ac,
int q6asm_run(struct audio_client *ac, uint32_t stream_id, uint32_t flags,
int q6asm_run_nowait(struct audio_client *ac, uint32_t stream_id,
int q6asm_stream_remove_initial_silence(struct audio_client *ac,
int q6asm_stream_remove_trailing_silence(struct audio_client *ac,
int q6asm_cmd(struct audio_client *ac, uint32_t stream_id, int cmd);
int q6asm_cmd_nowait(struct audio_client *ac, uint32_t stream_id, int cmd);
int q6asm_get_session_id(struct audio_client *c);
struct audio_client *ac,
int q6asm_unmap_memory_regions(unsigned int dir, struct audio_client *ac);
int q6asm_get_hw_pointer(struct audio_client *ac, unsigned int dir);
struct audio_client;
struct audio_client *q6asm_audio_client_alloc(struct device *dev,
void q6asm_audio_client_free(struct audio_client *ac);
int q6asm_write_async(struct audio_client *ac, uint32_t stream_id, uint32_t len,