Various cosmetic and coding style fixes in src/devices.
[coreboot.git] / src / devices / pciexp_device.c
index 461c3b6c7a30e303f94261726af94797e6986d51..b190285c3b4f85fc71c02d28faf3626ce895e113 100644 (file)
 #include <device/pci_ids.h>
 #include <device/pciexp.h>
 
-
 static void pciexp_tune_dev(device_t dev)
 {
-       unsigned cap;
+       unsigned int cap;
+#ifdef CONFIG_PCIE_TUNING
+       u32 reg32;
+#endif
 
        cap = pci_find_capability(dev, PCI_CAP_ID_PCIE);
-       if (!cap) {
-               /* error... */
+       if (!cap)
                return;
-       }
-       // printk_debug("PCIe: tuning %s\n", dev_path(dev));
-       /* TODO: Implement PCI Express tuning. */
+
+#ifdef CONFIG_PCIE_TUNING
+       printk(BIOS_DEBUG, "PCIe: tuning %s\n", dev_path(dev));
+
+       // TODO make this depending on ASPM.
+
+       /* Enable ASPM role based error reporting. */
+       reg32 = pci_read_config32(dev, cap + PCI_EXP_DEVCAP);
+       reg32 |= PCI_EXP_DEVCAP_RBER;
+       pci_write_config32(dev, cap + PCI_EXP_DEVCAP, reg32);
+#endif
 }
 
-unsigned int pciexp_scan_bus(struct bus *bus, 
-       unsigned min_devfn, unsigned max_devfn, 
-       unsigned int max)
+unsigned int pciexp_scan_bus(struct bus *bus, unsigned int min_devfn,
+                            unsigned int max_devfn, unsigned int max)
 {
        device_t child;
+
        max = pci_scan_bus(bus, min_devfn, max_devfn, max);
-       for(child = bus->children; child; child = child->sibling) {
-               if (    (child->path.pci.devfn < min_devfn) ||
-                       (child->path.pci.devfn > max_devfn))
-               {
+
+       for (child = bus->children; child; child = child->sibling) {
+               if ((child->path.pci.devfn < min_devfn) ||
+                   (child->path.pci.devfn > max_devfn)) {
                        continue;
                }
                pciexp_tune_dev(child);
@@ -55,7 +64,6 @@ unsigned int pciexp_scan_bus(struct bus *bus,
        return max;
 }
 
-
 unsigned int pciexp_scan_bridge(device_t dev, unsigned int max)
 {
        return do_pci_scan_bridge(dev, max, pciexp_scan_bus);
@@ -70,8 +78,8 @@ struct device_operations default_pciexp_ops_bus = {
        .read_resources   = pci_bus_read_resources,
        .set_resources    = pci_dev_set_resources,
        .enable_resources = pci_bus_enable_resources,
-       .init             = 0,
-       .scan_bus         = pciexp_scan_bridge,
+       .init             = 0,
+       .scan_bus         = pciexp_scan_bridge,
        .enable           = 0,
        .reset_bus        = pci_bus_reset,
        .ops_pci          = &pciexp_bus_ops_pci,