diff mbox

[U-Boot,v2,10/26] dm: x86: ivybridge: Convert graphics init to use DM PCI API

Message ID 1448828291-12660-11-git-send-email-sjg@chromium.org
State Accepted
Commit 9bf727fcc4743d06ba665f104e951b47f5029d56
Delegated to: Simon Glass
Headers show

Commit Message

Simon Glass Nov. 29, 2015, 8:17 p.m. UTC
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>
---

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(-)

Comments

Bin Meng Dec. 7, 2015, 10:34 a.m. UTC | #1
On Mon, Nov 30, 2015 at 4:17 AM, Simon Glass <sjg@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@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, &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 */
> 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@gmail.com>
Simon Glass Dec. 14, 2015, 3:45 a.m. UTC | #2
Applied to u-boot-dm/next.
diff mbox

Patch

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, &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 */
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);
 
 /**