mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-02 19:16:40 +07:00
[ARM] Kirkwood: enable PCIe before reading device ID register
PCIe may have been disabled (by kirkwood_clock_gate) if this kernel was started by kexec. Make sure PCIe is enabled before attempting to access the device ID register, otherwise the system will hang. Signed-off-by: Eric Cooper <ecc@cmu.edu> Signed-off-by: Nicolas Pitre <nico@fluxnic.net>
This commit is contained in:
parent
868d172b8a
commit
0e0cdd3770
@ -32,6 +32,7 @@ void kirkwood_init_irq(void);
|
||||
extern struct mbus_dram_target_info kirkwood_mbus_dram_info;
|
||||
void kirkwood_setup_cpu_mbus(void);
|
||||
|
||||
void kirkwood_enable_pcie(void);
|
||||
void kirkwood_pcie_id(u32 *dev, u32 *rev);
|
||||
|
||||
void kirkwood_ehci_init(void);
|
||||
|
@ -18,8 +18,16 @@
|
||||
#include <mach/bridge-regs.h>
|
||||
#include "common.h"
|
||||
|
||||
void kirkwood_enable_pcie(void)
|
||||
{
|
||||
u32 curr = readl(CLOCK_GATING_CTRL);
|
||||
if (!(curr & CGC_PEX0))
|
||||
writel(curr | CGC_PEX0, CLOCK_GATING_CTRL);
|
||||
}
|
||||
|
||||
void __init kirkwood_pcie_id(u32 *dev, u32 *rev)
|
||||
{
|
||||
kirkwood_enable_pcie();
|
||||
*dev = orion_pcie_dev_id((void __iomem *)PCIE_VIRT_BASE);
|
||||
*rev = orion_pcie_rev((void __iomem *)PCIE_VIRT_BASE);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user