diff options
author | Simon Glass <sjg@chromium.org> | 2016-01-17 16:11:40 -0700 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2016-01-24 12:09:40 +0800 |
commit | 4e1907290720cac9c13422f1821a36254575fd73 (patch) | |
tree | 8e2fc838a20b88c7c13c48ab1345d85af323efbb /arch/x86 | |
parent | 865c24eea1fa4bec3106368052edcdcf4711b366 (diff) | |
download | u-boot-imx-4e1907290720cac9c13422f1821a36254575fd73.zip u-boot-imx-4e1907290720cac9c13422f1821a36254575fd73.tar.gz u-boot-imx-4e1907290720cac9c13422f1821a36254575fd73.tar.bz2 |
x86: ivybridge: Move LPC init into the LPC probe() method
Drop the lpc_init_extra() function and just use the post-relocation LPC
probe() instead.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/cpu/ivybridge/bd82x6x.c | 4 | ||||
-rw-r--r-- | arch/x86/cpu/ivybridge/lpc.c | 17 | ||||
-rw-r--r-- | arch/x86/include/asm/arch-ivybridge/pch.h | 2 |
3 files changed, 9 insertions, 14 deletions
diff --git a/arch/x86/cpu/ivybridge/bd82x6x.c b/arch/x86/cpu/ivybridge/bd82x6x.c index 9e7e30a..5cb4152 100644 --- a/arch/x86/cpu/ivybridge/bd82x6x.c +++ b/arch/x86/cpu/ivybridge/bd82x6x.c @@ -21,16 +21,12 @@ static int bd82x6x_probe(struct udevice *dev) { const void *blob = gd->fdt_blob; - struct pci_controller *hose; int gma_node; int ret; if (!(gd->flags & GD_FLG_RELOC)) return 0; - hose = pci_bus_to_hose(0); - lpc_init_extra(hose, PCH_LPC_DEV); - /* Cause the SATA device to do its init */ uclass_first_device(UCLASS_DISK, &dev); diff --git a/arch/x86/cpu/ivybridge/lpc.c b/arch/x86/cpu/ivybridge/lpc.c index 44c4825..79224d9 100644 --- a/arch/x86/cpu/ivybridge/lpc.c +++ b/arch/x86/cpu/ivybridge/lpc.c @@ -538,7 +538,7 @@ static int lpc_early_init(struct udevice *dev) return 0; } -int lpc_init_extra(struct pci_controller *hose, pci_dev_t dev) +static int lpc_init_extra(struct pci_controller *hose, pci_dev_t dev) { const void *blob = gd->fdt_blob; int node; @@ -626,16 +626,17 @@ static int bd82x6x_lpc_probe(struct udevice *dev) { int ret; - if (gd->flags & GD_FLG_RELOC) - return 0; + if (!(gd->flags & GD_FLG_RELOC)) { + ret = lpc_early_init(dev); + if (ret) { + debug("%s: lpc_early_init() failed\n", __func__); + return ret; + } - ret = lpc_early_init(dev); - if (ret) { - debug("%s: lpc_early_init() failed\n", __func__); - return ret; + return bd82x6x_lpc_early_init(dev); } - return bd82x6x_lpc_early_init(dev); + return lpc_init_extra(pci_bus_to_hose(0), PCH_LPC_DEV); } static const struct udevice_id bd82x6x_lpc_ids[] = { diff --git a/arch/x86/include/asm/arch-ivybridge/pch.h b/arch/x86/include/asm/arch-ivybridge/pch.h index 682a557..629a144 100644 --- a/arch/x86/include/asm/arch-ivybridge/pch.h +++ b/arch/x86/include/asm/arch-ivybridge/pch.h @@ -470,6 +470,4 @@ void pch_iobp_update(u32 address, u32 andvalue, u32 orvalue); #define DMISCI_STS (1 << 9) #define TCO2_STS 0x66 -int lpc_init_extra(struct pci_controller *hose, pci_dev_t dev); - #endif |