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

Commit ca2c0613 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: Add support for 192KHz sampling rate"

parents 2259afd0 e485b621
Loading
Loading
Loading
Loading
+25 −13
Original line number Diff line number Diff line
@@ -186,6 +186,12 @@ Optional properties:
 - qcom,msm-pcm-loopback-low-latency : Flag indicating whether
   the device node is of type low latency.

* msm-transcode-loopback

Required properties:

 - compatible : "qcom,msm-transcode-loopback"

* msm-dai-q6

[First Level Nodes]
@@ -1151,12 +1157,9 @@ Required properties:
				When clock rate is set to zero,
				then external clock is assumed.

 [Second Level Nodes]

Required properties:

 - compatible : "qcom,msm-dai-q6-tdm"
 - qcom,msm-dai-q6-mi2s-dev-id: TDM port ID.
 - qcom,msm-cpudai-tdm-clk-internal: Clock Source.
				0 - EBIT clock from clk tree
				1 - IBIT clock from clk tree

 - qcom,msm-cpudai-tdm-sync-mode: Synchronization setting.
				0 - Short sync bit mode
@@ -1181,6 +1184,13 @@ Required properties:
				1 - 1 bit clock cycle
				2 - 2 bit clock cycle

 [Second Level Nodes]

Required properties:

 - compatible : "qcom,msm-dai-q6-tdm"
 - qcom,msm-dai-q6-mi2s-dev-id: TDM port ID.

 - qcom,msm-cpudai-tdm-data-align: Indicate how data is packed
				within the slot. For example, 32 slot width in case of
				sample bit width is 24.
@@ -1215,17 +1225,18 @@ Example:
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36912>;
		qcom,msm-cpudai-tdm-clk-rate = <12288000>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <0>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <0>;
		qcom,msm-cpudai-tdm-data-delay = <0>;
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&quat_tdm_active &quat_tdm_dout_active>;
		pinctrl-1 = <&quat_tdm_sleep &quat_tdm_dout_sleep>;
		dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36912>;
			qcom,msm-cpudai-tdm-sync-mode = <0>;
			qcom,msm-cpudai-tdm-sync-src = <1>;
			qcom,msm-cpudai-tdm-data-out = <0>;
			qcom,msm-cpudai-tdm-invert-sync = <0>;
			qcom,msm-cpudai-tdm-data-delay = <0>;
			qcom,msm-cpudai-tdm-data-align = <0>;
			qcom,msm-cpudai-tdm-header-start-offset = <0>;
			qcom,msm-cpudai-tdm-header-width = <2>;
@@ -2300,14 +2311,15 @@ Example:
		qcom,tasha-mclk-clk-freq = <9600000>;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
				<&loopback>, <&compress>, <&hostless>,
				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>;
				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
				<&trans_loopback>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-pcm-dsp.2", "msm-voip-dsp",
				"msm-pcm-voice", "msm-pcm-loopback",
				"msm-compress-dsp", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-lsm-client",
				"msm-pcm-routing", "msm-cpe-lsm",
				"msm-compr-dsp";
				"msm-compr-dsp","msm-transcode-loopback";
		asoc-cpu = <&dai_hdmi>,
				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
+48 −40
Original line number Diff line number Diff line
@@ -377,14 +377,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36864>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_pri_tdm_rx_0: qcom,msm-dai-q6-tdm-pri-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36864>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_pri_tdm_rx_0: qcom,msm-dai-q6-tdm-pri-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36864>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
@@ -395,14 +396,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36865>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_pri_tdm_tx_0: qcom,msm-dai-q6-tdm-pri-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36865>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_pri_tdm_tx_0: qcom,msm-dai-q6-tdm-pri-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36865>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
@@ -413,14 +415,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36880>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_sec_tdm_rx_0: qcom,msm-dai-q6-tdm-sec-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36880>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_sec_tdm_rx_0: qcom,msm-dai-q6-tdm-sec-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36880>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
@@ -431,14 +434,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36881>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_sec_tdm_tx_0: qcom,msm-dai-q6-tdm-sec-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36881>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_sec_tdm_tx_0: qcom,msm-dai-q6-tdm-sec-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36881>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
@@ -449,14 +453,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36896>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_tert_tdm_rx_0: qcom,msm-dai-q6-tdm-tert-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36896>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_tert_tdm_rx_0: qcom,msm-dai-q6-tdm-tert-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36896>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
@@ -467,14 +472,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36897 >;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36897 >;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_tert_tdm_tx_0: qcom,msm-dai-q6-tdm-tert-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36897 >;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
@@ -485,14 +491,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36912>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36912>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_quat_tdm_rx_0: qcom,msm-dai-q6-tdm-quat-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36912>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
@@ -503,14 +510,15 @@
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36913 >;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36913 >;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_quat_tdm_tx_0: qcom,msm-dai-q6-tdm-quat-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36913 >;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
+6 −0
Original line number Diff line number Diff line
@@ -858,6 +858,7 @@ static long audio_aio_process_event_req_compat(struct q6audio_aio *audio,
	long rc;
	struct msm_audio_event32 usr_evt_32;
	struct msm_audio_event usr_evt;
	memset(&usr_evt, 0, sizeof(struct msm_audio_event));

	if (copy_from_user(&usr_evt_32, arg,
				sizeof(struct msm_audio_event32))) {
@@ -867,6 +868,11 @@ static long audio_aio_process_event_req_compat(struct q6audio_aio *audio,
	usr_evt.timeout_ms = usr_evt_32.timeout_ms;

	rc = audio_aio_process_event_req_common(audio, &usr_evt);
	if (rc < 0) {
		pr_err("%s: audio process event failed, rc = %ld",
			__func__, rc);
		return rc;
	}

	usr_evt_32.event_type = usr_evt.event_type;
	switch (usr_evt_32.event_type) {
+4 −1
Original line number Diff line number Diff line
@@ -412,8 +412,10 @@ static int lpi_notifier_service_cb(struct notifier_block *this,

	switch (opcode) {
	case AUDIO_NOTIFIER_SERVICE_DOWN:
		if (initial_boot)
		if (initial_boot) {
			initial_boot = false;
			break;
		}
		lpi_dev_up = false;
		break;
	case AUDIO_NOTIFIER_SERVICE_UP:
@@ -461,6 +463,7 @@ static void lpi_gpio_dbg_show_one(struct seq_file *s,
		"pull up"
	};

	pctldev = pctldev ? : to_gpio_state(chip)->ctrl;
	pindesc = pctldev->desc->pins[offset];
	pad = pctldev->desc->pins[offset].drv_data;
	ctl_reg = lpi_gpio_read(pad, LPI_GPIO_REG_DIR_CTL);
+13 −5
Original line number Diff line number Diff line
@@ -746,13 +746,14 @@ int apr_deregister(void *handle)
	if (!handle)
		return -EINVAL;

	mutex_lock(&svc->m_lock);
	if (!svc->svc_cnt) {
		pr_err("%s: svc already deregistered. svc = %pK\n",
			__func__, svc);
		mutex_unlock(&svc->m_lock);
		return -EINVAL;
	}

	mutex_lock(&svc->m_lock);
	dest_id = svc->dest_id;
	client_id = svc->client_id;
	clnt = &client[dest_id][client_id];
@@ -886,8 +887,10 @@ static int apr_notifier_service_cb(struct notifier_block *this,
		 * recovery notifications during initial boot
		 * up since everything is expected to be down.
		 */
		if (is_initial_boot)
		if (is_initial_boot) {
			is_initial_boot = false;
			break;
		}
		if (cb_data->domain == AUDIO_NOTIFIER_MODEM_DOMAIN)
			apr_modem_down(opcode);
		else
@@ -907,7 +910,12 @@ static int apr_notifier_service_cb(struct notifier_block *this,
	return NOTIFY_OK;
}

static struct notifier_block service_nb = {
static struct notifier_block adsp_service_nb = {
	.notifier_call  = apr_notifier_service_cb,
	.priority = 0,
};

static struct notifier_block modem_service_nb = {
	.notifier_call  = apr_notifier_service_cb,
	.priority = 0,
};
@@ -937,9 +945,9 @@ static int __init apr_init(void)

	is_initial_boot = true;
	subsys_notif_register("apr_adsp", AUDIO_NOTIFIER_ADSP_DOMAIN,
			      &service_nb);
			      &adsp_service_nb);
	subsys_notif_register("apr_modem", AUDIO_NOTIFIER_MODEM_DOMAIN,
			      &service_nb);
			      &modem_service_nb);

	return 0;
}
Loading