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

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

Merge "coresight: tmc: Configure cti trigger number in device tree"

parents 878a2ef4 4700692e
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -218,8 +218,10 @@ static int tmc_enable_etf_sink_sysfs(struct coresight_device *csdev)
		kfree(buf);

	if (!ret) {
		coresight_cti_map_trigin(drvdata->cti_reset, 5, 0);
		coresight_cti_map_trigout(drvdata->cti_flush, 1, 0);
		coresight_cti_map_trigin(drvdata->cti_reset,
				drvdata->cti_reset_trig_num, 0);
		coresight_cti_map_trigout(drvdata->cti_flush,
				drvdata->cti_flush_trig_num, 0);
		dev_info(&csdev->dev, "TMC-ETB/ETF enabled\n");
	}

@@ -333,8 +335,10 @@ static int tmc_disable_etf_sink(struct coresight_device *csdev)

	spin_unlock_irqrestore(&drvdata->spinlock, flags);

	coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0);
	coresight_cti_unmap_trigout(drvdata->cti_flush, 1, 0);
	coresight_cti_unmap_trigin(drvdata->cti_reset,
			drvdata->cti_reset_trig_num, 0);
	coresight_cti_unmap_trigout(drvdata->cti_flush,
			drvdata->cti_flush_trig_num, 0);
	dev_dbg(&csdev->dev, "TMC-ETB/ETF disabled\n");
	return 0;
}
+8 −4
Original line number Diff line number Diff line
@@ -1470,8 +1470,10 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev)
			free_buf = new_buf = tmc_etr_setup_sysfs_buf(drvdata);
			if (IS_ERR(new_buf))
				return -ENOMEM;
			coresight_cti_map_trigout(drvdata->cti_flush, 3, 0);
			coresight_cti_map_trigin(drvdata->cti_reset, 5, 0);
			coresight_cti_map_trigout(drvdata->cti_flush,
					drvdata->cti_flush_trig_num, 0);
			coresight_cti_map_trigin(drvdata->cti_reset,
					drvdata->cti_reset_trig_num, 0);
		}
		spin_lock_irqsave(&drvdata->spinlock, flags);
	}
@@ -2051,8 +2053,10 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev,
			flush_workqueue(drvdata->byte_cntr->usb_wq);
			drvdata->usbch = NULL;
		}
		coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0);
		coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0);
		coresight_cti_unmap_trigin(drvdata->cti_reset,
				drvdata->cti_reset_trig_num, 0);
		coresight_cti_unmap_trigout(drvdata->cti_flush,
				drvdata->cti_flush_trig_num, 0);
	}
out:
	dev_info(&csdev->dev, "TMC-ETR disabled\n");
+12 −0
Original line number Diff line number Diff line
@@ -611,12 +611,24 @@ static int tmc_probe(struct amba_device *adev, const struct amba_id *id)
			dev_err(dev, "failed to get flush cti, defer probe\n");
			return -EPROBE_DEFER;
		}
		ret = of_property_read_u32(adev->dev.of_node, "cti-flush-trig-num",
				&drvdata->cti_flush_trig_num);
		if (ret) {
			dev_err(dev, "failed to get flush cti trigger number, defer probe\n");
			return ret;
		}

		drvdata->cti_reset = coresight_cti_get(ctidata->names[1]);
		if (IS_ERR(drvdata->cti_reset)) {
			dev_err(dev, "failed to get reset cti, defer probe\n");
			return -EPROBE_DEFER;
		}
		ret = of_property_read_u32(adev->dev.of_node, "cti-reset-trig-num",
				&drvdata->cti_reset_trig_num);
		if (ret) {
			dev_err(dev, "failed to get reset cti trigger number, defer probe\n");
			return ret;
		}
	}

	desc.dev = dev;
+2 −0
Original line number Diff line number Diff line
@@ -260,6 +260,8 @@ struct tmc_drvdata {
	bool			enable_to_bam;
	struct coresight_cti	*cti_flush;
	struct coresight_cti	*cti_reset;
	u32			cti_flush_trig_num;
	u32			cti_reset_trig_num;
	enum tmc_etr_out_mode	out_mode;
};