diff options
author | Simon Glass <sjg@chromium.org> | 2016-01-17 16:11:59 -0700 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2016-01-24 12:09:42 +0800 |
commit | 25d5352c71dcc599030a4a764d8087185ed537d3 (patch) | |
tree | 2fa7d292b53be82731264d453b473d2e17782ef5 /arch/x86/cpu/ivybridge/bd82x6x.c | |
parent | 98655f3a8d23d322d91ebb1897ff02a6e8a46b10 (diff) |
x86: ivybridge: Use syscon for the GMA device
Until we have a proper video uclass we can use syscon to handle the GMA
device, and avoid the special device tree and PCI searching. Update the code
to work this way.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86/cpu/ivybridge/bd82x6x.c')
-rw-r--r-- | arch/x86/cpu/ivybridge/bd82x6x.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/arch/x86/cpu/ivybridge/bd82x6x.c b/arch/x86/cpu/ivybridge/bd82x6x.c index 2591b2000fc..2b172d49bad 100644 --- a/arch/x86/cpu/ivybridge/bd82x6x.c +++ b/arch/x86/cpu/ivybridge/bd82x6x.c @@ -9,6 +9,8 @@ #include <fdtdec.h> #include <malloc.h> #include <pch.h> +#include <syscon.h> +#include <asm/cpu.h> #include <asm/io.h> #include <asm/lapic.h> #include <asm/pci.h> @@ -149,8 +151,7 @@ void pch_iobp_update(struct udevice *dev, u32 address, u32 andvalue, static int bd82x6x_probe(struct udevice *dev) { - const void *blob = gd->fdt_blob; - int gma_node; + struct udevice *gma_dev; int ret; if (!(gd->flags & GD_FLG_RELOC)) @@ -159,15 +160,10 @@ static int bd82x6x_probe(struct udevice *dev) /* Cause the SATA device to do its init */ uclass_first_device(UCLASS_DISK, &dev); - gma_node = fdtdec_next_compatible(blob, 0, COMPAT_INTEL_GMA); - if (gma_node < 0) { - debug("%s: Cannot find GMA node\n", __func__); - return -EINVAL; - } - ret = dm_pci_bus_find_bdf(PCH_VIDEO_DEV, &dev); + ret = syscon_get_by_driver_data(X86_SYSCON_GMA, &gma_dev); if (ret) return ret; - ret = gma_func0_init(dev, blob, gma_node); + ret = gma_func0_init(gma_dev); if (ret) return ret; |