diff options
author | Greg Kroah-Hartman | 2019-04-21 23:18:44 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2019-04-21 23:18:44 +0200 |
commit | 817de6b85914a3dda72b971c074d4d342965fba0 (patch) | |
tree | df0a4563a04aadb8f8595f72392d66d65797c455 /drivers/platform/x86/pmc_atom.c | |
parent | staging: kpc2000: add initial set of Daktronics drivers (diff) | |
parent | Linux 5.1-rc6 (diff) | |
download | kernel-qcow2-linux-817de6b85914a3dda72b971c074d4d342965fba0.tar.gz kernel-qcow2-linux-817de6b85914a3dda72b971c074d4d342965fba0.tar.xz kernel-qcow2-linux-817de6b85914a3dda72b971c074d4d342965fba0.zip |
Merge 5.1-rc6 into staging-next
We want the fixes in here as well as this resolves an iio driver merge
issue.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/platform/x86/pmc_atom.c')
-rw-r--r-- | drivers/platform/x86/pmc_atom.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/platform/x86/pmc_atom.c b/drivers/platform/x86/pmc_atom.c index 8f018b3f3cd4..c7039f52ad51 100644 --- a/drivers/platform/x86/pmc_atom.c +++ b/drivers/platform/x86/pmc_atom.c @@ -17,6 +17,7 @@ #include <linux/debugfs.h> #include <linux/device.h> +#include <linux/dmi.h> #include <linux/init.h> #include <linux/io.h> #include <linux/platform_data/x86/clk-pmc-atom.h> @@ -391,11 +392,27 @@ static int pmc_dbgfs_register(struct pmc_dev *pmc) } #endif /* CONFIG_DEBUG_FS */ +/* + * Some systems need one or more of their pmc_plt_clks to be + * marked as critical. + */ +static const struct dmi_system_id critclk_systems[] = { + { + .ident = "MPL CEC1x", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "MPL AG"), + DMI_MATCH(DMI_PRODUCT_NAME, "CEC10 Family"), + }, + }, + { /*sentinel*/ } +}; + static int pmc_setup_clks(struct pci_dev *pdev, void __iomem *pmc_regmap, const struct pmc_data *pmc_data) { struct platform_device *clkdev; struct pmc_clk_data *clk_data; + const struct dmi_system_id *d = dmi_first_match(critclk_systems); clk_data = kzalloc(sizeof(*clk_data), GFP_KERNEL); if (!clk_data) @@ -403,6 +420,10 @@ static int pmc_setup_clks(struct pci_dev *pdev, void __iomem *pmc_regmap, clk_data->base = pmc_regmap; /* offset is added by client */ clk_data->clks = pmc_data->clks; + if (d) { + clk_data->critical = true; + pr_info("%s critclks quirk enabled\n", d->ident); + } clkdev = platform_device_register_data(&pdev->dev, "clk-pmc-atom", PLATFORM_DEVID_NONE, |