+++ /dev/null
-From 3409972a3909f24c0fbb41356193bfeb5f8308a4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 21 Apr 2022 11:33:55 -0500
-Subject: ASoC: SOF: sof-pci-dev: don't use the community key on APL
- Chromebooks
-
-From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
-
-[ Upstream commit d81e4ba5ef1c1033b6c720b22fc99feeb71e71a0 ]
-
-As suggested by MrChromebox, the SOF driver can be used with the SOF
-firmware binary signed with the production key. This patch adds an
-additional check for the ApolloLake SoC before modifying the default
-firmware path.
-
-Note that ApolloLake Chromebooks officially ship with the Skylake
-driver, so to use SOF the users have to explicitly opt-in with
-'options intel-dspcfg dsp_driver=3'. There is no plan to change the
-default selection.
-
-Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
-Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
-Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
-Link: https://lore.kernel.org/r/20220421163358.319489-2-pierre-louis.bossart@linux.intel.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
-Stable-dep-of: 7dd692217b86 ("ASoC: SOF: sof-pci-dev: Fix community key quirk detection")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- sound/soc/sof/sof-pci-dev.c | 24 +++++++++++++++++++++++-
- 1 file changed, 23 insertions(+), 1 deletion(-)
-
-diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
-index 6b103118cfd1b..9f0732461a611 100644
---- a/sound/soc/sof/sof-pci-dev.c
-+++ b/sound/soc/sof/sof-pci-dev.c
-@@ -12,6 +12,7 @@
- #include <linux/dmi.h>
- #include <linux/module.h>
- #include <linux/pci.h>
-+#include <linux/platform_data/x86/soc.h>
- #include <linux/pm_runtime.h>
- #include <sound/soc-acpi.h>
- #include <sound/soc-acpi-intel-match.h>
-@@ -36,6 +37,7 @@ module_param_named(sof_pci_debug, sof_pci_debug, int, 0444);
- MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
-
- static const char *sof_dmi_override_tplg_name;
-+static bool sof_dmi_use_community_key;
-
- #define SOF_PCI_DISABLE_PM_RUNTIME BIT(0)
-
-@@ -66,15 +68,35 @@ static const struct dmi_system_id sof_tplg_table[] = {
- {}
- };
-
-+/* all Up boards use the community key */
-+static int up_use_community_key(const struct dmi_system_id *id)
-+{
-+ sof_dmi_use_community_key = true;
-+ return 1;
-+}
-+
-+/*
-+ * For ApolloLake Chromebooks we want to force the use of the Intel production key.
-+ * All newer platforms use the community key
-+ */
-+static int chromebook_use_community_key(const struct dmi_system_id *id)
-+{
-+ if (!soc_intel_is_apl())
-+ sof_dmi_use_community_key = true;
-+ return 1;
-+}
-+
- static const struct dmi_system_id community_key_platforms[] = {
- {
- .ident = "Up boards",
-+ .callback = up_use_community_key,
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
- }
- },
- {
- .ident = "Google Chromebooks",
-+ .callback = chromebook_use_community_key,
- .matches = {
- DMI_MATCH(DMI_PRODUCT_FAMILY, "Google"),
- }
-@@ -167,7 +189,7 @@ int sof_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id)
- "Module parameter used, changed fw path to %s\n",
- sof_pdata->fw_filename_prefix);
-
-- } else if (dmi_check_system(community_key_platforms)) {
-+ } else if (dmi_check_system(community_key_platforms) && sof_dmi_use_community_key) {
- sof_pdata->fw_filename_prefix =
- devm_kasprintf(dev, GFP_KERNEL, "%s/%s",
- sof_pdata->desc->default_fw_path,
---
-2.42.0
-