Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 953c2b88 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "dsp: add support for aptX dual mono"

parents 3d0e2dec 899b78bd
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -2894,6 +2894,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",
+27 −0
Original line number Diff line number Diff line
@@ -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;