mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-15 21:07:42 +07:00

Since commit648e921888
("clk: x86: Stop marking clocks as CLK_IS_CRITICAL"), the pmc_plt_clocks of the Bay Trail SoC are unconditionally gated off. Unfortunately this will break systems where these clocks are used for external purposes beyond the kernel's knowledge. Fix it by implementing a system specific quirk to mark the necessary pmc_plt_clks as critical. Fixes:648e921888
("clk: x86: Stop marking clocks as CLK_IS_CRITICAL") Signed-off-by: David Müller <dave.mueller@gmx.ch> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
/*
|
|
* Intel Atom platform clocks for BayTrail and CherryTrail SoC.
|
|
*
|
|
* Copyright (C) 2016, Intel Corporation
|
|
* Author: Irina Tirdea <irina.tirdea@intel.com>
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
#ifndef __PLATFORM_DATA_X86_CLK_PMC_ATOM_H
|
|
#define __PLATFORM_DATA_X86_CLK_PMC_ATOM_H
|
|
|
|
/**
|
|
* struct pmc_clk - PMC platform clock configuration
|
|
*
|
|
* @name: identified, typically pmc_plt_clk_<x>, x=[0..5]
|
|
* @freq: in Hz, 19.2MHz and 25MHz (Baytrail only) supported
|
|
* @parent_name: one of 'xtal' or 'osc'
|
|
*/
|
|
struct pmc_clk {
|
|
const char *name;
|
|
unsigned long freq;
|
|
const char *parent_name;
|
|
};
|
|
|
|
/**
|
|
* struct pmc_clk_data - common PMC clock configuration
|
|
*
|
|
* @base: PMC clock register base offset
|
|
* @clks: pointer to set of registered clocks, typically 0..5
|
|
* @critical: flag to indicate if firmware enabled pmc_plt_clks
|
|
* should be marked as critial or not
|
|
*/
|
|
struct pmc_clk_data {
|
|
void __iomem *base;
|
|
const struct pmc_clk *clks;
|
|
bool critical;
|
|
};
|
|
|
|
#endif /* __PLATFORM_DATA_X86_CLK_PMC_ATOM_H */
|