dsp: add support for aptX dual mono
Send sync mode parameter to DSP for supporting aptX dual mono. Change-Id: I1c43b0dec6661a77644e28df45ca6c1a182745de Signed-off-by: Aniket Kumar Lata <alata@codeaurora.org>
This commit is contained in:
parent
21d942b0f4
commit
899b78bd18
3 changed files with 53 additions and 0 deletions
|
@ -2249,6 +2249,10 @@ static int msm_dai_q6_afe_enc_cfg_get(struct snd_kcontrol *kcontrol,
|
|||
sizeof(struct asm_aac_enc_cfg_v2_t));
|
||||
break;
|
||||
case ENC_FMT_APTX:
|
||||
memcpy(ucontrol->value.bytes.data + format_size,
|
||||
&dai_data->enc_config.data,
|
||||
sizeof(struct asm_aptx_enc_cfg_t));
|
||||
break;
|
||||
case ENC_FMT_APTX_HD:
|
||||
memcpy(ucontrol->value.bytes.data + format_size,
|
||||
&dai_data->enc_config.data,
|
||||
|
@ -2298,6 +2302,10 @@ static int msm_dai_q6_afe_enc_cfg_put(struct snd_kcontrol *kcontrol,
|
|||
sizeof(struct asm_aac_enc_cfg_v2_t));
|
||||
break;
|
||||
case ENC_FMT_APTX:
|
||||
memcpy(&dai_data->enc_config.data,
|
||||
ucontrol->value.bytes.data + format_size,
|
||||
sizeof(struct asm_aptx_enc_cfg_t));
|
||||
break;
|
||||
case ENC_FMT_APTX_HD:
|
||||
memcpy(&dai_data->enc_config.data,
|
||||
ucontrol->value.bytes.data + format_size,
|
||||
|
|
18
dsp/q6afe.c
18
dsp/q6afe.c
|
@ -2895,6 +2895,24 @@ static int q6afe_send_enc_config(u16 port_id,
|
|||
goto exit;
|
||||
}
|
||||
|
||||
if (format == ASM_MEDIA_FMT_APTX) {
|
||||
config.param.payload_size =
|
||||
payload_size + sizeof(config.port.sync_mode_param);
|
||||
pr_debug("%s: sending AFE_PARAM_ID_APTX_SYNC_MODE to DSP",
|
||||
__func__);
|
||||
config.pdata.param_id = AFE_PARAM_ID_APTX_SYNC_MODE;
|
||||
config.pdata.param_size = sizeof(config.port.sync_mode_param);
|
||||
config.port.sync_mode_param.sync_mode =
|
||||
config.port.enc_blk_param.enc_blk_config.aptx_config.
|
||||
aptx_v2_cfg.sync_mode;
|
||||
ret = afe_apr_send_pkt(&config, &this_afe.wait[index]);
|
||||
if (ret) {
|
||||
pr_err("%s: AFE_PARAM_ID_APTX_SYNC_MODE for port 0x%x failed %d\n",
|
||||
__func__, port_id, ret);
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
config.param.payload_size =
|
||||
payload_size + sizeof(config.port.enc_pkt_id_param);
|
||||
pr_debug("%s:sending AFE_ENCODER_PARAM_ID_PACKETIZER to DSP payload = %d",
|
||||
|
|
|
@ -3074,6 +3074,16 @@ struct afe_param_id_set_topology_cfg {
|
|||
u32 topology_id;
|
||||
} __packed;
|
||||
|
||||
#define AFE_PARAM_ID_APTX_SYNC_MODE 0x00013205
|
||||
|
||||
struct afe_param_id_aptx_sync_mode {
|
||||
/*
|
||||
* sync mode: 0x0 = stereo sync mode (default)
|
||||
* 0x01 = dual mono sync mode
|
||||
* 0x02 = dual mono with no sync on either L or R
|
||||
*/
|
||||
uint32_t sync_mode;
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* Generic encoder module ID.
|
||||
|
@ -3305,6 +3315,21 @@ struct asm_custom_enc_cfg_t {
|
|||
uint8_t channel_mapping[8];
|
||||
uint32_t custom_size;
|
||||
} __packed;
|
||||
|
||||
struct asm_aptx_v2_enc_cfg_ext_t {
|
||||
/*
|
||||
* sync mode: 0x0 = stereo sync mode (default)
|
||||
* 0x01 = dual mono sync mode
|
||||
* 0x02 = dual mono with no sync on either L or R
|
||||
*/
|
||||
uint32_t sync_mode;
|
||||
} __packed;
|
||||
|
||||
struct asm_aptx_enc_cfg_t {
|
||||
struct asm_custom_enc_cfg_t custom_cfg;
|
||||
struct asm_aptx_v2_enc_cfg_ext_t aptx_v2_cfg;
|
||||
} __packed;
|
||||
|
||||
#define ASM_MEDIA_FMT_CELT 0x00013221
|
||||
struct asm_celt_specific_enc_cfg_t {
|
||||
/*
|
||||
|
@ -3421,6 +3446,7 @@ union afe_enc_config_data {
|
|||
struct asm_aac_enc_cfg_v2_t aac_config;
|
||||
struct asm_custom_enc_cfg_t custom_config;
|
||||
struct asm_celt_enc_cfg_t celt_config;
|
||||
struct asm_aptx_enc_cfg_t aptx_config;
|
||||
};
|
||||
|
||||
struct afe_enc_config {
|
||||
|
@ -3461,6 +3487,7 @@ union afe_port_config {
|
|||
struct afe_param_id_set_topology_cfg topology;
|
||||
struct afe_param_id_tdm_cfg tdm;
|
||||
struct afe_param_id_usb_audio_cfg usb_audio;
|
||||
struct afe_param_id_aptx_sync_mode sync_mode_param;
|
||||
struct afe_enc_fmt_id_param_t enc_fmt;
|
||||
struct afe_port_media_type_t media_type;
|
||||
struct afe_enc_cfg_blk_param_t enc_blk_param;
|
||||
|
|
Loading…
Add table
Reference in a new issue