dm: x86: ivybridge: Convert graphics init to use DM PCI API
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>
This commit is contained in:
parent
fcc0a8774b
commit
9bf727fcc4
3 changed files with 12 additions and 12 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue