Patrick Georgi ([email protected]) just uploaded a new patch set to 
gerrit, which you can find at http://review.coreboot.org/523

-gerrit

commit 80f420e5d626dc84c98196c2b9dd9d58cd3ad1d5
Author: Rudolf Marek <[email protected]>
Date:   Fri Apr 22 20:48:21 2011 +0200

    Add subsystem callbacks for VT8237x and VT890 family of chipsets
    
    Change-Id: Id34615f0c229d276d72cdf984cf82ea8cc1a85bb
    Signed-off-by: Rudolf Marek <[email protected]>
    Signed-off-by: Patrick Georgi <[email protected]>
---
 src/southbridge/via/k8t890/ctrl.c      |    6 +++++-
 src/southbridge/via/k8t890/dram.c      |    8 ++++++--
 src/southbridge/via/k8t890/error.c     |    6 +++++-
 src/southbridge/via/k8t890/host.c      |    8 ++++++--
 src/southbridge/via/k8t890/host_ctrl.c |    8 ++++++--
 src/southbridge/via/vt8237r/lpc.c      |   14 ++++++++++++++
 src/southbridge/via/vt8237r/sata.c     |   15 +++++++++++++--
 src/southbridge/via/vt8237r/usb.c      |   16 ++++++++++++++--
 8 files changed, 69 insertions(+), 12 deletions(-)

diff --git a/src/southbridge/via/k8t890/ctrl.c 
b/src/southbridge/via/k8t890/ctrl.c
index 6e5dbf7..1ff0b74 100644
--- a/src/southbridge/via/k8t890/ctrl.c
+++ b/src/southbridge/via/k8t890/ctrl.c
@@ -181,12 +181,16 @@ static void ctrl_init(struct device *dev)
 
 }
 
+static struct pci_operations lops_pci = {
+       .set_subsystem = pci_dev_set_subsystem,
+};
+
 static const struct device_operations ctrl_ops = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .init                   = ctrl_init,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct pci_driver northbridge_driver_t800 __pci_driver = {
diff --git a/src/southbridge/via/k8t890/dram.c 
b/src/southbridge/via/k8t890/dram.c
index 294e387..7e450cc 100644
--- a/src/southbridge/via/k8t890/dram.c
+++ b/src/southbridge/via/k8t890/dram.c
@@ -153,12 +153,16 @@ static void dram_init_fb(struct device *dev)
 #endif
 }
 
