[PATCH v10 6/7] perf: cavium: Support transmit-link PMU counters
From: Jonathan.Cameron@huawei.com (Jonathan Cameron)
Date: 2017-09-27 15:49:13
Also in:
lkml
On Mon, 25 Sep 2017 14:35:01 +0200 Jan Glauber [off-list ref] wrote:
Add support for the transmit-link (OCX TLK) PMU counters found on Caviums SOCs with a processor interconnect. Properties of the OCX TLK counters: - per-unit control - fixed purpose - writable - one PCI device with multiple TLK units Signed-off-by: Jan Glauber <redacted>
Something odd happened in drivers/soc/cavium/Kconfig... Otherwise whole series looks sensible to me. Jonathan
--- drivers/perf/Kconfig | 7 ++ drivers/perf/cavium_pmu.c | 230 ++++++++++++++++++++++++++++++++++++++++ drivers/soc/cavium/Kconfig | 4 + drivers/soc/cavium/cavium_ocx.c | 4 + include/linux/soc/cavium/ocx.h | 3 + 5 files changed, 248 insertions(+)
<snip>
quoted hunk ↗ jump to hunk
static int __init cvm_pmu_init(void) { INIT_LIST_HEAD(&cvm_pmu_lmcs);diff --git a/drivers/soc/cavium/Kconfig b/drivers/soc/cavium/Kconfig index fe56503d20f4..2c7406872b18 100644 --- a/drivers/soc/cavium/Kconfig +++ b/drivers/soc/cavium/Kconfig@@ -8,3 +8,7 @@ config CAVIUM_LMC config CAVIUM_OCX depends on ARCH_THUNDER def_tristate m + +config CAVIUM_OCX + depends on ARCH_THUNDER + def_tristate m
Something odd going on here...
quoted hunk ↗ jump to hunk
diff --git a/drivers/soc/cavium/cavium_ocx.c b/drivers/soc/cavium/cavium_ocx.c index fa3341b0744f..de1ad146c0dd 100644 --- a/drivers/soc/cavium/cavium_ocx.c +++ b/drivers/soc/cavium/cavium_ocx.c@@ -13,6 +13,8 @@ static int cvm_ocx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { + if (IS_ENABLED(CONFIG_CAVIUM_PMU_OCX_TLK)) + cvm_ocx_tlk_pmu_probe(pdev, ent); if (IS_ENABLED(CONFIG_EDAC_THUNDERX)) thunderx_edac_ocx_probe(pdev, ent); return 0;@@ -20,6 +22,8 @@ static int cvm_ocx_probe(struct pci_dev *pdev, static void cvm_ocx_remove(struct pci_dev *pdev) { + if (IS_ENABLED(CONFIG_CAVIUM_PMU_OCX_TLK)) + cvm_ocx_tlk_pmu_remove(pdev); if (IS_ENABLED(CONFIG_EDAC_THUNDERX)) thunderx_edac_ocx_remove(pdev); }diff --git a/include/linux/soc/cavium/ocx.h b/include/linux/soc/cavium/ocx.h index 29f55b3d3171..f7b2caada671 100644 --- a/include/linux/soc/cavium/ocx.h +++ b/include/linux/soc/cavium/ocx.h@@ -3,6 +3,9 @@ #include <linux/pci.h> +int cvm_ocx_tlk_pmu_probe(struct pci_dev *pdev, const struct pci_device_id *ent); +void cvm_ocx_tlk_pmu_remove(struct pci_dev *pdev); + int thunderx_edac_ocx_probe(struct pci_dev *pdev, const struct pci_device_id *ent); void thunderx_edac_ocx_remove(struct pci_dev *pdev);