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

Commit 1ce05f1c authored by Mulu He's avatar Mulu He
Browse files

coresight: tpdm: Don't disable clk and regulator when enabled



In tpdm_enable function, the Clks and Regs were disabled when tpdm still
in enabled status. This will cause tpdm hw in unknown status.

Change-Id: I5bf26cd01ef2cbaa8c9f32af9604f65f925bb092
Signed-off-by: default avatarMulu He <muluhe@codeaurora.org>
parent 426f0f7e
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -690,7 +690,12 @@ static int tpdm_enable(struct coresight_device *csdev,
		       struct perf_event *event, u32 mode)
{
	struct tpdm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
	int ret;
	int ret = 0;

	if (drvdata->enable) {
		dev_err(drvdata->dev, "TPDM setup already enabled,Skipping enable");
		return ret;
	}

	ret = tpdm_setup_enable(drvdata);
	if (ret) {
@@ -703,8 +708,6 @@ static int tpdm_enable(struct coresight_device *csdev,
	drvdata->enable = true;
	mutex_unlock(&drvdata->lock);

	tpdm_setup_disable(drvdata);

	dev_info(drvdata->dev, "TPDM tracing enabled\n");
	return 0;
}
@@ -773,8 +776,8 @@ static void tpdm_disable(struct coresight_device *csdev,
{
	struct tpdm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);

	if (tpdm_setup_enable(drvdata)) {
		dev_err(drvdata->dev, "TPDM setup failed. Skipping disable");
	if (!drvdata->enable) {
		dev_err(drvdata->dev, "TPDM setup already disabled, Skipping disable");
		return;
	}
	mutex_lock(&drvdata->lock);