static void audrec_dsp_event(void *data, unsigned id, size_t len, void (*getevent)(void *ptr, size_t len)) { struct audio_in *audio = data; uint16_t msg[3]; getevent(msg, sizeof(msg)); switch (id) { case AUDREC_MSG_CMD_CFG_DONE_MSG: if (msg[0] & AUDREC_MSG_CFG_DONE_TYPE_0_UPDATE) { if (msg[0] & AUDREC_MSG_CFG_DONE_TYPE_0_ENA) { MM_INFO("CFG ENABLED\n"); audio_in_encoder_config(audio); } else { MM_INFO("CFG SLEEP\n"); audio->running = 0; audio->tx_agc_enable = 0; audio->ns_enable = 0; audio->iir_enable = 0; } } else { MM_INFO("CMD_CFG_DONE %x\n", msg[0]); } break; case AUDREC_MSG_CMD_AREC_PARAM_CFG_DONE_MSG: { MM_INFO("PARAM CFG DONE\n"); audio->running = 1; audio_dsp_set_tx_agc(audio); audio_dsp_set_ns(audio); audio_dsp_set_iir(audio); break; } case AUDREC_MSG_FATAL_ERR_MSG: MM_ERR("ERROR %x\n", msg[0]); break; case AUDREC_MSG_PACKET_READY_MSG: /* REC_DBG("type %x, count %d", msg[0], (msg[1] | (msg[2] << 16))); */ audio_in_get_dsp_frames(audio); break; case ADSP_MESSAGE_ID: MM_DBG("Received ADSP event: module \ enable/disable(audrectask)\n"); break; default: MM_ERR("unknown event %d\n", id); } }
static void audrec_dsp_event(void *data, unsigned id, size_t len, void (*getevent)(void *ptr, size_t len)) { struct audio_in *audio = data; uint16_t msg[3]; getevent(msg, sizeof(msg)); switch (id) { case AUDREC_MSG_CMD_CFG_DONE_MSG: if (msg[0] & AUDREC_MSG_CFG_DONE_TYPE_0_UPDATE) { if (msg[0] & AUDREC_MSG_CFG_DONE_TYPE_0_ENA) { pr_info("audpre: CFG ENABLED\n"); audio_dsp_set_agc(audio); audio_dsp_set_ns(audio); audio_dsp_set_tx_iir(audio); audio_in_encoder_config(audio); } else { pr_info("audrec: CFG SLEEP\n"); audio->running = 0; } } else { pr_info("audrec: CMD_CFG_DONE %x\n", msg[0]); } break; case AUDREC_MSG_CMD_AREC_PARAM_CFG_DONE_MSG: { pr_info("audrec: PARAM CFG DONE\n"); audio->running = 1; break; } case AUDREC_MSG_FATAL_ERR_MSG: pr_err("audrec: ERROR %x\n", msg[0]); break; case AUDREC_MSG_PACKET_READY_MSG: /*REC_DBG("type %x, count %d", msg[0], (msg[1] | (msg[2] << 16)));*/ audio_in_get_dsp_frames(audio); break; case ADSP_MESSAGE_ID: pr_info("audrec: module enabled\n"); break; default: pr_err("audrec: unknown event %d\n", id); } }