pmu_dev 489 drivers/hwtracing/coresight/coresight-etm-perf.c struct device *pmu_dev = etm_pmu.dev; pmu_dev 498 drivers/hwtracing/coresight/coresight-etm-perf.c ret = sysfs_create_link(&pmu_dev->kobj, &cs_dev->kobj, entry); pmu_dev 503 drivers/hwtracing/coresight/coresight-etm-perf.c sysfs_remove_link(&pmu_dev->kobj, entry); pmu_dev 525 drivers/hwtracing/coresight/coresight-etm-perf.c struct device *pmu_dev = etm_pmu.dev; pmu_dev 556 drivers/hwtracing/coresight/coresight-etm-perf.c ret = sysfs_add_file_to_group(&pmu_dev->kobj, pmu_dev 567 drivers/hwtracing/coresight/coresight-etm-perf.c struct device *pmu_dev = etm_pmu.dev; pmu_dev 577 drivers/hwtracing/coresight/coresight-etm-perf.c sysfs_remove_file_from_group(&pmu_dev->kobj, pmu_dev 108 drivers/perf/xgene_pmu.c void (*write_evttype)(struct xgene_pmu_dev *pmu_dev, int idx, u32 val); pmu_dev 109 drivers/perf/xgene_pmu.c void (*write_agentmsk)(struct xgene_pmu_dev *pmu_dev, u32 val); pmu_dev 110 drivers/perf/xgene_pmu.c void (*write_agent1msk)(struct xgene_pmu_dev *pmu_dev, u32 val); pmu_dev 111 drivers/perf/xgene_pmu.c void (*enable_counter)(struct xgene_pmu_dev *pmu_dev, int idx); pmu_dev 112 drivers/perf/xgene_pmu.c void (*disable_counter)(struct xgene_pmu_dev *pmu_dev, int idx); pmu_dev 113 drivers/perf/xgene_pmu.c void (*enable_counter_int)(struct xgene_pmu_dev *pmu_dev, int idx); pmu_dev 114 drivers/perf/xgene_pmu.c void (*disable_counter_int)(struct xgene_pmu_dev *pmu_dev, int idx); pmu_dev 115 drivers/perf/xgene_pmu.c void (*reset_counters)(struct xgene_pmu_dev *pmu_dev); pmu_dev 116 drivers/perf/xgene_pmu.c void (*start_counters)(struct xgene_pmu_dev *pmu_dev); pmu_dev 117 drivers/perf/xgene_pmu.c void (*stop_counters)(struct xgene_pmu_dev *pmu_dev); pmu_dev 141 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev; pmu_dev 610 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(dev_get_drvdata(dev)); pmu_dev 612 drivers/perf/xgene_pmu.c return cpumap_print_to_pagebuf(true, buf, &pmu_dev->parent->cpu); pmu_dev 695 drivers/perf/xgene_pmu.c static int get_next_avail_cntr(struct xgene_pmu_dev *pmu_dev) pmu_dev 699 drivers/perf/xgene_pmu.c cntr = find_first_zero_bit(pmu_dev->cntr_assign_mask, pmu_dev 700 drivers/perf/xgene_pmu.c pmu_dev->max_counters); pmu_dev 701 drivers/perf/xgene_pmu.c if (cntr == pmu_dev->max_counters) pmu_dev 703 drivers/perf/xgene_pmu.c set_bit(cntr, pmu_dev->cntr_assign_mask); pmu_dev 708 drivers/perf/xgene_pmu.c static void clear_avail_cntr(struct xgene_pmu_dev *pmu_dev, int cntr) pmu_dev 710 drivers/perf/xgene_pmu.c clear_bit(cntr, pmu_dev->cntr_assign_mask); pmu_dev 734 drivers/perf/xgene_pmu.c static inline u64 xgene_pmu_read_counter32(struct xgene_pmu_dev *pmu_dev, pmu_dev 737 drivers/perf/xgene_pmu.c return readl(pmu_dev->inf->csr + PMU_PMEVCNTR0 + (4 * idx)); pmu_dev 740 drivers/perf/xgene_pmu.c static inline u64 xgene_pmu_read_counter64(struct xgene_pmu_dev *pmu_dev, pmu_dev 752 drivers/perf/xgene_pmu.c hi = xgene_pmu_read_counter32(pmu_dev, 2 * idx + 1); pmu_dev 753 drivers/perf/xgene_pmu.c lo = xgene_pmu_read_counter32(pmu_dev, 2 * idx); pmu_dev 754 drivers/perf/xgene_pmu.c } while (hi != xgene_pmu_read_counter32(pmu_dev, 2 * idx + 1)); pmu_dev 760 drivers/perf/xgene_pmu.c xgene_pmu_write_counter32(struct xgene_pmu_dev *pmu_dev, int idx, u64 val) pmu_dev 762 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMEVCNTR0 + (4 * idx)); pmu_dev 766 drivers/perf/xgene_pmu.c xgene_pmu_write_counter64(struct xgene_pmu_dev *pmu_dev, int idx, u64 val) pmu_dev 774 drivers/perf/xgene_pmu.c xgene_pmu_write_counter32(pmu_dev, 2 * idx, cnt_lo); pmu_dev 775 drivers/perf/xgene_pmu.c xgene_pmu_write_counter32(pmu_dev, 2 * idx + 1, cnt_hi); pmu_dev 779 drivers/perf/xgene_pmu.c xgene_pmu_write_evttype(struct xgene_pmu_dev *pmu_dev, int idx, u32 val) pmu_dev 781 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMEVTYPER0 + (4 * idx)); pmu_dev 785 drivers/perf/xgene_pmu.c xgene_pmu_write_agentmsk(struct xgene_pmu_dev *pmu_dev, u32 val) pmu_dev 787 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMAMR0); pmu_dev 791 drivers/perf/xgene_pmu.c xgene_pmu_v3_write_agentmsk(struct xgene_pmu_dev *pmu_dev, u32 val) { } pmu_dev 794 drivers/perf/xgene_pmu.c xgene_pmu_write_agent1msk(struct xgene_pmu_dev *pmu_dev, u32 val) pmu_dev 796 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMAMR1); pmu_dev 800 drivers/perf/xgene_pmu.c xgene_pmu_v3_write_agent1msk(struct xgene_pmu_dev *pmu_dev, u32 val) { } pmu_dev 803 drivers/perf/xgene_pmu.c xgene_pmu_enable_counter(struct xgene_pmu_dev *pmu_dev, int idx) pmu_dev 807 drivers/perf/xgene_pmu.c val = readl(pmu_dev->inf->csr + PMU_PMCNTENSET); pmu_dev 809 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMCNTENSET); pmu_dev 813 drivers/perf/xgene_pmu.c xgene_pmu_disable_counter(struct xgene_pmu_dev *pmu_dev, int idx) pmu_dev 817 drivers/perf/xgene_pmu.c val = readl(pmu_dev->inf->csr + PMU_PMCNTENCLR); pmu_dev 819 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMCNTENCLR); pmu_dev 823 drivers/perf/xgene_pmu.c xgene_pmu_enable_counter_int(struct xgene_pmu_dev *pmu_dev, int idx) pmu_dev 827 drivers/perf/xgene_pmu.c val = readl(pmu_dev->inf->csr + PMU_PMINTENSET); pmu_dev 829 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMINTENSET); pmu_dev 833 drivers/perf/xgene_pmu.c xgene_pmu_disable_counter_int(struct xgene_pmu_dev *pmu_dev, int idx) pmu_dev 837 drivers/perf/xgene_pmu.c val = readl(pmu_dev->inf->csr + PMU_PMINTENCLR); pmu_dev 839 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMINTENCLR); pmu_dev 842 drivers/perf/xgene_pmu.c static inline void xgene_pmu_reset_counters(struct xgene_pmu_dev *pmu_dev) pmu_dev 846 drivers/perf/xgene_pmu.c val = readl(pmu_dev->inf->csr + PMU_PMCR); pmu_dev 848 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMCR); pmu_dev 851 drivers/perf/xgene_pmu.c static inline void xgene_pmu_start_counters(struct xgene_pmu_dev *pmu_dev) pmu_dev 855 drivers/perf/xgene_pmu.c val = readl(pmu_dev->inf->csr + PMU_PMCR); pmu_dev 857 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMCR); pmu_dev 860 drivers/perf/xgene_pmu.c static inline void xgene_pmu_stop_counters(struct xgene_pmu_dev *pmu_dev) pmu_dev 864 drivers/perf/xgene_pmu.c val = readl(pmu_dev->inf->csr + PMU_PMCR); pmu_dev 866 drivers/perf/xgene_pmu.c writel(val, pmu_dev->inf->csr + PMU_PMCR); pmu_dev 871 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(pmu); pmu_dev 872 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 873 drivers/perf/xgene_pmu.c int enabled = bitmap_weight(pmu_dev->cntr_assign_mask, pmu_dev 874 drivers/perf/xgene_pmu.c pmu_dev->max_counters); pmu_dev 879 drivers/perf/xgene_pmu.c xgene_pmu->ops->start_counters(pmu_dev); pmu_dev 884 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(pmu); pmu_dev 885 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 887 drivers/perf/xgene_pmu.c xgene_pmu->ops->stop_counters(pmu_dev); pmu_dev 892 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 919 drivers/perf/xgene_pmu.c event->cpu = cpumask_first(&pmu_dev->parent->cpu); pmu_dev 949 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 950 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 952 drivers/perf/xgene_pmu.c xgene_pmu->ops->write_evttype(pmu_dev, GET_CNTR(event), pmu_dev 954 drivers/perf/xgene_pmu.c xgene_pmu->ops->write_agentmsk(pmu_dev, ~((u32)GET_AGENTID(event))); pmu_dev 955 drivers/perf/xgene_pmu.c if (pmu_dev->inf->type == PMU_TYPE_IOB) pmu_dev 956 drivers/perf/xgene_pmu.c xgene_pmu->ops->write_agent1msk(pmu_dev, pmu_dev 959 drivers/perf/xgene_pmu.c xgene_pmu->ops->enable_counter(pmu_dev, GET_CNTR(event)); pmu_dev 960 drivers/perf/xgene_pmu.c xgene_pmu->ops->enable_counter_int(pmu_dev, GET_CNTR(event)); pmu_dev 965 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 966 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 968 drivers/perf/xgene_pmu.c xgene_pmu->ops->disable_counter(pmu_dev, GET_CNTR(event)); pmu_dev 969 drivers/perf/xgene_pmu.c xgene_pmu->ops->disable_counter_int(pmu_dev, GET_CNTR(event)); pmu_dev 974 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 975 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 987 drivers/perf/xgene_pmu.c xgene_pmu->ops->write_counter(pmu_dev, hw->idx, val); pmu_dev 992 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 993 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 999 drivers/perf/xgene_pmu.c new_raw_count = xgene_pmu->ops->read_counter(pmu_dev, GET_CNTR(event)); pmu_dev 1005 drivers/perf/xgene_pmu.c delta = (new_raw_count - prev_raw_count) & pmu_dev->max_period; pmu_dev 1017 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 1018 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 1032 drivers/perf/xgene_pmu.c xgene_pmu->ops->write_counter(pmu_dev, GET_CNTR(event), pmu_dev 1060 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 1066 drivers/perf/xgene_pmu.c hw->idx = get_next_avail_cntr(pmu_dev); pmu_dev 1071 drivers/perf/xgene_pmu.c pmu_dev->pmu_counter_event[hw->idx] = event; pmu_dev 1081 drivers/perf/xgene_pmu.c struct xgene_pmu_dev *pmu_dev = to_pmu_dev(event->pmu); pmu_dev 1087 drivers/perf/xgene_pmu.c clear_avail_cntr(pmu_dev, GET_CNTR(event)); pmu_dev 1090 drivers/perf/xgene_pmu.c pmu_dev->pmu_counter_event[hw->idx] = NULL; pmu_dev 1093 drivers/perf/xgene_pmu.c static int xgene_init_perf(struct xgene_pmu_dev *pmu_dev, char *name) pmu_dev 1097 drivers/perf/xgene_pmu.c if (pmu_dev->parent->version == PCP_PMU_V3) pmu_dev 1098 drivers/perf/xgene_pmu.c pmu_dev->max_period = PMU_V3_CNT_MAX_PERIOD; pmu_dev 1100 drivers/perf/xgene_pmu.c pmu_dev->max_period = PMU_CNT_MAX_PERIOD; pmu_dev 1102 drivers/perf/xgene_pmu.c xgene_pmu = pmu_dev->parent; pmu_dev 1104 drivers/perf/xgene_pmu.c pmu_dev->max_counters = 1; pmu_dev 1106 drivers/perf/xgene_pmu.c pmu_dev->max_counters = PMU_MAX_COUNTERS; pmu_dev 1109 drivers/perf/xgene_pmu.c pmu_dev->pmu = (struct pmu) { pmu_dev 1110 drivers/perf/xgene_pmu.c .attr_groups = pmu_dev->attr_groups, pmu_dev 1124 drivers/perf/xgene_pmu.c xgene_pmu->ops->stop_counters(pmu_dev); pmu_dev 1125 drivers/perf/xgene_pmu.c xgene_pmu->ops->reset_counters(pmu_dev); pmu_dev 1127 drivers/perf/xgene_pmu.c return perf_pmu_register(&pmu_dev->pmu, name, -1); pmu_dev 1141 drivers/perf/xgene_pmu.c ctx->pmu_dev = pmu; pmu_dev 1192 drivers/perf/xgene_pmu.c static void _xgene_pmu_isr(int irq, struct xgene_pmu_dev *pmu_dev) pmu_dev 1194 drivers/perf/xgene_pmu.c struct xgene_pmu *xgene_pmu = pmu_dev->parent; pmu_dev 1195 drivers/perf/xgene_pmu.c void __iomem *csr = pmu_dev->inf->csr; pmu_dev 1199 drivers/perf/xgene_pmu.c xgene_pmu->ops->stop_counters(pmu_dev); pmu_dev 1218 drivers/perf/xgene_pmu.c struct perf_event *event = pmu_dev->pmu_counter_event[idx]; pmu_dev 1229 drivers/perf/xgene_pmu.c xgene_pmu->ops->start_counters(pmu_dev); pmu_dev 1257 drivers/perf/xgene_pmu.c _xgene_pmu_isr(irq, ctx->pmu_dev); pmu_dev 1262 drivers/perf/xgene_pmu.c _xgene_pmu_isr(irq, ctx->pmu_dev); pmu_dev 1267 drivers/perf/xgene_pmu.c _xgene_pmu_isr(irq, ctx->pmu_dev); pmu_dev 1272 drivers/perf/xgene_pmu.c _xgene_pmu_isr(irq, ctx->pmu_dev); pmu_dev 1822 drivers/perf/xgene_pmu.c perf_pmu_migrate_context(&ctx->pmu_dev->pmu, cpu, target); pmu_dev 1825 drivers/perf/xgene_pmu.c perf_pmu_migrate_context(&ctx->pmu_dev->pmu, cpu, target); pmu_dev 1828 drivers/perf/xgene_pmu.c perf_pmu_migrate_context(&ctx->pmu_dev->pmu, cpu, target); pmu_dev 1831 drivers/perf/xgene_pmu.c perf_pmu_migrate_context(&ctx->pmu_dev->pmu, cpu, target); pmu_dev 1959 drivers/perf/xgene_pmu.c perf_pmu_unregister(&ctx->pmu_dev->pmu); pmu_dev 9995 kernel/events/core.c ATTRIBUTE_GROUPS(pmu_dev);