Lines Matching refs:config

41 static void etm4_set_default_config(struct etmv4_config *config);
84 struct etmv4_config *config = &drvdata->config; in etm4_enable_hw() local
98 writel_relaxed(config->pe_sel, drvdata->base + TRCPROCSELR); in etm4_enable_hw()
99 writel_relaxed(config->cfg, drvdata->base + TRCCONFIGR); in etm4_enable_hw()
102 writel_relaxed(config->eventctrl0, drvdata->base + TRCEVENTCTL0R); in etm4_enable_hw()
103 writel_relaxed(config->eventctrl1, drvdata->base + TRCEVENTCTL1R); in etm4_enable_hw()
104 writel_relaxed(config->stall_ctrl, drvdata->base + TRCSTALLCTLR); in etm4_enable_hw()
105 writel_relaxed(config->ts_ctrl, drvdata->base + TRCTSCTLR); in etm4_enable_hw()
106 writel_relaxed(config->syncfreq, drvdata->base + TRCSYNCPR); in etm4_enable_hw()
107 writel_relaxed(config->ccctlr, drvdata->base + TRCCCCTLR); in etm4_enable_hw()
108 writel_relaxed(config->bb_ctrl, drvdata->base + TRCBBCTLR); in etm4_enable_hw()
110 writel_relaxed(config->vinst_ctrl, drvdata->base + TRCVICTLR); in etm4_enable_hw()
111 writel_relaxed(config->viiectlr, drvdata->base + TRCVIIECTLR); in etm4_enable_hw()
112 writel_relaxed(config->vissctlr, in etm4_enable_hw()
114 writel_relaxed(config->vipcssctlr, in etm4_enable_hw()
117 writel_relaxed(config->seq_ctrl[i], in etm4_enable_hw()
119 writel_relaxed(config->seq_rst, drvdata->base + TRCSEQRSTEVR); in etm4_enable_hw()
120 writel_relaxed(config->seq_state, drvdata->base + TRCSEQSTR); in etm4_enable_hw()
121 writel_relaxed(config->ext_inp, drvdata->base + TRCEXTINSELR); in etm4_enable_hw()
123 writel_relaxed(config->cntrldvr[i], in etm4_enable_hw()
125 writel_relaxed(config->cntr_ctrl[i], in etm4_enable_hw()
127 writel_relaxed(config->cntr_val[i], in etm4_enable_hw()
133 writel_relaxed(config->res_ctrl[i], in etm4_enable_hw()
137 writel_relaxed(config->ss_ctrl[i], in etm4_enable_hw()
139 writel_relaxed(config->ss_status[i], in etm4_enable_hw()
141 writel_relaxed(config->ss_pe_cmp[i], in etm4_enable_hw()
145 writeq_relaxed(config->addr_val[i], in etm4_enable_hw()
147 writeq_relaxed(config->addr_acc[i], in etm4_enable_hw()
151 writeq_relaxed(config->ctxid_pid[i], in etm4_enable_hw()
153 writel_relaxed(config->ctxid_mask0, drvdata->base + TRCCIDCCTLR0); in etm4_enable_hw()
154 writel_relaxed(config->ctxid_mask1, drvdata->base + TRCCIDCCTLR1); in etm4_enable_hw()
157 writeq_relaxed(config->vmid_val[i], in etm4_enable_hw()
159 writel_relaxed(config->vmid_mask0, drvdata->base + TRCVMIDCCTLR0); in etm4_enable_hw()
160 writel_relaxed(config->vmid_mask1, drvdata->base + TRCVMIDCCTLR1); in etm4_enable_hw()
186 struct etmv4_config *config = &drvdata->config; in etm4_parse_event_config() local
195 memset(config, 0, sizeof(struct etmv4_config)); in etm4_parse_event_config()
198 config->mode = ETM_MODE_EXCL_KERN; in etm4_parse_event_config()
201 config->mode = ETM_MODE_EXCL_USER; in etm4_parse_event_config()
204 etm4_set_default_config(config); in etm4_parse_event_config()
212 if (attr->config & BIT(ETM_OPT_CYCACC)) { in etm4_parse_event_config()
213 config->cfg |= BIT(4); in etm4_parse_event_config()
215 config->ccctlr = ETM_CYC_THRESHOLD_DEFAULT; in etm4_parse_event_config()
217 if (attr->config & BIT(ETM_OPT_TS)) in etm4_parse_event_config()
219 config->cfg |= BIT(11); in etm4_parse_event_config()
221 if ((attr->config & BIT(ETM_OPT_RETSTK)) && drvdata->retstack) in etm4_parse_event_config()
223 config->cfg |= BIT(12); in etm4_parse_event_config()
589 static void etm4_set_default_config(struct etmv4_config *config) in etm4_set_default_config() argument
592 config->eventctrl0 = 0x0; in etm4_set_default_config()
593 config->eventctrl1 = 0x0; in etm4_set_default_config()
596 config->stall_ctrl = 0x0; in etm4_set_default_config()
599 config->syncfreq = 0xC; in etm4_set_default_config()
602 config->ts_ctrl = 0x0; in etm4_set_default_config()
605 config->vinst_ctrl |= BIT(0); in etm4_set_default_config()
608 static u64 etm4_get_access_type(struct etmv4_config *config) in etm4_get_access_type() argument
624 if (config->mode & ETM_MODE_EXCL_KERN) in etm4_get_access_type()
627 if (config->mode & ETM_MODE_EXCL_USER) in etm4_get_access_type()
641 static void etm4_set_comparator_filter(struct etmv4_config *config, in etm4_set_comparator_filter() argument
644 u64 access_type = etm4_get_access_type(config); in etm4_set_comparator_filter()
647 config->addr_val[comparator] = start; in etm4_set_comparator_filter()
648 config->addr_acc[comparator] = access_type; in etm4_set_comparator_filter()
649 config->addr_type[comparator] = ETM_ADDR_TYPE_RANGE; in etm4_set_comparator_filter()
652 config->addr_val[comparator + 1] = stop; in etm4_set_comparator_filter()
653 config->addr_acc[comparator + 1] = access_type; in etm4_set_comparator_filter()
654 config->addr_type[comparator + 1] = ETM_ADDR_TYPE_RANGE; in etm4_set_comparator_filter()
671 config->viiectlr |= BIT(comparator / 2); in etm4_set_comparator_filter()
674 static void etm4_set_start_stop_filter(struct etmv4_config *config, in etm4_set_start_stop_filter() argument
679 u64 access_type = etm4_get_access_type(config); in etm4_set_start_stop_filter()
682 config->addr_val[comparator] = address; in etm4_set_start_stop_filter()
683 config->addr_acc[comparator] = access_type; in etm4_set_start_stop_filter()
684 config->addr_type[comparator] = type; in etm4_set_start_stop_filter()
692 config->vissctlr |= BIT(shift + comparator); in etm4_set_start_stop_filter()
695 static void etm4_set_default_filter(struct etmv4_config *config) in etm4_set_default_filter() argument
706 etm4_set_comparator_filter(config, start, stop, in etm4_set_default_filter()
713 config->vinst_ctrl |= BIT(9); in etm4_set_default_filter()
716 config->vissctlr = 0x0; in etm4_set_default_filter()
719 static void etm4_set_default(struct etmv4_config *config) in etm4_set_default() argument
721 if (WARN_ON_ONCE(!config)) in etm4_set_default()
733 etm4_set_default_config(config); in etm4_set_default()
734 etm4_set_default_filter(config); in etm4_set_default()
740 struct etmv4_config *config = &drvdata->config; in etm4_get_next_comparator() local
752 if (config->addr_type[index] == ETM_ADDR_TYPE_NONE && in etm4_get_next_comparator()
753 config->addr_type[index + 1] == ETM_ADDR_TYPE_NONE) in etm4_get_next_comparator()
761 if (config->addr_type[index] == ETM_ADDR_TYPE_NONE) in etm4_get_next_comparator()
781 struct etmv4_config *config = &drvdata->config; in etm4_set_event_filters() local
810 etm4_set_comparator_filter(config, in etm4_set_event_filters()
818 config->vinst_ctrl |= BIT(9); in etm4_set_event_filters()
821 config->vissctlr = 0x0; in etm4_set_event_filters()
831 etm4_set_start_stop_filter(config, address, in etm4_set_event_filters()
846 config->vinst_ctrl |= BIT(9); in etm4_set_event_filters()
849 config->viiectlr = 0x0; in etm4_set_event_filters()
861 etm4_set_default_filter(config); in etm4_set_event_filters()
867 void etm4_config_trace_mode(struct etmv4_config *config) in etm4_config_trace_mode() argument
871 mode = config->mode; in etm4_config_trace_mode()
881 addr_acc = config->addr_acc[ETM_DEFAULT_ADDR_COMP]; in etm4_config_trace_mode()
898 config->addr_acc[ETM_DEFAULT_ADDR_COMP] = addr_acc; in etm4_config_trace_mode()
899 config->addr_acc[ETM_DEFAULT_ADDR_COMP + 1] = addr_acc; in etm4_config_trace_mode()
1009 etm4_set_default(&drvdata->config); in etm4_probe()