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

Commit 2a5695a5 authored by Mathieu Poirier's avatar Mathieu Poirier Committed by Greg Kroah-Hartman
Browse files

coresight: etm4x: split default and filter configuration



Splitting the steps involved in the configuration of a tracer.
The first part is generic and can be reused for both sysFS and
Perf methods.

The second part pertains to the configuration of filters
themselves where the source of the information used to
configure the filters will vary depending on the access
methods.

Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ca878b14
Loading
Loading
Loading
Loading
+22 −14
Original line number Original line Diff line number Diff line
@@ -562,21 +562,8 @@ static void etm4_init_arch_data(void *info)
	CS_LOCK(drvdata->base);
	CS_LOCK(drvdata->base);
}
}


static void etm4_set_default(struct etmv4_config *config)
static void etm4_set_default_config(struct etmv4_config *config)
{
{
	if (WARN_ON_ONCE(!config))
		return;

	/*
	 * Make default initialisation trace everything
	 *
	 * Select the "always true" resource selector on the
	 * "Enablign Event" line and configure address range comparator
	 * '0' to trace all the possible address range.  From there
	 * configure the "include/exclude" engine to include address
	 * range comparator '0'.
	 */

	/* disable all events tracing */
	/* disable all events tracing */
	config->eventctrl0 = 0x0;
	config->eventctrl0 = 0x0;
	config->eventctrl1 = 0x0;
	config->eventctrl1 = 0x0;
@@ -592,7 +579,10 @@ static void etm4_set_default(struct etmv4_config *config)


	/* TRCVICTLR::EVENT = 0x01, select the always on logic */
	/* TRCVICTLR::EVENT = 0x01, select the always on logic */
	config->vinst_ctrl |= BIT(0);
	config->vinst_ctrl |= BIT(0);
}


static void etm4_set_default_filter(struct etmv4_config *config)
{
	/*
	/*
	 * TRCVICTLR::SSSTATUS == 1, the start-stop logic is
	 * TRCVICTLR::SSSTATUS == 1, the start-stop logic is
	 * in the started state
	 * in the started state
@@ -638,6 +628,24 @@ static void etm4_set_default(struct etmv4_config *config)
	config->vissctlr = 0x0;
	config->vissctlr = 0x0;
}
}


static void etm4_set_default(struct etmv4_config *config)
{
	if (WARN_ON_ONCE(!config))
		return;

	/*
	 * Make default initialisation trace everything
	 *
	 * Select the "always true" resource selector on the
	 * "Enablign Event" line and configure address range comparator
	 * '0' to trace all the possible address range.  From there
	 * configure the "include/exclude" engine to include address
	 * range comparator '0'.
	 */
	etm4_set_default_config(config);
	etm4_set_default_filter(config);
}

void etm4_config_trace_mode(struct etmv4_config *config)
void etm4_config_trace_mode(struct etmv4_config *config)
{
{
	u32 addr_acc, mode;
	u32 addr_acc, mode;