dm: x86: ivybridge: Convert graphics init to use DM PCI API
authorSimon Glass <sjg@chromium.org>
Sun, 29 Nov 2015 20:17:55 +0000 (13:17 -0700)
committerSimon Glass <sjg@chromium.org>
Tue, 12 Jan 2016 17:19:09 +0000 (10:19 -0700)
Use the driver-model PCI functions here where possible. For now we have to
search for the device with pci_bus_find_bdf() but at some point we can put
this in a proper driver and avoid this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/cpu/ivybridge/bd82x6x.c
arch/x86/cpu/ivybridge/gma.c
arch/x86/include/asm/arch-ivybridge/bd82x6x.h

index 3e7a907e00f4865a4d6cf2958745dc867556edb2..434dfd649f65853b3977e10f7c400a2346d6b150 100644 (file)
@@ -86,8 +86,10 @@ static int bd82x6x_probe(struct udevice *dev)
                debug("%s: Cannot find GMA node\n", __func__);
                return -EINVAL;
        }
-       ret = gma_func0_init(PCH_VIDEO_DEV, pci_bus_to_hose(0), blob,
-                            gma_node);
+       ret = dm_pci_bus_find_bdf(PCH_VIDEO_DEV, &dev);
+       if (ret)
+               return ret;
+       ret = gma_func0_init(dev, blob, gma_node);
        if (ret)
                return ret;
 
index 89d4a5e9ccacf5d49d7ca9f26d07983f3f01f211..695578b73c1986b1092e548852ef58a6c7a8779f 100644 (file)
@@ -728,8 +728,7 @@ static int int15_handler(void)
        return res;
 }
 
-int gma_func0_init(pci_dev_t dev, struct pci_controller *hose,
-                  const void *blob, int node)
+int gma_func0_init(struct udevice *dev, const void *blob, int node)
 {
 #ifdef CONFIG_VIDEO
        ulong start;
@@ -740,16 +739,16 @@ int gma_func0_init(pci_dev_t dev, struct pci_controller *hose,
        int ret;
 
        /* IGD needs to be Bus Master */
-       reg32 = x86_pci_read_config32(dev, PCI_COMMAND);
+       dm_pci_read_config32(dev, PCI_COMMAND, &reg32);
        reg32 |= PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY | PCI_COMMAND_IO;
-       x86_pci_write_config32(dev, PCI_COMMAND, reg32);
+       dm_pci_write_config32(dev, PCI_COMMAND, reg32);
 
        /* Use write-combining for the graphics memory, 256MB */
-       base = pci_read_bar32(hose, dev, 2);
+       base = dm_pci_read_bar32(dev, 2);
        mtrr_add_request(MTRR_TYPE_WRCOMB, base, 256 << 20);
        mtrr_commit(true);
 
-       gtt_bar = (void *)pci_read_bar32(pci_bus_to_hose(0), dev, 0);
+       gtt_bar = (void *)dm_pci_read_bar32(dev, 0);
        debug("GT bar %p\n", gtt_bar);
        ret = gma_pm_init_pre_vbios(gtt_bar);
        if (ret)
@@ -757,8 +756,8 @@ int gma_func0_init(pci_dev_t dev, struct pci_controller *hose,
 
 #ifdef CONFIG_VIDEO
        start = get_timer(0);
-       ret = pci_run_vga_bios(dev, int15_handler, PCI_ROM_USE_NATIVE |
-                              PCI_ROM_ALLOW_FALLBACK);
+       ret = pci_run_vga_bios(dm_pci_get_bdf(dev), int15_handler,
+                              PCI_ROM_USE_NATIVE | PCI_ROM_ALLOW_FALLBACK);
        debug("BIOS ran in %lums\n", get_timer(start));
 #endif
        /* Post VBIOS init */
index 7786493be741485ec758ac7f02c8cda4e1e30fb8..fcdf6e26cbb2ef6b66cfe710c920388bc6242c30 100644 (file)
@@ -12,8 +12,7 @@ void bd82x6x_sata_enable(pci_dev_t dev, const void *blob, int node);
 void bd82x6x_pci_init(pci_dev_t dev);
 void bd82x6x_usb_ehci_init(pci_dev_t dev);
 void bd82x6x_usb_xhci_init(pci_dev_t dev);
-int gma_func0_init(pci_dev_t dev, struct pci_controller *hose,
-                  const void *blob, int node);
+int gma_func0_init(struct udevice *dev, const void *blob, int node);
 int bd82x6x_init(void);
 
 /**