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

Commit de532b5f authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 83feb0e6 on remote branch

Change-Id: I1e5ebd61d028fb080bb9959dff19edaf5bd185fe
parents e8cba0b7 83feb0e6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@
#include <dsp/q6audio-v2.h>
#include <dsp/q6core.h>
#include <dsp/q6asm-v2.h>
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_MSM_BOOT_STATS
#include <soc/qcom/boot_stats.h>
#endif

@@ -699,7 +699,7 @@ static int msm_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
	case SNDRV_PCM_TRIGGER_RESUME:
	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
		if (first_time) {
#ifdef CONFIG_MSM_BOOT_TIME_MARKER
#ifdef CONFIG_MSM_BOOT_STATS
			place_marker("K - Early chime");
#endif
			first_time = 0;
+6 −1
Original line number Diff line number Diff line
@@ -6085,6 +6085,10 @@ static int get_ec_ref_port_id(int value, int *index)
		*index = 42;
		port_id = AFE_PORT_ID_PRIMARY_TDM_TX;
		break;
	case 43:
		*index = 43;
		port_id = AFE_PORT_ID_QUINARY_MI2S_RX;
		break;
	default:
		*index = 0; /* NONE */
		pr_err("%s: Invalid value %d\n", __func__, value);
@@ -6143,7 +6147,7 @@ static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
	"SLIM_7_RX", "RX_CDC_DMA_RX_0", "RX_CDC_DMA_RX_1", "RX_CDC_DMA_RX_2",
	"RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_0", "TERT_TDM_RX_2", "SEC_TDM_TX_0",
	"DISPLAY_PORT1", "SEN_MI2S_RX", "QUIN_TDM_TX_0", "SENARY_MI2S_TX",
	"PRI_TDM_RX_0", "PRI_TDM_TX_0",
	"PRI_TDM_RX_0", "PRI_TDM_TX_0", "QUIN_MI2S_RX",
};
static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
@@ -33567,6 +33571,7 @@ static const struct snd_soc_dapm_route intercon_mi2s[] = {
	{"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"AUDIO_REF_EC_UL10 MUX", "SENARY_MI2S_TX", "SENARY_MI2S_TX"},
	{"AUDIO_REF_EC_UL10 MUX", "QUIN_MI2S_RX", "QUIN_MI2S_RX"},
	{"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
	{"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},

dsp/adsp-loader.c

100644 → 100755
+2 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/workqueue.h>
#include <linux/nvmem-consumer.h>
#include <linux/slab.h>
#include <soc/qcom/boot_stats.h>
#include <soc/qcom/subsystem_restart.h>

#define Q6_PIL_GET_DELAY_MS 100
@@ -172,6 +173,7 @@ static void adsp_load_fw(struct work_struct *adsp_ldr_work)
	{
		adsp_state = apr_get_q6_state();
		if (adsp_state == APR_SUBSYS_DOWN) {
			place_marker("M - Start ADSP");
			priv = platform_get_drvdata(pdev);
			if (!priv) {
				dev_err(&pdev->dev,
+15 −1
Original line number Diff line number Diff line
@@ -5824,6 +5824,7 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config,
	enum afe_mad_type mad_type;
	uint16_t port_index;
	u32 power_mode = 0;
	u16 i;

	memset(&param_hdr, 0, sizeof(param_hdr));
	memset(&port_cfg, 0, sizeof(port_cfg));
@@ -6249,8 +6250,21 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config,
	ret = afe_send_cmd_port_start(port_id);

fail_cmd:
	if (ret)
	if (ret) {
		this_afe.afe_port_start_failed[port_index] = true;
		if ((codec_format != ASM_MEDIA_FMT_NONE) &&
			(cfg_type == AFE_PARAM_ID_SLIMBUS_CONFIG)) {
			if ((q6core_get_avcs_api_version_per_service(
				APRV2_IDS_SERVICE_ID_ADSP_CORE_V) >= AVCS_API_VERSION_V5)) {
				for (i = 0; i < MAX_ALLOWED_USE_CASES; i++) {
					if (pm[i] && pm[i]->port_id == port_id) {
						q6afe_unload_avcs_modules(port_id, i);
						break;
					}
				}
			}
		}
	}
	mutex_unlock(&this_afe.afe_cmd_lock);
	return ret;
}

ipc/apr.c

100644 → 100755
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#include <linux/ipc_logging.h>
#include <linux/of_platform.h>
#include <linux/ratelimit.h>
#include <soc/qcom/boot_stats.h>
#include <soc/qcom/subsystem_restart.h>
#include <linux/qcom_scm.h>
#include <soc/snd_event.h>
@@ -314,6 +315,7 @@ static void apr_add_child_devices(struct work_struct *work)
static void apr_adsp_up(void)
{
	pr_info("%s: Q6 is Up\n", __func__);
	place_marker("M - ADSP Ready");
	apr_set_q6_state(APR_SUBSYS_LOADED);

	spin_lock(&apr_priv->apr_lock);