Lines Matching refs:event
260 static void bfin_perf_event_update(struct perf_event *event, in bfin_perf_event_update() argument
298 local64_add(delta, &event->count); in bfin_perf_event_update()
301 static void bfin_pmu_stop(struct perf_event *event, int flags) in bfin_pmu_stop() argument
304 struct hw_perf_event *hwc = &event->hw; in bfin_pmu_stop()
307 if (!(event->hw.state & PERF_HES_STOPPED)) { in bfin_pmu_stop()
310 event->hw.state |= PERF_HES_STOPPED; in bfin_pmu_stop()
313 if ((flags & PERF_EF_UPDATE) && !(event->hw.state & PERF_HES_UPTODATE)) { in bfin_pmu_stop()
314 bfin_perf_event_update(event, &event->hw, idx); in bfin_pmu_stop()
315 event->hw.state |= PERF_HES_UPTODATE; in bfin_pmu_stop()
319 static void bfin_pmu_start(struct perf_event *event, int flags) in bfin_pmu_start() argument
322 struct hw_perf_event *hwc = &event->hw; in bfin_pmu_start()
329 WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE)); in bfin_pmu_start()
331 cpuc->events[idx] = event; in bfin_pmu_start()
332 event->hw.state = 0; in bfin_pmu_start()
336 static void bfin_pmu_del(struct perf_event *event, int flags) in bfin_pmu_del() argument
340 bfin_pmu_stop(event, PERF_EF_UPDATE); in bfin_pmu_del()
341 __clear_bit(event->hw.idx, cpuc->used_mask); in bfin_pmu_del()
343 perf_event_update_userpage(event); in bfin_pmu_del()
346 static int bfin_pmu_add(struct perf_event *event, int flags) in bfin_pmu_add() argument
349 struct hw_perf_event *hwc = &event->hw; in bfin_pmu_add()
353 perf_pmu_disable(event->pmu); in bfin_pmu_add()
366 event->hw.state = PERF_HES_UPTODATE | PERF_HES_STOPPED; in bfin_pmu_add()
368 bfin_pmu_start(event, PERF_EF_RELOAD); in bfin_pmu_add()
370 perf_event_update_userpage(event); in bfin_pmu_add()
373 perf_pmu_enable(event->pmu); in bfin_pmu_add()
377 static void bfin_pmu_read(struct perf_event *event) in bfin_pmu_read() argument
379 bfin_perf_event_update(event, &event->hw, event->hw.idx); in bfin_pmu_read()
382 static int bfin_pmu_event_init(struct perf_event *event) in bfin_pmu_event_init() argument
384 struct perf_event_attr *attr = &event->attr; in bfin_pmu_event_init()
385 struct hw_perf_event *hwc = &event->hw; in bfin_pmu_event_init()
425 struct perf_event *event; in bfin_pmu_enable() local
430 event = cpuc->events[i]; in bfin_pmu_enable()
431 if (!event) in bfin_pmu_enable()
433 hwc = &event->hw; in bfin_pmu_enable()