summaryrefslogtreecommitdiffstats
path: root/src/southbridge/amd/rs780
diff options
context:
space:
mode:
authorPatrick Georgi <patrick@georgi-clan.de>2012-07-26 19:48:23 +0200
committerPatrick Georgi <patrick@georgi-clan.de>2012-07-26 22:25:10 +0200
commitefff733ad83acf8502561a9cadc9202c6974e510 (patch)
treeb81785cd64f750ac790c5b4306dc4b0b16ca641c /src/southbridge/amd/rs780
parent8730bf8aad995bf105454ac1a93dee4c7b5565d5 (diff)
downloadcoreboot-efff733ad83acf8502561a9cadc9202c6974e510.tar.gz
coreboot-efff733ad83acf8502561a9cadc9202c6974e510.tar.bz2
coreboot-efff733ad83acf8502561a9cadc9202c6974e510.zip
Refactor driver structs
Our driver infrastructure became more flexible recently. Make use of it. These are the low hanging fruits (files with 5 device variants or more), but there are still lots of files with less potential for deduplication. Change-Id: If6b7be5046581f81485a511b150f99b029b95c3b Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/1358 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/southbridge/amd/rs780')
-rw-r--r--src/southbridge/amd/rs780/gfx.c60
1 files changed, 14 insertions, 46 deletions
diff --git a/src/southbridge/amd/rs780/gfx.c b/src/southbridge/amd/rs780/gfx.c
index 904e154de531..f70cd9bb7902 100644
--- a/src/southbridge/amd/rs780/gfx.c
+++ b/src/southbridge/amd/rs780/gfx.c
@@ -1005,56 +1005,24 @@ static struct device_operations pcie_ops = {
/*
* We should list all of them here.
* */
-static const struct pci_driver pcie_driver_780 __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS780_INT_GFX,
+static const unsigned short pcie_780_ids[] = {
+ PCI_DEVICE_ID_ATI_RS780_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS780C_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS780M_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS780MC_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS780E_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS785G_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS785C_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS785M_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS785MC_INT_GFX,
+ PCI_DEVICE_ID_ATI_RS785D_INT_GFX,
+ 0
};
-static const struct pci_driver pcie_driver_780c __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS780C_INT_GFX,
-};
-static const struct pci_driver pcie_driver_780m __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS780M_INT_GFX,
-};
-static const struct pci_driver pcie_driver_780mc __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS780MC_INT_GFX,
-};
-static const struct pci_driver pcie_driver_780e __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS780E_INT_GFX,
-};
-static const struct pci_driver pcie_driver_785g __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS785G_INT_GFX,
-};
-static const struct pci_driver pcie_driver_785c __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS785C_INT_GFX,
-};
-static const struct pci_driver pcie_driver_785m __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS785M_INT_GFX,
-};
-static const struct pci_driver pcie_driver_785mc __pci_driver = {
- .ops = &pcie_ops,
- .vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS785MC_INT_GFX,
-};
-static const struct pci_driver pcie_driver_785d __pci_driver = {
+static const struct pci_driver pcie_driver_780 __pci_driver = {
.ops = &pcie_ops,
.vendor = PCI_VENDOR_ID_ATI,
- .device = PCI_DEVICE_ID_ATI_RS785D_INT_GFX,
+ .devices = pcie_780_ids,
};
/* step 12 ~ step 14 from rpr */