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

Commit 38070be3 authored by Laxminath Kasam's avatar Laxminath Kasam Committed by Gerrit - the friendly Code Review server
Browse files

audio-lnx: Add latest snapshot for audio drivers.



Propagate the changes based on latest snapshot
for audio kernel source tree at below cutoff of
kernel msm-4.9 -

(aed56b2df75 - "drm/msm/sde: update te vsync enable sequence change")

Change-Id: I7ed5102146986b81e5cb9ca55432360b3549b60c
Signed-off-by: default avatarLaxminath Kasam <lkasam@codeaurora.org>
parent 8c878587
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1376,14 +1376,18 @@ int msm_sdw_codec_info_create_codec_entry(struct snd_info_entry *codec_root,
	struct snd_info_entry *version_entry;
	struct msm_sdw_priv *msm_sdw;
	struct snd_soc_card *card;
	char name[80];

	if (!codec_root || !codec)
		return -EINVAL;

	msm_sdw = snd_soc_codec_get_drvdata(codec);
	card = codec->component.card;

	snprintf(name, sizeof(name), "%x.%s", (u32)msm_sdw->sdw_base_addr,
			"msm-sdw-codec");
	msm_sdw->entry = snd_info_create_subdir(codec_root->module,
						  "152c1000.msm-sdw-codec",
						(const char *)name,
						codec_root);
	if (!msm_sdw->entry) {
		dev_err(codec->dev, "%s: failed to create msm_sdw entry\n",
+2 −0
Original line number Diff line number Diff line
@@ -179,6 +179,8 @@ struct wcd9xxx_pdata {
	int irq_base;
	int num_irqs;
	int reset_gpio;
	bool has_buck_vsel_gpio;
	struct device_node *buck_vsel_ctl_np;
	struct device_node *wcd_rst_np;
	struct wcd9xxx_amic amic_settings;
	struct slim_device slimbus_slave_device;
+14 −8
Original line number Diff line number Diff line
@@ -417,22 +417,23 @@ static int wdsp_download_segments(struct wdsp_mgr_priv *wdsp,
	/* Go through the list of segments and download one by one */
	list_for_each_entry(seg, wdsp->seg_list, list) {
		ret = wdsp_load_each_segment(wdsp, seg);
		if (ret < 0) {
			wdsp_broadcast_event_downseq(wdsp,
						     WDSP_EVENT_DLOAD_FAILED,
						     NULL);
		if (ret)
			goto dload_error;
	}
	}

	/* Flush the list before setting status and notifying components */
	wdsp_flush_segment_list(wdsp->seg_list);

	WDSP_SET_STATUS(wdsp, status);

	/* Notify all components that image is downloaded */
	wdsp_broadcast_event_downseq(wdsp, post, NULL);
done:
	return ret;

dload_error:
	wdsp_flush_segment_list(wdsp->seg_list);
done:
	wdsp_broadcast_event_downseq(wdsp, WDSP_EVENT_DLOAD_FAILED, NULL);
	return ret;
}

@@ -486,10 +487,14 @@ static int wdsp_enable_dsp(struct wdsp_mgr_priv *wdsp)
	/* Make sure wdsp is in good state */
	if (!WDSP_STATUS_IS_SET(wdsp, WDSP_STATUS_CODE_DLOADED)) {
		WDSP_ERR(wdsp, "WDSP in invalid state 0x%x", wdsp->status);
		ret = -EINVAL;
		goto done;
		return -EINVAL;
	}

	/*
	 * Acquire SSR mutex lock to make sure enablement of DSP
	 * does not race with SSR handling.
	 */
	WDSP_MGR_MUTEX_LOCK(wdsp, wdsp->ssr_mutex);
	/* Download the read-write sections of image */
	ret = wdsp_download_segments(wdsp, WDSP_ELF_FLAG_WRITE);
	if (ret < 0) {
@@ -510,6 +515,7 @@ static int wdsp_enable_dsp(struct wdsp_mgr_priv *wdsp)
	wdsp_broadcast_event_downseq(wdsp, WDSP_EVENT_POST_BOOTUP, NULL);
	WDSP_SET_STATUS(wdsp, WDSP_STATUS_BOOTED);
done:
	WDSP_MGR_MUTEX_UNLOCK(wdsp, wdsp->ssr_mutex);
	return ret;
}

+4 −4
Original line number Diff line number Diff line
@@ -763,10 +763,6 @@ static int wcd_control_handler(struct device *dev, void *priv_data,
	case WDSP_EVENT_DLOAD_FAILED:
	case WDSP_EVENT_POST_SHUTDOWN:

		if (event == WDSP_EVENT_POST_DLOAD_CODE)
			/* Mark DSP online since code download is complete */
			wcd_cntl_change_online_state(cntl, 1);

		/* Disable CPAR */
		wcd_cntl_cpar_ctrl(cntl, false);
		/* Disable all the clocks */
@@ -775,6 +771,10 @@ static int wcd_control_handler(struct device *dev, void *priv_data,
			dev_err(codec->dev,
				"%s: Failed to disable clocks, err = %d\n",
				__func__, ret);

		if (event == WDSP_EVENT_POST_DLOAD_CODE)
			/* Mark DSP online since code download is complete */
			wcd_cntl_change_online_state(cntl, 1);
		break;

	case WDSP_EVENT_PRE_DLOAD_DATA:
+4 −0
Original line number Diff line number Diff line
@@ -1280,6 +1280,10 @@ static int wcd9xxx_slim_probe(struct slim_device *slim)
		ret = -EINVAL;
		goto err_codec;
	}

	if (pdata->has_buck_vsel_gpio)
		msm_cdc_pinctrl_select_active_state(pdata->buck_vsel_ctl_np);

	device_id = slim_get_device_id(slim);
	if (!device_id) {
		dev_err(&slim->dev, "%s: Error, no device id\n", __func__);
Loading