Lines Matching refs:config

43 static void etm4_set_default_config(struct etmv4_config *config);
91 struct etmv4_config *config = &drvdata->config; in etm4_enable_hw() local
110 writel_relaxed(config->pe_sel, drvdata->base + TRCPROCSELR); in etm4_enable_hw()
111 writel_relaxed(config->cfg, drvdata->base + TRCCONFIGR); in etm4_enable_hw()
114 writel_relaxed(config->eventctrl0, drvdata->base + TRCEVENTCTL0R); in etm4_enable_hw()
115 writel_relaxed(config->eventctrl1, drvdata->base + TRCEVENTCTL1R); in etm4_enable_hw()
116 writel_relaxed(config->stall_ctrl, drvdata->base + TRCSTALLCTLR); in etm4_enable_hw()
117 writel_relaxed(config->ts_ctrl, drvdata->base + TRCTSCTLR); in etm4_enable_hw()
118 writel_relaxed(config->syncfreq, drvdata->base + TRCSYNCPR); in etm4_enable_hw()
119 writel_relaxed(config->ccctlr, drvdata->base + TRCCCCTLR); in etm4_enable_hw()
120 writel_relaxed(config->bb_ctrl, drvdata->base + TRCBBCTLR); in etm4_enable_hw()
122 writel_relaxed(config->vinst_ctrl, drvdata->base + TRCVICTLR); in etm4_enable_hw()
123 writel_relaxed(config->viiectlr, drvdata->base + TRCVIIECTLR); in etm4_enable_hw()
124 writel_relaxed(config->vissctlr, in etm4_enable_hw()
126 writel_relaxed(config->vipcssctlr, in etm4_enable_hw()
129 writel_relaxed(config->seq_ctrl[i], in etm4_enable_hw()
131 writel_relaxed(config->seq_rst, drvdata->base + TRCSEQRSTEVR); in etm4_enable_hw()
132 writel_relaxed(config->seq_state, drvdata->base + TRCSEQSTR); in etm4_enable_hw()
133 writel_relaxed(config->ext_inp, drvdata->base + TRCEXTINSELR); in etm4_enable_hw()
135 writel_relaxed(config->cntrldvr[i], in etm4_enable_hw()
137 writel_relaxed(config->cntr_ctrl[i], in etm4_enable_hw()
139 writel_relaxed(config->cntr_val[i], in etm4_enable_hw()
148 writel_relaxed(config->res_ctrl[i], in etm4_enable_hw()
152 writel_relaxed(config->ss_ctrl[i], in etm4_enable_hw()
154 writel_relaxed(config->ss_status[i], in etm4_enable_hw()
156 writel_relaxed(config->ss_pe_cmp[i], in etm4_enable_hw()
160 writeq_relaxed(config->addr_val[i], in etm4_enable_hw()
162 writeq_relaxed(config->addr_acc[i], in etm4_enable_hw()
166 writeq_relaxed(config->ctxid_pid[i], in etm4_enable_hw()
168 writel_relaxed(config->ctxid_mask0, drvdata->base + TRCCIDCCTLR0); in etm4_enable_hw()
169 writel_relaxed(config->ctxid_mask1, drvdata->base + TRCCIDCCTLR1); in etm4_enable_hw()
172 writeq_relaxed(config->vmid_val[i], in etm4_enable_hw()
174 writel_relaxed(config->vmid_mask0, drvdata->base + TRCVMIDCCTLR0); in etm4_enable_hw()
175 writel_relaxed(config->vmid_mask1, drvdata->base + TRCVMIDCCTLR1); in etm4_enable_hw()
234 struct etmv4_config *config = &drvdata->config; in etm4_config_timestamp_event() local
242 if (config->cntr_val[ctridx] == 0) in etm4_config_timestamp_event()
259 if (!config->res_ctrl[rselector]) in etm4_config_timestamp_event()
276 config->cntr_val[ctridx] = 1; in etm4_config_timestamp_event()
277 config->cntrldvr[ctridx] = 1; in etm4_config_timestamp_event()
284 config->cntr_ctrl[ctridx] = val; in etm4_config_timestamp_event()
289 config->res_ctrl[rselector] = val; in etm4_config_timestamp_event()
294 config->ts_ctrl = val; in etm4_config_timestamp_event()
305 struct etmv4_config *config = &drvdata->config; in etm4_parse_event_config() local
314 memset(config, 0, sizeof(struct etmv4_config)); in etm4_parse_event_config()
317 config->mode = ETM_MODE_EXCL_KERN; in etm4_parse_event_config()
320 config->mode = ETM_MODE_EXCL_USER; in etm4_parse_event_config()
323 etm4_set_default_config(config); in etm4_parse_event_config()
331 if (attr->config & BIT(ETM_OPT_CYCACC)) { in etm4_parse_event_config()
332 config->cfg |= BIT(4); in etm4_parse_event_config()
334 config->ccctlr = ETM_CYC_THRESHOLD_DEFAULT; in etm4_parse_event_config()
336 if (attr->config & BIT(ETM_OPT_TS)) { in etm4_parse_event_config()
352 config->cfg |= BIT(11); in etm4_parse_event_config()
355 if (attr->config & BIT(ETM_OPT_CTXTID)) in etm4_parse_event_config()
357 config->cfg |= BIT(ETM4_CFG_BIT_CTXTID); in etm4_parse_event_config()
360 if ((attr->config & BIT(ETM_OPT_RETSTK)) && drvdata->retstack) in etm4_parse_event_config()
362 config->cfg |= BIT(12); in etm4_parse_event_config()
734 static void etm4_set_default_config(struct etmv4_config *config) in etm4_set_default_config() argument
737 config->eventctrl0 = 0x0; in etm4_set_default_config()
738 config->eventctrl1 = 0x0; in etm4_set_default_config()
741 config->stall_ctrl = 0x0; in etm4_set_default_config()
744 config->syncfreq = 0xC; in etm4_set_default_config()
747 config->ts_ctrl = 0x0; in etm4_set_default_config()
750 config->vinst_ctrl |= BIT(0); in etm4_set_default_config()
753 static u64 etm4_get_ns_access_type(struct etmv4_config *config) in etm4_get_ns_access_type() argument
768 if (config->mode & ETM_MODE_EXCL_KERN) in etm4_get_ns_access_type()
770 } else if (config->mode & ETM_MODE_EXCL_KERN) { in etm4_get_ns_access_type()
774 if (config->mode & ETM_MODE_EXCL_USER) in etm4_get_ns_access_type()
780 static u64 etm4_get_access_type(struct etmv4_config *config) in etm4_get_access_type() argument
782 u64 access_type = etm4_get_ns_access_type(config); in etm4_get_access_type()
795 static void etm4_set_comparator_filter(struct etmv4_config *config, in etm4_set_comparator_filter() argument
798 u64 access_type = etm4_get_access_type(config); in etm4_set_comparator_filter()
801 config->addr_val[comparator] = start; in etm4_set_comparator_filter()
802 config->addr_acc[comparator] = access_type; in etm4_set_comparator_filter()
803 config->addr_type[comparator] = ETM_ADDR_TYPE_RANGE; in etm4_set_comparator_filter()
806 config->addr_val[comparator + 1] = stop; in etm4_set_comparator_filter()
807 config->addr_acc[comparator + 1] = access_type; in etm4_set_comparator_filter()
808 config->addr_type[comparator + 1] = ETM_ADDR_TYPE_RANGE; in etm4_set_comparator_filter()
825 config->viiectlr |= BIT(comparator / 2); in etm4_set_comparator_filter()
828 static void etm4_set_start_stop_filter(struct etmv4_config *config, in etm4_set_start_stop_filter() argument
833 u64 access_type = etm4_get_access_type(config); in etm4_set_start_stop_filter()
836 config->addr_val[comparator] = address; in etm4_set_start_stop_filter()
837 config->addr_acc[comparator] = access_type; in etm4_set_start_stop_filter()
838 config->addr_type[comparator] = type; in etm4_set_start_stop_filter()
846 config->vissctlr |= BIT(shift + comparator); in etm4_set_start_stop_filter()
849 static void etm4_set_default_filter(struct etmv4_config *config) in etm4_set_default_filter() argument
860 etm4_set_comparator_filter(config, start, stop, in etm4_set_default_filter()
867 config->vinst_ctrl |= BIT(9); in etm4_set_default_filter()
870 config->vissctlr = 0x0; in etm4_set_default_filter()
873 static void etm4_set_default(struct etmv4_config *config) in etm4_set_default() argument
875 if (WARN_ON_ONCE(!config)) in etm4_set_default()
887 etm4_set_default_config(config); in etm4_set_default()
888 etm4_set_default_filter(config); in etm4_set_default()
894 struct etmv4_config *config = &drvdata->config; in etm4_get_next_comparator() local
906 if (config->addr_type[index] == ETM_ADDR_TYPE_NONE && in etm4_get_next_comparator()
907 config->addr_type[index + 1] == ETM_ADDR_TYPE_NONE) in etm4_get_next_comparator()
915 if (config->addr_type[index] == ETM_ADDR_TYPE_NONE) in etm4_get_next_comparator()
935 struct etmv4_config *config = &drvdata->config; in etm4_set_event_filters() local
964 etm4_set_comparator_filter(config, in etm4_set_event_filters()
972 config->vinst_ctrl |= BIT(9); in etm4_set_event_filters()
975 config->vissctlr = 0x0; in etm4_set_event_filters()
985 etm4_set_start_stop_filter(config, address, in etm4_set_event_filters()
1000 config->vinst_ctrl |= BIT(9); in etm4_set_event_filters()
1003 config->viiectlr = 0x0; in etm4_set_event_filters()
1015 etm4_set_default_filter(config); in etm4_set_event_filters()
1021 void etm4_config_trace_mode(struct etmv4_config *config) in etm4_config_trace_mode() argument
1025 mode = config->mode; in etm4_config_trace_mode()
1035 addr_acc = config->addr_acc[ETM_DEFAULT_ADDR_COMP]; in etm4_config_trace_mode()
1040 addr_acc |= etm4_get_ns_access_type(config); in etm4_config_trace_mode()
1042 config->addr_acc[ETM_DEFAULT_ADDR_COMP] = addr_acc; in etm4_config_trace_mode()
1043 config->addr_acc[ETM_DEFAULT_ADDR_COMP + 1] = addr_acc; in etm4_config_trace_mode()
1148 etm4_set_default(&drvdata->config); in etm4_probe()