Loading asoc/msm-dai-q6-v2.c +13 −2 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ enum { ENC_FMT_AAC_V2 = ASM_MEDIA_FMT_AAC_V2, ENC_FMT_APTX = ASM_MEDIA_FMT_APTX, ENC_FMT_APTX_HD = ASM_MEDIA_FMT_APTX_HD, ENC_FMT_CELT = ASM_MEDIA_FMT_CELT, }; enum { Loading Loading @@ -2146,7 +2147,12 @@ static int msm_dai_q6_afe_enc_cfg_get(struct snd_kcontrol *kcontrol, case ENC_FMT_APTX_HD: memcpy(ucontrol->value.bytes.data + format_size, &dai_data->enc_config.data, sizeof(struct asm_aac_enc_cfg_v2_t)); sizeof(struct asm_custom_enc_cfg_t)); break; case ENC_FMT_CELT: memcpy(ucontrol->value.bytes.data + format_size, &dai_data->enc_config.data, sizeof(struct asm_celt_enc_cfg_t)); break; default: pr_debug("%s: unknown format = %d\n", Loading Loading @@ -2190,7 +2196,12 @@ static int msm_dai_q6_afe_enc_cfg_put(struct snd_kcontrol *kcontrol, case ENC_FMT_APTX_HD: memcpy(&dai_data->enc_config.data, ucontrol->value.bytes.data + format_size, sizeof(struct asm_custom_enc_cfg_aptx_t)); sizeof(struct asm_custom_enc_cfg_t)); break; case ENC_FMT_CELT: memcpy(&dai_data->enc_config.data, ucontrol->value.bytes.data + format_size, sizeof(struct asm_celt_enc_cfg_t)); break; default: pr_debug("%s: Ignore enc config for unknown format = %d\n", Loading dsp/q6afe.c +2 −1 Original line number Diff line number Diff line Loading @@ -2824,7 +2824,8 @@ static int q6afe_send_enc_config(u16 port_id, pr_debug("%s:update DSP for enc format = %d\n", __func__, format); if (format != ASM_MEDIA_FMT_SBC && format != ASM_MEDIA_FMT_AAC_V2 && format != ASM_MEDIA_FMT_APTX && format != ASM_MEDIA_FMT_APTX_HD) { format != ASM_MEDIA_FMT_APTX && format != ASM_MEDIA_FMT_APTX_HD && format != ASM_MEDIA_FMT_CELT) { pr_err("%s:Unsuppported format Ignore AFE config\n", __func__); return 0; } Loading include/dsp/apr_audio-v2.h +49 −2 Original line number Diff line number Diff line Loading @@ -3255,7 +3255,7 @@ struct asm_aac_enc_cfg_v2_t { #define PCM_CHANNEL_R 2 #define PCM_CHANNEL_C 3 struct asm_custom_enc_cfg_aptx_t { struct asm_custom_enc_cfg_t { uint32_t sample_rate; /* Mono or stereo */ uint16_t num_channels; Loading @@ -3266,6 +3266,52 @@ struct asm_custom_enc_cfg_aptx_t { uint8_t channel_mapping[8]; uint32_t custom_size; } __packed; #define ASM_MEDIA_FMT_CELT 0x00013221 struct asm_celt_specific_enc_cfg_t { /* * Bit rate used for encoding. * This is used to calculate the upper threshold * for bytes per frame if vbr_flag is 1. * Or else, this will be used as a regular constant * bit rate for encoder output. * @Range : 32000 to 1536000 * @Default: 128 */ uint32_t bit_rate; /* * Frame size used for encoding. * @Range : 64, 128, 256, 512 * @Default: 256 */ uint16_t frame_size; /* * complexity of algorithm. * @Range : 0-10 * @Default: 3 */ uint16_t complexity; /* * Switch variable for prediction feature. * Used to choose between the level of interframe * predictions allowed while encoding. * @Range: * 0: Independent Frames. * 1: Short Term interframe prediction allowed. * 2: Long term prediction allowed. * @Default: 2 */ uint16_t prediction_mode; /* * Variable Bit Rate flag. * @Default: 0 */ uint16_t vbr_flag; } __packed; struct asm_celt_enc_cfg_t { struct asm_custom_enc_cfg_t custom_config; struct asm_celt_specific_enc_cfg_t celt_specific_config; } __packed; struct afe_enc_fmt_id_param_t { /* Loading Loading @@ -3334,7 +3380,8 @@ struct afe_port_media_type_t { union afe_enc_config_data { struct asm_sbc_enc_cfg_t sbc_config; struct asm_aac_enc_cfg_v2_t aac_config; struct asm_custom_enc_cfg_aptx_t aptx_config; struct asm_custom_enc_cfg_t custom_config; struct asm_celt_enc_cfg_t celt_config; }; struct afe_enc_config { Loading Loading
asoc/msm-dai-q6-v2.c +13 −2 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ enum { ENC_FMT_AAC_V2 = ASM_MEDIA_FMT_AAC_V2, ENC_FMT_APTX = ASM_MEDIA_FMT_APTX, ENC_FMT_APTX_HD = ASM_MEDIA_FMT_APTX_HD, ENC_FMT_CELT = ASM_MEDIA_FMT_CELT, }; enum { Loading Loading @@ -2146,7 +2147,12 @@ static int msm_dai_q6_afe_enc_cfg_get(struct snd_kcontrol *kcontrol, case ENC_FMT_APTX_HD: memcpy(ucontrol->value.bytes.data + format_size, &dai_data->enc_config.data, sizeof(struct asm_aac_enc_cfg_v2_t)); sizeof(struct asm_custom_enc_cfg_t)); break; case ENC_FMT_CELT: memcpy(ucontrol->value.bytes.data + format_size, &dai_data->enc_config.data, sizeof(struct asm_celt_enc_cfg_t)); break; default: pr_debug("%s: unknown format = %d\n", Loading Loading @@ -2190,7 +2196,12 @@ static int msm_dai_q6_afe_enc_cfg_put(struct snd_kcontrol *kcontrol, case ENC_FMT_APTX_HD: memcpy(&dai_data->enc_config.data, ucontrol->value.bytes.data + format_size, sizeof(struct asm_custom_enc_cfg_aptx_t)); sizeof(struct asm_custom_enc_cfg_t)); break; case ENC_FMT_CELT: memcpy(&dai_data->enc_config.data, ucontrol->value.bytes.data + format_size, sizeof(struct asm_celt_enc_cfg_t)); break; default: pr_debug("%s: Ignore enc config for unknown format = %d\n", Loading
dsp/q6afe.c +2 −1 Original line number Diff line number Diff line Loading @@ -2824,7 +2824,8 @@ static int q6afe_send_enc_config(u16 port_id, pr_debug("%s:update DSP for enc format = %d\n", __func__, format); if (format != ASM_MEDIA_FMT_SBC && format != ASM_MEDIA_FMT_AAC_V2 && format != ASM_MEDIA_FMT_APTX && format != ASM_MEDIA_FMT_APTX_HD) { format != ASM_MEDIA_FMT_APTX && format != ASM_MEDIA_FMT_APTX_HD && format != ASM_MEDIA_FMT_CELT) { pr_err("%s:Unsuppported format Ignore AFE config\n", __func__); return 0; } Loading
include/dsp/apr_audio-v2.h +49 −2 Original line number Diff line number Diff line Loading @@ -3255,7 +3255,7 @@ struct asm_aac_enc_cfg_v2_t { #define PCM_CHANNEL_R 2 #define PCM_CHANNEL_C 3 struct asm_custom_enc_cfg_aptx_t { struct asm_custom_enc_cfg_t { uint32_t sample_rate; /* Mono or stereo */ uint16_t num_channels; Loading @@ -3266,6 +3266,52 @@ struct asm_custom_enc_cfg_aptx_t { uint8_t channel_mapping[8]; uint32_t custom_size; } __packed; #define ASM_MEDIA_FMT_CELT 0x00013221 struct asm_celt_specific_enc_cfg_t { /* * Bit rate used for encoding. * This is used to calculate the upper threshold * for bytes per frame if vbr_flag is 1. * Or else, this will be used as a regular constant * bit rate for encoder output. * @Range : 32000 to 1536000 * @Default: 128 */ uint32_t bit_rate; /* * Frame size used for encoding. * @Range : 64, 128, 256, 512 * @Default: 256 */ uint16_t frame_size; /* * complexity of algorithm. * @Range : 0-10 * @Default: 3 */ uint16_t complexity; /* * Switch variable for prediction feature. * Used to choose between the level of interframe * predictions allowed while encoding. * @Range: * 0: Independent Frames. * 1: Short Term interframe prediction allowed. * 2: Long term prediction allowed. * @Default: 2 */ uint16_t prediction_mode; /* * Variable Bit Rate flag. * @Default: 0 */ uint16_t vbr_flag; } __packed; struct asm_celt_enc_cfg_t { struct asm_custom_enc_cfg_t custom_config; struct asm_celt_specific_enc_cfg_t celt_specific_config; } __packed; struct afe_enc_fmt_id_param_t { /* Loading Loading @@ -3334,7 +3380,8 @@ struct afe_port_media_type_t { union afe_enc_config_data { struct asm_sbc_enc_cfg_t sbc_config; struct asm_aac_enc_cfg_v2_t aac_config; struct asm_custom_enc_cfg_aptx_t aptx_config; struct asm_custom_enc_cfg_t custom_config; struct asm_celt_enc_cfg_t celt_config; }; struct afe_enc_config { Loading