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

Commit 16c44243 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "asoc: msm-lsm-client: deregister SM even if SVA is not started"

parents c8f7b510 73d788af
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -3117,21 +3117,21 @@ static int msm_lsm_close(struct snd_pcm_substream *substream)
				"%s: LSM client session stopped %d\n",
				 __func__, ret);

		/*
		 * Go Ahead and try de-register sound model,
		 * even if stop failed
		 */
		prtd->lsm_client->started = false;
	}

	/*
	 * De-register existing sound models
	 * to free SM and CAL buffer, even if
	 * lsm client is not started.
	 */
	ret = q6lsm_deregister_sound_model(prtd->lsm_client);
	if (ret)
			dev_err(rtd->dev,
				"%s: dereg_snd_model failed, err = %d\n",
		dev_err(rtd->dev, "%s: dereg_snd_model failed, err = %d\n",
			__func__, ret);
	else
		dev_dbg(rtd->dev, "%s: dereg_snd_model successful\n",
			__func__);
	}

	msm_pcm_routing_dereg_phy_stream(rtd->dai_link->id,
					SNDRV_PCM_STREAM_CAPTURE);
+16 −13
Original line number Diff line number Diff line
@@ -1735,9 +1735,13 @@ int q6lsm_deregister_sound_model(struct lsm_client *client)
				break;
		}
	} else {
		sm = &client->stage_cfg[p_info.stage_idx].sound_model;

		if (sm && sm->data) {
			memset(&cmd, 0, sizeof(cmd));
			q6lsm_add_hdr(client, &cmd.hdr, sizeof(cmd.hdr), false);
			cmd.hdr.opcode = LSM_SESSION_CMD_DEREGISTER_SOUND_MODEL;
			p_info.param_type = LSM_DEREG_SND_MODEL;

			rc = q6lsm_apr_send_pkt(client, client->apr, &cmd.hdr, true, NULL);
			if (rc) {
@@ -1747,10 +1751,9 @@ int q6lsm_deregister_sound_model(struct lsm_client *client)
				pr_debug("%s: Deregister sound model succeeded\n", __func__);
			}

		p_info.param_type = LSM_DEREG_SND_MODEL;
		sm = &client->stage_cfg[p_info.stage_idx].sound_model;
			q6lsm_snd_model_buf_free(client, &p_info, sm);
		}
	}

	return rc;
}