summaryrefslogtreecommitdiffstats
path: root/sound/soc/intel/common/sst-match-acpi.c
diff options
context:
space:
mode:
authorVinod Koul2015-11-05 17:04:11 +0100
committerMark Brown2015-11-16 11:08:09 +0100
commit95f098014815b330838b1173d3d7bcea3b481242 (patch)
treef2e5a5228525a763aac80c230ab5d8fd36f66072 /sound/soc/intel/common/sst-match-acpi.c
parentASoC: Intel: Skylake: Fix resource cleanup on teardown (diff)
downloadkernel-qcow2-linux-95f098014815b330838b1173d3d7bcea3b481242.tar.gz
kernel-qcow2-linux-95f098014815b330838b1173d3d7bcea3b481242.tar.xz
kernel-qcow2-linux-95f098014815b330838b1173d3d7bcea3b481242.zip
ASoC: Intel: Move apci find machine routines
This code to find the machine is common for all drivers so move it to a separate file and header for use in other drivers Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel/common/sst-match-acpi.c')
-rw-r--r--sound/soc/intel/common/sst-match-acpi.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/sound/soc/intel/common/sst-match-acpi.c b/sound/soc/intel/common/sst-match-acpi.c
new file mode 100644
index 000000000000..dd077e116d25
--- /dev/null
+++ b/sound/soc/intel/common/sst-match-acpi.c
@@ -0,0 +1,43 @@
+/*
+ * sst_match_apci.c - SST (LPE) match for ACPI enumeration.
+ *
+ * Copyright (c) 2013-15, Intel Corporation.
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ */
+#include <linux/acpi.h>
+#include <linux/device.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+
+#include "sst-acpi.h"
+
+static acpi_status sst_acpi_mach_match(acpi_handle handle, u32 level,
+ void *context, void **ret)
+{
+ *(bool *)context = true;
+ return AE_OK;
+}
+
+struct sst_acpi_mach *sst_acpi_find_machine(struct sst_acpi_mach *machines)
+{
+ struct sst_acpi_mach *mach;
+ bool found = false;
+
+ for (mach = machines; mach->id[0]; mach++)
+ if (ACPI_SUCCESS(acpi_get_devices(mach->id,
+ sst_acpi_mach_match,
+ &found, NULL)) && found)
+ return mach;
+
+ return NULL;
+}
+EXPORT_SYMBOL_GPL(sst_acpi_find_machine);