+static struct pci_operations lops_pci = {
+       .set_subsystem = pci_dev_set_subsystem,
+};
+
 static const struct device_operations dram_ops_t = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .enable                 = dram_enable,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct device_operations dram_ops_m = {
@@ -167,7 +171,7 @@ static const struct device_operations dram_ops_m = {
        .enable_resources       = pci_dev_enable_resources,
        .enable                 = dram_enable_k8m890,
        .init                   = dram_init_fb,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct pci_driver northbridge_driver_t800 __pci_driver = {
diff --git a/src/southbridge/via/k8t890/error.c 
b/src/southbridge/via/k8t890/error.c
index f2cab10..1f6979a 100644
--- a/src/southbridge/via/k8t890/error.c
+++ b/src/southbridge/via/k8t890/error.c
@@ -41,12 +41,16 @@ static void error_enable(struct device *dev)
        dump_south(dev);
 }
 
+static struct pci_operations lops_pci = {
+       .set_subsystem = pci_dev_set_subsystem,
+};
+
 static const struct device_operations error_ops = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .enable                 = error_enable,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct pci_driver northbridge_driver_t800 __pci_driver = {
diff --git a/src/southbridge/via/k8t890/host.c 
b/src/southbridge/via/k8t890/host.c
index 700a637..54d79b4 100644
--- a/src/southbridge/via/k8t890/host.c
+++ b/src/southbridge/via/k8t890/host.c
@@ -95,12 +95,16 @@ static const struct device_operations host_ops_old = {
        .ops_pci                = 0,
 };
 
+static struct pci_operations lops_pci = {
+       .set_subsystem = pci_dev_set_subsystem,
+};
+
 static const struct device_operations host_ops_t = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .enable                 = host_enable,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct device_operations host_ops_m = {
@@ -109,7 +113,7 @@ static const struct device_operations host_ops_m = {
        .enable_resources       = pci_dev_enable_resources,
        .enable                 = host_enable,
        .init                   = host_init,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct pci_driver northbridge_driver_t800_old __pci_driver = {
diff --git a/src/southbridge/via/k8t890/host_ctrl.c 
b/src/southbridge/via/k8t890/host_ctrl.c
index 5d46a00..c5d751e 100644
--- a/src/southbridge/via/k8t890/host_ctrl.c
+++ b/src/southbridge/via/k8t890/host_ctrl.c
@@ -122,12 +122,16 @@ void set_cbmem_toc(struct cbmem_entry *toc) {
                outl((u32) toc, K8T890_NVRAM_IO_BASE+K8T890_NVRAM_CBMEM_TOC);
 }
 
+static struct pci_operations lops_pci = {
+       .set_subsystem = pci_dev_set_subsystem,
+};
+
 static const struct device_operations host_ctrl_ops_t = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .enable                 = host_ctrl_enable_k8t8xx,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct device_operations host_ctrl_ops_m = {
@@ -135,7 +139,7 @@ static const struct device_operations host_ctrl_ops_m = {
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .enable                 = host_ctrl_enable_k8m8xx,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct pci_driver northbridge_driver_t800 __pci_driver = {
diff --git a/src/southbridge/via/vt8237r/lpc.c 
b/src/southbridge/via/vt8237r/lpc.c
index cd1064f..d57d471 100644
--- a/src/southbridge/via/vt8237r/lpc.c
+++ b/src/southbridge/via/vt8237r/lpc.c
@@ -639,12 +639,24 @@ static void southbridge_init_common(struct device *dev)
        init_keyboard(dev);
 }
 
+
+static void vt8237_set_subsystem(device_t dev, unsigned vendor, unsigned 
device)
+{
+       pci_write_config16(dev, 0x70, vendor);
+       pci_write_config16(dev, 0x72, device);
+}
+
+static struct pci_operations lops_pci = {
+       .set_subsystem = vt8237_set_subsystem,
+};
+
 static const struct device_operations vt8237r_lpc_ops_s = {
        .read_resources         = vt8237r_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .init                   = vt8237s_init,
        .scan_bus               = scan_static_bus,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct device_operations vt8237r_lpc_ops_r = {
@@ -653,6 +665,7 @@ static const struct device_operations vt8237r_lpc_ops_r = {
        .enable_resources       = pci_dev_enable_resources,
        .init                   = vt8237r_init,
        .scan_bus               = scan_static_bus,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct device_operations vt8237r_lpc_ops_a = {
@@ -661,6 +674,7 @@ static const struct device_operations vt8237r_lpc_ops_a = {
        .enable_resources       = pci_dev_enable_resources,
        .init                   = vt8237a_init,
        .scan_bus               = scan_static_bus,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct pci_driver lpc_driver_r __pci_driver = {
diff --git a/src/southbridge/via/vt8237r/sata.c 
b/src/southbridge/via/vt8237r/sata.c
index 777d605..2f07e69 100644
--- a/src/southbridge/via/vt8237r/sata.c
+++ b/src/southbridge/via/vt8237r/sata.c
@@ -95,13 +95,24 @@ static void sata_ii_init(struct device *dev)
        }
 }
 
+
+static void vt8237_set_subsystem(device_t dev, unsigned vendor, unsigned 
device)
+{
+       pci_write_config16(dev, 0xd4, vendor);
+       pci_write_config16(dev, 0xd6, device);
+}
+
+static struct pci_operations lops_pci = {
+       .set_subsystem = vt8237_set_subsystem,
+};
+
 static const struct device_operations sata_i_ops = {
        .read_resources         = pci_dev_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .init                   = sata_i_init,
        .enable                 = 0,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct device_operations sata_ii_ops = {
@@ -110,7 +121,7 @@ static const struct device_operations sata_ii_ops = {
        .enable_resources       = pci_dev_enable_resources,
        .init                   = sata_ii_init,
        .enable                 = 0,
-       .ops_pci                = 0,
+       .ops_pci                = &lops_pci,
 };
 
 static const struct pci_driver northbridge_driver_ii __pci_driver = {
diff --git a/src/southbridge/via/vt8237r/usb.c 
b/src/southbridge/via/vt8237r/usb.c
index 2bdcf9d..ac27f43 100644
--- a/src/southbridge/via/vt8237r/usb.c
+++ b/src/southbridge/via/vt8237r/usb.c
@@ -158,13 +158,25 @@ static void vt8237_usb_ii_read_resources(struct device 
*dev)
        return;
 }
 
+static void vt8237_set_subsystem(device_t dev, unsigned vendor, unsigned 
device)
+{
+       pci_write_config32(dev, 0x42, pci_read_config32(dev, 0x42) | 0x10);
+       pci_write_config16(dev, 0x2c, vendor);
+       pci_write_config16(dev, 0x2e, device);
+       pci_write_config32(dev, 0x42, pci_read_config32(dev, 0x42) & ~0x10);
+}
+
+static struct pci_operations lops_pci = {
+       .set_subsystem = vt8237_set_subsystem,
+};
+
 static const struct device_operations usb_i_ops = {
        .read_resources         = vt8237_usb_i_read_resources,
        .set_resources          = pci_dev_set_resources,
        .enable_resources       = pci_dev_enable_resources,
        .init                           = usb_i_init,
        .enable                         = 0,
-       .ops_pci                        = 0,
+       .ops_pci                        = &lops_pci,
 };
 
 static const struct device_operations usb_ii_ops = {
@@ -173,7 +185,7 @@ static const struct device_operations usb_ii_ops = {
        .enable_resources       = pci_dev_enable_resources,
        .init                           = usb_ii_init,
        .enable                         = 0,
-       .ops_pci                        = 0,
+       .ops_pci                        = &lops_pci,
 };
 
 static const struct pci_driver vt8237r_driver_usbii __pci_driver = {

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to