perf: arm_cspmu: Separate Arm and vendor module
authorBesar Wicaksono <bwicaksono@nvidia.com>
Mon, 21 Aug 2023 23:16:08 +0000 (18:16 -0500)
committerWill Deacon <will@kernel.org>
Thu, 5 Oct 2023 12:58:27 +0000 (13:58 +0100)
commitbfc653aa89cb05796d7b4e046600accb442c9b7a
tree341e2eb94006233db1a65aead07e3e5f1719178e
parent6465e260f48790807eef06b583b38ca9789b6072
perf: arm_cspmu: Separate Arm and vendor module

Arm Coresight PMU driver consists of main standard code and
vendor backend code. Both are currently built as a single module.
This patch adds vendor registration API to separate the two to
keep things modular. The main driver requests each known backend
module during initialization and defer device binding process.
The backend module then registers an init callback to the main
driver and continue the device driver binding process.

Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-and-tested-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Link: https://lore.kernel.org/r/20230821231608.50911-1-bwicaksono@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/arm_cspmu/Kconfig
drivers/perf/arm_cspmu/Makefile
drivers/perf/arm_cspmu/arm_cspmu.c
drivers/perf/arm_cspmu/arm_cspmu.h
drivers/perf/arm_cspmu/nvidia_cspmu.c
drivers/perf/arm_cspmu/nvidia_cspmu.h [deleted file]