etm               151 drivers/clk/mxs/clk-imx23.c 	clks[etm] = mxs_clk_gate("etm", "etm_div", ETM, 31);
etm               223 drivers/clk/mxs/clk-imx28.c 	clks[etm] = mxs_clk_gate("etm", "etm_div", ETM, 31);
etm              8432 drivers/infiniband/hw/qib/qib_iba7322.c 	u8 *portsel, *etm;
etm              8443 drivers/infiniband/hw/qib/qib_iba7322.c 		etm = atetm_1port;
etm              8446 drivers/infiniband/hw/qib/qib_iba7322.c 		etm = atetm_2port;
etm              8459 drivers/infiniband/hw/qib/qib_iba7322.c 		qib_r_shift(dd, BISTEN_ETM, LEN_ETM, etm, NULL) < 0 ||
etm               893 drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c DB8500_FUNC_GROUPS(etm, "etmr4_oc2_1", "etmr4_oc3_1");
etm               951 drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c 	FUNCTION(etm),
etm                84 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm;
etm                97 tools/perf/util/cs-etm.c static int cs_etm__update_queues(struct cs_etm_auxtrace *etm);
etm                98 tools/perf/util/cs-etm.c static int cs_etm__process_queues(struct cs_etm_auxtrace *etm);
etm                99 tools/perf/util/cs-etm.c static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm,
etm               236 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = etmq->etm;
etm               240 tools/perf/util/cs-etm.c 	queue = &etmq->etm->queues.queue_array[etmq->queue_nr];
etm               253 tools/perf/util/cs-etm.c 	if (etm->synth_opts.last_branch) {
etm               256 tools/perf/util/cs-etm.c 		sz += etm->synth_opts.last_branch_sz *
etm               288 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = etmq->etm;
etm               290 tools/perf/util/cs-etm.c 	if (etm->timeless_decoding)
etm               380 tools/perf/util/cs-etm.c 					  struct cs_etm_auxtrace *etm, int idx,
etm               383 tools/perf/util/cs-etm.c 	u64 **metadata = etm->metadata;
etm               391 tools/perf/util/cs-etm.c 					  struct cs_etm_auxtrace *etm, int idx)
etm               393 tools/perf/util/cs-etm.c 	u64 **metadata = etm->metadata;
etm               405 tools/perf/util/cs-etm.c 				     struct cs_etm_auxtrace *etm)
etm               411 tools/perf/util/cs-etm.c 	for (i = 0; i < etm->num_cpu; i++) {
etm               412 tools/perf/util/cs-etm.c 		architecture = etm->metadata[i][CS_ETM_MAGIC];
etm               416 tools/perf/util/cs-etm.c 			etmidr = etm->metadata[i][CS_ETM_ETMIDR];
etm               417 tools/perf/util/cs-etm.c 			cs_etm__set_trace_param_etmv3(t_params, etm, i, etmidr);
etm               420 tools/perf/util/cs-etm.c 			cs_etm__set_trace_param_etmv4(t_params, etm, i);
etm               452 tools/perf/util/cs-etm.c static void cs_etm__dump_event(struct cs_etm_auxtrace *etm,
etm               468 tools/perf/util/cs-etm.c 	t_params = zalloc(sizeof(*t_params) * etm->num_cpu);
etm               473 tools/perf/util/cs-etm.c 	if (cs_etm__init_trace_params(t_params, etm))
etm               481 tools/perf/util/cs-etm.c 	decoder = cs_etm_decoder__new(etm->num_cpu, &d_params, t_params);
etm               508 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = container_of(session->auxtrace,
etm               517 tools/perf/util/cs-etm.c 	ret = cs_etm__update_queues(etm);
etm               522 tools/perf/util/cs-etm.c 	if (etm->timeless_decoding)
etm               523 tools/perf/util/cs-etm.c 		return cs_etm__process_timeless_queues(etm, -1);
etm               525 tools/perf/util/cs-etm.c 	return cs_etm__process_queues(etm);
etm               621 tools/perf/util/cs-etm.c 	machine = etmq->etm->machine;
etm               623 tools/perf/util/cs-etm.c 	if (address >= etmq->etm->kernel_start) {
etm               652 tools/perf/util/cs-etm.c 	machine = etmq->etm->machine;
etm               662 tools/perf/util/cs-etm.c 		thread = etmq->etm->unknown_thread;
etm               684 tools/perf/util/cs-etm.c static struct cs_etm_queue *cs_etm__alloc_queue(struct cs_etm_auxtrace *etm)
etm               699 tools/perf/util/cs-etm.c 	t_params = zalloc(sizeof(*t_params) * etm->num_cpu);
etm               704 tools/perf/util/cs-etm.c 	if (cs_etm__init_trace_params(t_params, etm))
etm               712 tools/perf/util/cs-etm.c 	etmq->decoder = cs_etm_decoder__new(etm->num_cpu, &d_params, t_params);
etm               738 tools/perf/util/cs-etm.c static int cs_etm__setup_queue(struct cs_etm_auxtrace *etm,
etm               751 tools/perf/util/cs-etm.c 	etmq = cs_etm__alloc_queue(etm);
etm               759 tools/perf/util/cs-etm.c 	etmq->etm = etm;
etm               763 tools/perf/util/cs-etm.c 	if (etm->timeless_decoding)
etm               823 tools/perf/util/cs-etm.c 	ret = auxtrace_heap__add(&etm->heap, cs_queue_nr, timestamp);
etm               828 tools/perf/util/cs-etm.c static int cs_etm__setup_queues(struct cs_etm_auxtrace *etm)
etm               833 tools/perf/util/cs-etm.c 	if (!etm->kernel_start)
etm               834 tools/perf/util/cs-etm.c 		etm->kernel_start = machine__kernel_start(etm->machine);
etm               836 tools/perf/util/cs-etm.c 	for (i = 0; i < etm->queues.nr_queues; i++) {
etm               837 tools/perf/util/cs-etm.c 		ret = cs_etm__setup_queue(etm, &etm->queues.queue_array[i], i);
etm               845 tools/perf/util/cs-etm.c static int cs_etm__update_queues(struct cs_etm_auxtrace *etm)
etm               847 tools/perf/util/cs-etm.c 	if (etm->queues.new_data) {
etm               848 tools/perf/util/cs-etm.c 		etm->queues.new_data = false;
etm               849 tools/perf/util/cs-etm.c 		return cs_etm__setup_queues(etm);
etm               880 tools/perf/util/cs-etm.c 	nr = etmq->etm->synth_opts.last_branch_sz - tidq->last_branch_pos;
etm               892 tools/perf/util/cs-etm.c 	if (bs_src->nr >= etmq->etm->synth_opts.last_branch_sz) {
etm               973 tools/perf/util/cs-etm.c 		tidq->last_branch_pos = etmq->etm->synth_opts.last_branch_sz;
etm               988 tools/perf/util/cs-etm.c 	if (bs->nr < etmq->etm->synth_opts.last_branch_sz)
etm              1007 tools/perf/util/cs-etm.c 	queue = &etmq->etm->queues.queue_array[etmq->queue_nr];
etm              1024 tools/perf/util/cs-etm.c 		int fd = perf_data__fd(etmq->etm->session->data);
etm              1042 tools/perf/util/cs-etm.c static void cs_etm__set_pid_tid_cpu(struct cs_etm_auxtrace *etm,
etm              1046 tools/perf/util/cs-etm.c 		tidq->thread = machine__find_thread(etm->machine, -1,
etm              1057 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = etmq->etm;
etm              1067 tools/perf/util/cs-etm.c 	err = machine__set_current_tid(etm->machine, cpu, tid, tid);
etm              1074 tools/perf/util/cs-etm.c 	cs_etm__set_pid_tid_cpu(etm, tidq);
etm              1080 tools/perf/util/cs-etm.c 	return !!etmq->etm->timeless_decoding;
etm              1117 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = etmq->etm;
etm              1128 tools/perf/util/cs-etm.c 	sample.id = etmq->etm->instructions_id;
etm              1129 tools/perf/util/cs-etm.c 	sample.stream_id = etmq->etm->instructions_id;
etm              1137 tools/perf/util/cs-etm.c 	if (etm->synth_opts.last_branch) {
etm              1142 tools/perf/util/cs-etm.c 	if (etm->synth_opts.inject) {
etm              1144 tools/perf/util/cs-etm.c 					   etm->instructions_sample_type);
etm              1149 tools/perf/util/cs-etm.c 	ret = perf_session__deliver_synth_event(etm->session, event, &sample);
etm              1156 tools/perf/util/cs-etm.c 	if (etm->synth_opts.last_branch)
etm              1170 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = etmq->etm;
etm              1189 tools/perf/util/cs-etm.c 	sample.id = etmq->etm->branches_id;
etm              1190 tools/perf/util/cs-etm.c 	sample.stream_id = etmq->etm->branches_id;
etm              1202 tools/perf/util/cs-etm.c 	if (etm->synth_opts.last_branch) {
etm              1213 tools/perf/util/cs-etm.c 	if (etm->synth_opts.inject) {
etm              1215 tools/perf/util/cs-etm.c 					   etm->branches_sample_type);
etm              1220 tools/perf/util/cs-etm.c 	ret = perf_session__deliver_synth_event(etm->session, event, &sample);
etm              1259 tools/perf/util/cs-etm.c static int cs_etm__synth_events(struct cs_etm_auxtrace *etm,
etm              1270 tools/perf/util/cs-etm.c 		if (evsel->core.attr.type == etm->pmu_type) {
etm              1287 tools/perf/util/cs-etm.c 	if (etm->timeless_decoding)
etm              1306 tools/perf/util/cs-etm.c 	if (etm->synth_opts.branches) {
etm              1313 tools/perf/util/cs-etm.c 		etm->sample_branches = true;
etm              1314 tools/perf/util/cs-etm.c 		etm->branches_sample_type = attr.sample_type;
etm              1315 tools/perf/util/cs-etm.c 		etm->branches_id = id;
etm              1320 tools/perf/util/cs-etm.c 	if (etm->synth_opts.last_branch)
etm              1323 tools/perf/util/cs-etm.c 	if (etm->synth_opts.instructions) {
etm              1325 tools/perf/util/cs-etm.c 		attr.sample_period = etm->synth_opts.period;
etm              1326 tools/perf/util/cs-etm.c 		etm->instructions_sample_period = attr.sample_period;
etm              1330 tools/perf/util/cs-etm.c 		etm->sample_instructions = true;
etm              1331 tools/perf/util/cs-etm.c 		etm->instructions_sample_type = attr.sample_type;
etm              1332 tools/perf/util/cs-etm.c 		etm->instructions_id = id;
etm              1342 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = etmq->etm;
etm              1354 tools/perf/util/cs-etm.c 	if (etm->synth_opts.last_branch &&
etm              1359 tools/perf/util/cs-etm.c 	if (etm->sample_instructions &&
etm              1360 tools/perf/util/cs-etm.c 	    tidq->period_instructions >= etm->instructions_sample_period) {
etm              1368 tools/perf/util/cs-etm.c 			etm->instructions_sample_period;
etm              1380 tools/perf/util/cs-etm.c 			etmq, tidq, addr, etm->instructions_sample_period);
etm              1388 tools/perf/util/cs-etm.c 	if (etm->sample_branches) {
etm              1407 tools/perf/util/cs-etm.c 	if (etm->sample_branches || etm->synth_opts.last_branch) {
etm              1443 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = etmq->etm;
etm              1450 tools/perf/util/cs-etm.c 	if (etmq->etm->synth_opts.last_branch &&
etm              1471 tools/perf/util/cs-etm.c 	if (etm->sample_branches &&
etm              1479 tools/perf/util/cs-etm.c 	if (etm->sample_branches || etm->synth_opts.last_branch) {
etm              1506 tools/perf/util/cs-etm.c 	if (etmq->etm->synth_opts.last_branch &&
etm              2061 tools/perf/util/cs-etm.c static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm,
etm              2065 tools/perf/util/cs-etm.c 	struct auxtrace_queues *queues = &etm->queues;
etm              2068 tools/perf/util/cs-etm.c 		struct auxtrace_queue *queue = &etm->queues.queue_array[i];
etm              2082 tools/perf/util/cs-etm.c 			cs_etm__set_pid_tid_cpu(etm, tidq);
etm              2090 tools/perf/util/cs-etm.c static int cs_etm__process_queues(struct cs_etm_auxtrace *etm)
etm              2101 tools/perf/util/cs-etm.c 		if (!etm->heap.heap_cnt)
etm              2105 tools/perf/util/cs-etm.c 		cs_queue_nr = etm->heap.heap_array[0].queue_nr;
etm              2108 tools/perf/util/cs-etm.c 		queue = &etm->queues.queue_array[queue_nr];
etm              2115 tools/perf/util/cs-etm.c 		auxtrace_heap__pop(&etm->heap);
etm              2182 tools/perf/util/cs-etm.c 		ret = auxtrace_heap__add(&etm->heap, cs_queue_nr, timestamp);
etm              2189 tools/perf/util/cs-etm.c static int cs_etm__process_itrace_start(struct cs_etm_auxtrace *etm,
etm              2194 tools/perf/util/cs-etm.c 	if (etm->timeless_decoding)
etm              2201 tools/perf/util/cs-etm.c 	th = machine__findnew_thread(etm->machine,
etm              2212 tools/perf/util/cs-etm.c static int cs_etm__process_switch_cpu_wide(struct cs_etm_auxtrace *etm,
etm              2222 tools/perf/util/cs-etm.c 	if (etm->timeless_decoding)
etm              2237 tools/perf/util/cs-etm.c 	th = machine__findnew_thread(etm->machine,
etm              2255 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = container_of(session->auxtrace,
etm              2272 tools/perf/util/cs-etm.c 	if (timestamp || etm->timeless_decoding) {
etm              2273 tools/perf/util/cs-etm.c 		err = cs_etm__update_queues(etm);
etm              2278 tools/perf/util/cs-etm.c 	if (etm->timeless_decoding &&
etm              2280 tools/perf/util/cs-etm.c 		return cs_etm__process_timeless_queues(etm,
etm              2284 tools/perf/util/cs-etm.c 		return cs_etm__process_itrace_start(etm, event);
etm              2286 tools/perf/util/cs-etm.c 		return cs_etm__process_switch_cpu_wide(etm, event);
etm              2288 tools/perf/util/cs-etm.c 	if (!etm->timeless_decoding &&
etm              2290 tools/perf/util/cs-etm.c 		return cs_etm__process_queues(etm);
etm              2299 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = container_of(session->auxtrace,
etm              2302 tools/perf/util/cs-etm.c 	if (!etm->data_queued) {
etm              2317 tools/perf/util/cs-etm.c 		err = auxtrace_queues__add_event(&etm->queues, session,
etm              2324 tools/perf/util/cs-etm.c 				cs_etm__dump_event(etm, buffer);
etm              2332 tools/perf/util/cs-etm.c static bool cs_etm__is_timeless_decoding(struct cs_etm_auxtrace *etm)
etm              2335 tools/perf/util/cs-etm.c 	struct evlist *evlist = etm->session->evlist;
etm              2401 tools/perf/util/cs-etm.c 	struct cs_etm_auxtrace *etm = NULL;
etm              2528 tools/perf/util/cs-etm.c 	etm = zalloc(sizeof(*etm));
etm              2530 tools/perf/util/cs-etm.c 	if (!etm) {
etm              2535 tools/perf/util/cs-etm.c 	err = auxtrace_queues__init(&etm->queues);
etm              2539 tools/perf/util/cs-etm.c 	etm->session = session;
etm              2540 tools/perf/util/cs-etm.c 	etm->machine = &session->machines.host;
etm              2542 tools/perf/util/cs-etm.c 	etm->num_cpu = num_cpu;
etm              2543 tools/perf/util/cs-etm.c 	etm->pmu_type = pmu_type;
etm              2544 tools/perf/util/cs-etm.c 	etm->snapshot_mode = (hdr[CS_ETM_SNAPSHOT] != 0);
etm              2545 tools/perf/util/cs-etm.c 	etm->metadata = metadata;
etm              2546 tools/perf/util/cs-etm.c 	etm->auxtrace_type = auxtrace_info->type;
etm              2547 tools/perf/util/cs-etm.c 	etm->timeless_decoding = cs_etm__is_timeless_decoding(etm);
etm              2549 tools/perf/util/cs-etm.c 	etm->auxtrace.process_event = cs_etm__process_event;
etm              2550 tools/perf/util/cs-etm.c 	etm->auxtrace.process_auxtrace_event = cs_etm__process_auxtrace_event;
etm              2551 tools/perf/util/cs-etm.c 	etm->auxtrace.flush_events = cs_etm__flush_events;
etm              2552 tools/perf/util/cs-etm.c 	etm->auxtrace.free_events = cs_etm__free_events;
etm              2553 tools/perf/util/cs-etm.c 	etm->auxtrace.free = cs_etm__free;
etm              2554 tools/perf/util/cs-etm.c 	session->auxtrace = &etm->auxtrace;
etm              2556 tools/perf/util/cs-etm.c 	etm->unknown_thread = thread__new(999999999, 999999999);
etm              2557 tools/perf/util/cs-etm.c 	if (!etm->unknown_thread) {
etm              2566 tools/perf/util/cs-etm.c 	INIT_LIST_HEAD(&etm->unknown_thread->node);
etm              2568 tools/perf/util/cs-etm.c 	err = thread__set_comm(etm->unknown_thread, "unknown", 0);
etm              2572 tools/perf/util/cs-etm.c 	if (thread__init_map_groups(etm->unknown_thread, etm->machine)) {
etm              2583 tools/perf/util/cs-etm.c 		etm->synth_opts = *session->itrace_synth_opts;
etm              2585 tools/perf/util/cs-etm.c 		itrace_synth_opts__set_default(&etm->synth_opts,
etm              2587 tools/perf/util/cs-etm.c 		etm->synth_opts.callchain = false;
etm              2590 tools/perf/util/cs-etm.c 	err = cs_etm__synth_events(etm, session);
etm              2594 tools/perf/util/cs-etm.c 	err = auxtrace_queues__process_index(&etm->queues, session);
etm              2598 tools/perf/util/cs-etm.c 	etm->data_queued = etm->queues.populated;
etm              2603 tools/perf/util/cs-etm.c 	thread__zput(etm->unknown_thread);
etm              2605 tools/perf/util/cs-etm.c 	auxtrace_queues__free(&etm->queues);
etm              2608 tools/perf/util/cs-etm.c 	zfree(&etm);