summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-01-17 16:11:40 -0700
committerBin Meng <bmeng.cn@gmail.com>2016-01-24 12:09:40 +0800
commit4e1907290720cac9c13422f1821a36254575fd73 (patch)
tree8e2fc838a20b88c7c13c48ab1345d85af323efbb /arch/x86
parent865c24eea1fa4bec3106368052edcdcf4711b366 (diff)
downloadu-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.c4
-rw-r--r--arch/x86/cpu/ivybridge/lpc.c17
-rw-r--r--arch/x86/include/asm/arch-ivybridge/pch.h2
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