Symbol: xgene_pmu
drivers/perf/xgene_pmu.c
1004
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
1018
xgene_pmu->ops->write_counter(pmu_dev, GET_CNTR(event),
drivers/perf/xgene_pmu.c
102
void (*mask_int)(struct xgene_pmu *pmu);
drivers/perf/xgene_pmu.c
103
void (*unmask_int)(struct xgene_pmu *pmu);
drivers/perf/xgene_pmu.c
1081
struct xgene_pmu *xgene_pmu;
drivers/perf/xgene_pmu.c
1088
xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
1089
if (xgene_pmu->version == PCP_PMU_V1)
drivers/perf/xgene_pmu.c
1111
xgene_pmu->ops->stop_counters(pmu_dev);
drivers/perf/xgene_pmu.c
1112
xgene_pmu->ops->reset_counters(pmu_dev);
drivers/perf/xgene_pmu.c
1118
xgene_pmu_dev_add(struct xgene_pmu *xgene_pmu, struct xgene_pmu_dev_ctx *ctx)
drivers/perf/xgene_pmu.c
1120
struct device *dev = xgene_pmu->dev;
drivers/perf/xgene_pmu.c
1126
pmu->parent = xgene_pmu;
drivers/perf/xgene_pmu.c
1132
if (!(xgene_pmu->l3c_active_mask & pmu->inf->enable_mask))
drivers/perf/xgene_pmu.c
1134
if (xgene_pmu->version == PCP_PMU_V3)
drivers/perf/xgene_pmu.c
1140
if (xgene_pmu->version == PCP_PMU_V3)
drivers/perf/xgene_pmu.c
1146
if (xgene_pmu->version == PCP_PMU_V3)
drivers/perf/xgene_pmu.c
1150
if (!(xgene_pmu->mcb_active_mask & pmu->inf->enable_mask))
drivers/perf/xgene_pmu.c
1152
if (xgene_pmu->version == PCP_PMU_V3)
drivers/perf/xgene_pmu.c
1158
if (!(xgene_pmu->mc_active_mask & pmu->inf->enable_mask))
drivers/perf/xgene_pmu.c
1160
if (xgene_pmu->version == PCP_PMU_V3)
drivers/perf/xgene_pmu.c
1181
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
1186
xgene_pmu->ops->stop_counters(pmu_dev);
drivers/perf/xgene_pmu.c
1188
if (xgene_pmu->version == PCP_PMU_V3)
drivers/perf/xgene_pmu.c
1197
if (xgene_pmu->version == PCP_PMU_V1)
drivers/perf/xgene_pmu.c
1199
else if (xgene_pmu->version == PCP_PMU_V2)
drivers/perf/xgene_pmu.c
1216
xgene_pmu->ops->start_counters(pmu_dev);
drivers/perf/xgene_pmu.c
1223
struct xgene_pmu *xgene_pmu = dev_id;
drivers/perf/xgene_pmu.c
1226
raw_spin_lock(&xgene_pmu->lock);
drivers/perf/xgene_pmu.c
1229
val = readl(xgene_pmu->pcppmu_csr + PCPPMU_INTSTATUS_REG);
drivers/perf/xgene_pmu.c
1230
if (xgene_pmu->version == PCP_PMU_V3) {
drivers/perf/xgene_pmu.c
1242
list_for_each_entry(ctx, &xgene_pmu->mcpmus, next) {
drivers/perf/xgene_pmu.c
1247
list_for_each_entry(ctx, &xgene_pmu->mcbpmus, next) {
drivers/perf/xgene_pmu.c
1252
list_for_each_entry(ctx, &xgene_pmu->l3cpmus, next) {
drivers/perf/xgene_pmu.c
1257
list_for_each_entry(ctx, &xgene_pmu->iobpmus, next) {
drivers/perf/xgene_pmu.c
1262
raw_spin_unlock(&xgene_pmu->lock);
drivers/perf/xgene_pmu.c
1267
static int acpi_pmu_probe_active_mcb_mcu_l3c(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1291
xgene_pmu->l3c_active_mask = 0x1;
drivers/perf/xgene_pmu.c
1296
xgene_pmu->mcb_active_mask = 0x3;
drivers/perf/xgene_pmu.c
1299
xgene_pmu->mc_active_mask =
drivers/perf/xgene_pmu.c
1303
xgene_pmu->mcb_active_mask = 0x1;
drivers/perf/xgene_pmu.c
1306
xgene_pmu->mc_active_mask =
drivers/perf/xgene_pmu.c
1313
static int acpi_pmu_v3_probe_active_mcb_mcu_l3c(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1332
xgene_pmu->mcb_active_mask = 0x3;
drivers/perf/xgene_pmu.c
1334
xgene_pmu->l3c_active_mask = 0xFF;
drivers/perf/xgene_pmu.c
1337
xgene_pmu->mc_active_mask = 0xFF;
drivers/perf/xgene_pmu.c
1339
xgene_pmu->mc_active_mask = 0x33;
drivers/perf/xgene_pmu.c
1341
xgene_pmu->mc_active_mask = 0x11;
drivers/perf/xgene_pmu.c
1344
xgene_pmu->mcb_active_mask = 0x1;
drivers/perf/xgene_pmu.c
1346
xgene_pmu->l3c_active_mask = 0x0F;
drivers/perf/xgene_pmu.c
1349
xgene_pmu->mc_active_mask = 0x0F;
drivers/perf/xgene_pmu.c
1351
xgene_pmu->mc_active_mask = 0x03;
drivers/perf/xgene_pmu.c
1353
xgene_pmu->mc_active_mask = 0x01;
drivers/perf/xgene_pmu.c
1359
static int fdt_pmu_probe_active_mcb_mcu_l3c(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1384
xgene_pmu->l3c_active_mask = 0x1;
drivers/perf/xgene_pmu.c
1390
xgene_pmu->mcb_active_mask = 0x3;
drivers/perf/xgene_pmu.c
1394
xgene_pmu->mc_active_mask =
drivers/perf/xgene_pmu.c
1398
xgene_pmu->mcb_active_mask = 0x1;
drivers/perf/xgene_pmu.c
1402
xgene_pmu->mc_active_mask =
drivers/perf/xgene_pmu.c
1409
static int xgene_pmu_probe_active_mcb_mcu_l3c(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1413
if (xgene_pmu->version == PCP_PMU_V3)
drivers/perf/xgene_pmu.c
1414
return acpi_pmu_v3_probe_active_mcb_mcu_l3c(xgene_pmu,
drivers/perf/xgene_pmu.c
1417
return acpi_pmu_probe_active_mcb_mcu_l3c(xgene_pmu,
drivers/perf/xgene_pmu.c
1420
return fdt_pmu_probe_active_mcb_mcu_l3c(xgene_pmu, pdev);
drivers/perf/xgene_pmu.c
1443
xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1446
struct device *dev = xgene_pmu->dev;
drivers/perf/xgene_pmu.c
1544
struct xgene_pmu *xgene_pmu = data;
drivers/perf/xgene_pmu.c
1554
ctx = acpi_get_pmu_hw_inf(xgene_pmu, adev, (u32)acpi_id->driver_data);
drivers/perf/xgene_pmu.c
1558
if (xgene_pmu_dev_add(xgene_pmu, ctx)) {
drivers/perf/xgene_pmu.c
1560
devm_kfree(xgene_pmu->dev, ctx);
drivers/perf/xgene_pmu.c
1566
list_add(&ctx->next, &xgene_pmu->l3cpmus);
drivers/perf/xgene_pmu.c
1569
list_add(&ctx->next, &xgene_pmu->iobpmus);
drivers/perf/xgene_pmu.c
1572
list_add(&ctx->next, &xgene_pmu->iobpmus);
drivers/perf/xgene_pmu.c
1575
list_add(&ctx->next, &xgene_pmu->mcbpmus);
drivers/perf/xgene_pmu.c
1578
list_add(&ctx->next, &xgene_pmu->mcpmus);
drivers/perf/xgene_pmu.c
1584
static int acpi_pmu_probe_pmu_dev(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1587
struct device *dev = xgene_pmu->dev;
drivers/perf/xgene_pmu.c
1596
acpi_pmu_dev_add, NULL, xgene_pmu, NULL);
drivers/perf/xgene_pmu.c
1605
static int acpi_pmu_probe_pmu_dev(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1613
xgene_pmu_dev_ctx *fdt_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1616
struct device *dev = xgene_pmu->dev;
drivers/perf/xgene_pmu.c
1656
static int fdt_pmu_probe_pmu_dev(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1667
ctx = fdt_get_pmu_hw_inf(xgene_pmu, np, PMU_TYPE_L3C);
drivers/perf/xgene_pmu.c
1669
ctx = fdt_get_pmu_hw_inf(xgene_pmu, np, PMU_TYPE_IOB);
drivers/perf/xgene_pmu.c
1671
ctx = fdt_get_pmu_hw_inf(xgene_pmu, np, PMU_TYPE_MCB);
drivers/perf/xgene_pmu.c
1673
ctx = fdt_get_pmu_hw_inf(xgene_pmu, np, PMU_TYPE_MC);
drivers/perf/xgene_pmu.c
1680
if (xgene_pmu_dev_add(xgene_pmu, ctx)) {
drivers/perf/xgene_pmu.c
1682
devm_kfree(xgene_pmu->dev, ctx);
drivers/perf/xgene_pmu.c
1688
list_add(&ctx->next, &xgene_pmu->l3cpmus);
drivers/perf/xgene_pmu.c
1691
list_add(&ctx->next, &xgene_pmu->iobpmus);
drivers/perf/xgene_pmu.c
1694
list_add(&ctx->next, &xgene_pmu->iobpmus);
drivers/perf/xgene_pmu.c
1697
list_add(&ctx->next, &xgene_pmu->mcbpmus);
drivers/perf/xgene_pmu.c
1700
list_add(&ctx->next, &xgene_pmu->mcpmus);
drivers/perf/xgene_pmu.c
1708
static int xgene_pmu_probe_pmu_dev(struct xgene_pmu *xgene_pmu,
drivers/perf/xgene_pmu.c
1712
return acpi_pmu_probe_pmu_dev(xgene_pmu, pdev);
drivers/perf/xgene_pmu.c
1713
return fdt_pmu_probe_pmu_dev(xgene_pmu, pdev);
drivers/perf/xgene_pmu.c
1782
struct xgene_pmu *xgene_pmu = hlist_entry_safe(node, struct xgene_pmu,
drivers/perf/xgene_pmu.c
1785
if (cpumask_empty(&xgene_pmu->cpu))
drivers/perf/xgene_pmu.c
1786
cpumask_set_cpu(cpu, &xgene_pmu->cpu);
drivers/perf/xgene_pmu.c
1789
WARN_ON(irq_set_affinity(xgene_pmu->irq, &xgene_pmu->cpu));
drivers/perf/xgene_pmu.c
1796
struct xgene_pmu *xgene_pmu = hlist_entry_safe(node, struct xgene_pmu,
drivers/perf/xgene_pmu.c
1801
if (!cpumask_test_and_clear_cpu(cpu, &xgene_pmu->cpu))
drivers/perf/xgene_pmu.c
1807
list_for_each_entry(ctx, &xgene_pmu->mcpmus, next) {
drivers/perf/xgene_pmu.c
1810
list_for_each_entry(ctx, &xgene_pmu->mcbpmus, next) {
drivers/perf/xgene_pmu.c
1813
list_for_each_entry(ctx, &xgene_pmu->l3cpmus, next) {
drivers/perf/xgene_pmu.c
1816
list_for_each_entry(ctx, &xgene_pmu->iobpmus, next) {
drivers/perf/xgene_pmu.c
1820
cpumask_set_cpu(target, &xgene_pmu->cpu);
drivers/perf/xgene_pmu.c
1822
WARN_ON(irq_set_affinity(xgene_pmu->irq, &xgene_pmu->cpu));
drivers/perf/xgene_pmu.c
1830
struct xgene_pmu *xgene_pmu;
drivers/perf/xgene_pmu.c
1842
xgene_pmu = devm_kzalloc(&pdev->dev, sizeof(*xgene_pmu), GFP_KERNEL);
drivers/perf/xgene_pmu.c
1843
if (!xgene_pmu)
drivers/perf/xgene_pmu.c
1845
xgene_pmu->dev = &pdev->dev;
drivers/perf/xgene_pmu.c
1846
platform_set_drvdata(pdev, xgene_pmu);
drivers/perf/xgene_pmu.c
1854
xgene_pmu->ops = &xgene_pmu_v3_ops;
drivers/perf/xgene_pmu.c
1856
xgene_pmu->ops = &xgene_pmu_ops;
drivers/perf/xgene_pmu.c
1858
INIT_LIST_HEAD(&xgene_pmu->l3cpmus);
drivers/perf/xgene_pmu.c
1859
INIT_LIST_HEAD(&xgene_pmu->iobpmus);
drivers/perf/xgene_pmu.c
1860
INIT_LIST_HEAD(&xgene_pmu->mcbpmus);
drivers/perf/xgene_pmu.c
1861
INIT_LIST_HEAD(&xgene_pmu->mcpmus);
drivers/perf/xgene_pmu.c
1863
xgene_pmu->version = version;
drivers/perf/xgene_pmu.c
1864
dev_info(&pdev->dev, "X-Gene PMU version %d\n", xgene_pmu->version);
drivers/perf/xgene_pmu.c
1866
xgene_pmu->pcppmu_csr = devm_platform_ioremap_resource(pdev, 0);
drivers/perf/xgene_pmu.c
1867
if (IS_ERR(xgene_pmu->pcppmu_csr)) {
drivers/perf/xgene_pmu.c
1869
return PTR_ERR(xgene_pmu->pcppmu_csr);
drivers/perf/xgene_pmu.c
1878
dev_name(&pdev->dev), xgene_pmu);
drivers/perf/xgene_pmu.c
1884
xgene_pmu->irq = irq;
drivers/perf/xgene_pmu.c
1886
raw_spin_lock_init(&xgene_pmu->lock);
drivers/perf/xgene_pmu.c
1889
rc = xgene_pmu_probe_active_mcb_mcu_l3c(xgene_pmu, pdev);
drivers/perf/xgene_pmu.c
1892
xgene_pmu->mcb_active_mask = 0x1;
drivers/perf/xgene_pmu.c
1893
xgene_pmu->mc_active_mask = 0x1;
drivers/perf/xgene_pmu.c
1898
&xgene_pmu->node);
drivers/perf/xgene_pmu.c
1905
rc = xgene_pmu_probe_pmu_dev(xgene_pmu, pdev);
drivers/perf/xgene_pmu.c
1912
xgene_pmu->ops->unmask_int(xgene_pmu);
drivers/perf/xgene_pmu.c
1918
&xgene_pmu->node);
drivers/perf/xgene_pmu.c
1923
xgene_pmu_dev_cleanup(struct xgene_pmu *xgene_pmu, struct list_head *pmus)
drivers/perf/xgene_pmu.c
1934
struct xgene_pmu *xgene_pmu = dev_get_drvdata(&pdev->dev);
drivers/perf/xgene_pmu.c
1936
xgene_pmu_dev_cleanup(xgene_pmu, &xgene_pmu->l3cpmus);
drivers/perf/xgene_pmu.c
1937
xgene_pmu_dev_cleanup(xgene_pmu, &xgene_pmu->iobpmus);
drivers/perf/xgene_pmu.c
1938
xgene_pmu_dev_cleanup(xgene_pmu, &xgene_pmu->mcbpmus);
drivers/perf/xgene_pmu.c
1939
xgene_pmu_dev_cleanup(xgene_pmu, &xgene_pmu->mcpmus);
drivers/perf/xgene_pmu.c
1941
&xgene_pmu->node);
drivers/perf/xgene_pmu.c
699
static inline void xgene_pmu_mask_int(struct xgene_pmu *xgene_pmu)
drivers/perf/xgene_pmu.c
701
writel(PCPPMU_INTENMASK, xgene_pmu->pcppmu_csr + PCPPMU_INTMASK_REG);
drivers/perf/xgene_pmu.c
704
static inline void xgene_pmu_v3_mask_int(struct xgene_pmu *xgene_pmu)
drivers/perf/xgene_pmu.c
706
writel(PCPPMU_V3_INTENMASK, xgene_pmu->pcppmu_csr + PCPPMU_INTMASK_REG);
drivers/perf/xgene_pmu.c
709
static inline void xgene_pmu_unmask_int(struct xgene_pmu *xgene_pmu)
drivers/perf/xgene_pmu.c
711
writel(PCPPMU_INTCLRMASK, xgene_pmu->pcppmu_csr + PCPPMU_INTMASK_REG);
drivers/perf/xgene_pmu.c
714
static inline void xgene_pmu_v3_unmask_int(struct xgene_pmu *xgene_pmu)
drivers/perf/xgene_pmu.c
717
xgene_pmu->pcppmu_csr + PCPPMU_INTMASK_REG);
drivers/perf/xgene_pmu.c
858
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
865
xgene_pmu->ops->start_counters(pmu_dev);
drivers/perf/xgene_pmu.c
871
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
873
xgene_pmu->ops->stop_counters(pmu_dev);
drivers/perf/xgene_pmu.c
92
struct xgene_pmu *parent;
drivers/perf/xgene_pmu.c
936
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
938
xgene_pmu->ops->write_evttype(pmu_dev, GET_CNTR(event),
drivers/perf/xgene_pmu.c
940
xgene_pmu->ops->write_agentmsk(pmu_dev, ~((u32)GET_AGENTID(event)));
drivers/perf/xgene_pmu.c
942
xgene_pmu->ops->write_agent1msk(pmu_dev,
drivers/perf/xgene_pmu.c
945
xgene_pmu->ops->enable_counter(pmu_dev, GET_CNTR(event));
drivers/perf/xgene_pmu.c
946
xgene_pmu->ops->enable_counter_int(pmu_dev, GET_CNTR(event));
drivers/perf/xgene_pmu.c
952
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
954
xgene_pmu->ops->disable_counter(pmu_dev, GET_CNTR(event));
drivers/perf/xgene_pmu.c
955
xgene_pmu->ops->disable_counter_int(pmu_dev, GET_CNTR(event));
drivers/perf/xgene_pmu.c
961
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
973
xgene_pmu->ops->write_counter(pmu_dev, hw->idx, val);
drivers/perf/xgene_pmu.c
979
struct xgene_pmu *xgene_pmu = pmu_dev->parent;
drivers/perf/xgene_pmu.c
985
new_raw_count = xgene_pmu->ops->read_counter(pmu_dev, GET_CNTR(event));