Lines Matching defs:event

117 static void l2x0_pmu_event_read(struct perf_event *event)
119 struct hw_perf_event *hw = &event->hw;
128 local64_add((new_count - prev_count) & mask, &event->count);
133 static void l2x0_pmu_event_configure(struct perf_event *event)
135 struct hw_perf_event *hw = &event->hw;
160 struct perf_event *event = events[i];
162 if (!event)
165 l2x0_pmu_event_read(event);
166 l2x0_pmu_event_configure(event);
177 static void __l2x0_pmu_event_enable(int idx, u32 event)
181 val = event << L2X0_EVENT_CNT_CFG_SRC_SHIFT;
186 static void l2x0_pmu_event_start(struct perf_event *event, int flags)
188 struct hw_perf_event *hw = &event->hw;
190 if (WARN_ON_ONCE(!(event->hw.state & PERF_HES_STOPPED)))
195 l2x0_pmu_event_configure(event);
212 static void l2x0_pmu_event_stop(struct perf_event *event, int flags)
214 struct hw_perf_event *hw = &event->hw;
216 if (WARN_ON_ONCE(event->hw.state & PERF_HES_STOPPED))
224 l2x0_pmu_event_read(event);
229 static int l2x0_pmu_event_add(struct perf_event *event, int flags)
231 struct hw_perf_event *hw = &event->hw;
239 * event->cpu (this is the same one as presented in "cpumask"
246 events[idx] = event;
249 l2x0_pmu_event_configure(event);
254 l2x0_pmu_event_start(event, 0);
259 static void l2x0_pmu_event_del(struct perf_event *event, int flags)
261 struct hw_perf_event *hw = &event->hw;
263 l2x0_pmu_event_stop(event, PERF_EF_UPDATE);
272 static bool l2x0_pmu_group_is_valid(struct perf_event *event)
274 struct pmu *pmu = event->pmu;
275 struct perf_event *leader = event->group_leader;
294 static int l2x0_pmu_event_init(struct perf_event *event)
296 struct hw_perf_event *hw = &event->hw;
298 if (event->attr.type != l2x0_pmu->type)
301 if (is_sampling_event(event) ||
302 event->attach_state & PERF_ATTACH_TASK)
305 if (event->cpu < 0)
308 if (event->attr.config & ~L2X0_EVENT_CNT_CFG_SRC_MASK)
311 hw->config_base = event->attr.config;
313 if (!l2x0_pmu_group_is_valid(event))
316 event->cpu = cpumask_first(&pmu_cpu);