rs780: Implement `rs780_internal_gfx_disable` and add .disable pcie_ops
That code will be used to disable the internal GFX card and enable the external PCIe card. The following lines from function `rs780_internal_gfx_enable()` are taken and reversed. /* Disable external GFX and enable internal GFX. */ l_dword = pci_read_config32(nb_dev, 0x8c); l_dword &= ~(1<<0); l_dword |= 1<<1; pci_write_config32(nb_dev, 0x8c, l_dword); It has been tested on the M4A785T-M with the following card inside the PCIe 16x slot: 02:00.0 VGA compatible controller: nVidia Corporation GT218 [GeForce 210] (rev a2) Change-Id: I7bd412b987fde98c97464175e2c7a384a8f0fb84 Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org> Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-on: http://review.coreboot.org/2065 Tested-by: build bot (Jenkins)
This commit is contained in:
parent
9a0e3e2fc2
commit
34746a9c48
|
@ -760,6 +760,23 @@ static void internal_gfx_pci_dev_init(struct device *dev)
|
||||||
clkind_write(dev, 0x5C, 0x0);
|
clkind_write(dev, 0x5C, 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set registers in RS780 and CPU to disable the internal GFX.
|
||||||
|
* Please refer to `rs780_internal_gfx_enable()`.
|
||||||
|
*/
|
||||||
|
static void rs780_internal_gfx_disable(device_t dev)
|
||||||
|
{
|
||||||
|
u32 l_dword;
|
||||||
|
device_t nb_dev = dev_find_slot(0, 0);
|
||||||
|
|
||||||
|
/* Disable internal GFX and enable external GFX. */
|
||||||
|
l_dword = pci_read_config32(nb_dev, 0x8c);
|
||||||
|
l_dword |= 1<<0;
|
||||||
|
l_dword &= ~(1<<1);
|
||||||
|
pci_write_config32(nb_dev, 0x8c, l_dword);
|
||||||
|
|
||||||
|
dev->enabled = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set registers in RS780 and CPU to enable the internal GFX.
|
* Set registers in RS780 and CPU to enable the internal GFX.
|
||||||
|
@ -999,6 +1016,7 @@ static struct device_operations pcie_ops = {
|
||||||
.init = internal_gfx_pci_dev_init, /* The option ROM initializes the device. rs780_gfx_init, */
|
.init = internal_gfx_pci_dev_init, /* The option ROM initializes the device. rs780_gfx_init, */
|
||||||
.scan_bus = 0,
|
.scan_bus = 0,
|
||||||
.enable = rs780_internal_gfx_enable,
|
.enable = rs780_internal_gfx_enable,
|
||||||
|
.disable = rs780_internal_gfx_disable,
|
||||||
.ops_pci = &lops_pci,
|
.ops_pci = &lops_pci,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue