[U-Boot] [PATCH v2 10/26] dm: x86: ivybridge: Convert graphics init to use DM PCI API
Bin Meng
bmeng.cn at gmail.com
Mon Dec 7 11:34:52 CET 2015
On Mon, Nov 30, 2015 at 4:17 AM, Simon Glass <sjg at chromium.org> wrote:
> 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 at chromium.org>
> ---
>
> Changes in v2:
> - Use pci_bus_find_bdf()
>
> arch/x86/cpu/ivybridge/bd82x6x.c | 6 ++++--
> arch/x86/cpu/ivybridge/gma.c | 15 +++++++--------
> arch/x86/include/asm/arch-ivybridge/bd82x6x.h | 3 +--
> 3 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/arch/x86/cpu/ivybridge/bd82x6x.c b/arch/x86/cpu/ivybridge/bd82x6x.c
> index 3e7a907..434dfd6 100644
> --- a/arch/x86/cpu/ivybridge/bd82x6x.c
> +++ b/arch/x86/cpu/ivybridge/bd82x6x.c
> @@ -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;
>
> diff --git a/arch/x86/cpu/ivybridge/gma.c b/arch/x86/cpu/ivybridge/gma.c
> index 89d4a5e..695578b 100644
> --- a/arch/x86/cpu/ivybridge/gma.c
> +++ b/arch/x86/cpu/ivybridge/gma.c
> @@ -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, ®32);
> 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 */
> diff --git a/arch/x86/include/asm/arch-ivybridge/bd82x6x.h b/arch/x86/include/asm/arch-ivybridge/bd82x6x.h
> index 7786493..fcdf6e2 100644
> --- a/arch/x86/include/asm/arch-ivybridge/bd82x6x.h
> +++ b/arch/x86/include/asm/arch-ivybridge/bd82x6x.h
> @@ -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);
>
> /**
> --
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
More information about the U-Boot
mailing list