// SPDX-License-Identifier: GPL-2.0 /* * Intel PMC Core platform init * Copyright (c) 2019, Google Inc. * Author - Rajat Jain * * This code instantiates platform devices for intel_pmc_core driver, only * on supported platforms that may not have the ACPI devices in the ACPI tables. * No new platforms should be added here, because we expect that new platforms * should all have the ACPI device, which is the preferred way of enumeration. */ #include <linux/acpi.h> #include <linux/module.h> #include <linux/platform_device.h> #include <asm/cpu_device_id.h> #include <asm/intel-family.h> #include <xen/xen.h> static void intel_pmc_core_release(struct device *dev) { … } static struct platform_device *pmc_core_device; /* * intel_pmc_core_platform_ids is the list of platforms where we want to * instantiate the platform_device if not already instantiated. This is * different than intel_pmc_core_ids in intel_pmc_core.c which is the * list of platforms that the driver supports for pmc_core device. The * other list may grow, but this list should not. */ static const struct x86_cpu_id intel_pmc_core_platform_ids[] = …; MODULE_DEVICE_TABLE(x86cpu, intel_pmc_core_platform_ids); static int __init pmc_core_platform_init(void) { … } static void __exit pmc_core_platform_exit(void) { … } module_init(…) …; module_exit(pmc_core_platform_exit); MODULE_DESCRIPTION(…) …; MODULE_LICENSE(…) …;