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

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

Merge "ASoC: msm: qdsp6v2: add support for DTS offload"

parents a5caa42a d7e9d6e1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@
#define FORMAT_APE          0x0019
#define FORMAT_G711_ALAW_FS 0x001a
#define FORMAT_G711_MLAW_FS 0x001b
#define FORMAT_DTS          0x001c

#define ENCDEC_SBCBITRATE   0x0001
#define ENCDEC_IMMEDIATE_DECODE 0x0002
+17 −2
Original line number Diff line number Diff line
@@ -175,7 +175,8 @@ struct msm_compr_audio {
	spinlock_t lock;
};

const u32 compr_codecs[] = {SND_AUDIOCODEC_AC3, SND_AUDIOCODEC_EAC3};
const u32 compr_codecs[] = {
	SND_AUDIOCODEC_AC3, SND_AUDIOCODEC_EAC3, SND_AUDIOCODEC_DTS};

struct query_audio_effect {
	uint32_t mod_id;
@@ -636,7 +637,7 @@ static void populate_codec_list(struct msm_compr_audio *prtd)
			COMPR_PLAYBACK_MIN_NUM_FRAGMENTS;
	prtd->compr_cap.max_fragments =
			COMPR_PLAYBACK_MAX_NUM_FRAGMENTS;
	prtd->compr_cap.num_codecs = 12;
	prtd->compr_cap.num_codecs = 13;
	prtd->compr_cap.codecs[0] = SND_AUDIOCODEC_MP3;
	prtd->compr_cap.codecs[1] = SND_AUDIOCODEC_AAC;
	prtd->compr_cap.codecs[2] = SND_AUDIOCODEC_AC3;
@@ -649,6 +650,7 @@ static void populate_codec_list(struct msm_compr_audio *prtd)
	prtd->compr_cap.codecs[9] = SND_AUDIOCODEC_VORBIS;
	prtd->compr_cap.codecs[10] = SND_AUDIOCODEC_ALAC;
	prtd->compr_cap.codecs[11] = SND_AUDIOCODEC_APE;
	prtd->compr_cap.codecs[12] = SND_AUDIOCODEC_DTS;
}

static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream,
@@ -874,6 +876,10 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream,
			pr_err("%s: CMD Format block failed ret %d\n",
					__func__, ret);
		break;
	case FORMAT_DTS:
		pr_debug("SND_AUDIOCODEC_DTS\n");
		/* no media format block needed */
		break;

	default:
		pr_debug("%s, unsupported format, skip", __func__);
@@ -1387,6 +1393,12 @@ static int msm_compr_set_params(struct snd_compr_stream *cstream,
		break;
	}

	case SND_AUDIOCODEC_DTS: {
		pr_debug("%s: SND_AUDIOCODEC_DTS\n", __func__);
		prtd->codec = FORMAT_DTS;
		break;
	}

	default:
		pr_err("codec not supported, id =%d\n", params->codec.id);
		return -EINVAL;
@@ -2174,6 +2186,8 @@ static int msm_compr_get_codec_caps(struct snd_compr_stream *cstream,
		break;
	case SND_AUDIOCODEC_APE:
		break;
	case SND_AUDIOCODEC_DTS:
		break;
	default:
		pr_err("%s: Unsupported audio codec %d\n",
			__func__, codec->codec);
@@ -2649,6 +2663,7 @@ static int msm_compr_dec_params_put(struct snd_kcontrol *kcontrol,
	case FORMAT_VORBIS:
	case FORMAT_ALAC:
	case FORMAT_APE:
	case FORMAT_DTS:
		pr_debug("%s: no runtime parameters for codec: %d\n", __func__,
			 prtd->codec);
		break;
+3 −0
Original line number Diff line number Diff line
@@ -2374,6 +2374,9 @@ int q6asm_open_write_compressed(struct audio_client *ac, uint32_t format,
	case FORMAT_EAC3:
		open.fmt_id = ASM_MEDIA_FMT_EAC3;
		break;
	case FORMAT_DTS:
		open.fmt_id = ASM_MEDIA_FMT_DTS;
		break;
	default:
		pr_err("%s: Invalid format[%d]\n", __func__, format);
		rc = -EINVAL;