- Major update of the dynamic device tree so it can handle
* subtractive resources * merging with the static device tree * more device types than just pci - The piece to watch out for is the new enable_resources method that was needed in all of the drivers git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1096 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -39,8 +39,9 @@ static void acpi_init(struct device *dev)
|
||||
}
|
||||
|
||||
static struct device_operations acpi_ops = {
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_dev_enable_resources,
|
||||
.init = acpi_init,
|
||||
.scan_bus = 0,
|
||||
};
|
||||
|
@@ -51,10 +51,11 @@ static void ide_init(struct device *dev)
|
||||
}
|
||||
|
||||
static struct device_operations ide_ops = {
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.init = ide_init,
|
||||
.scan_bus = 0,
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_dev_enable_resources,
|
||||
.init = ide_init,
|
||||
.scan_bus = 0,
|
||||
};
|
||||
|
||||
static struct pci_driver ide_driver __pci_driver = {
|
||||
|
@@ -121,11 +121,44 @@ static void lpc_init(struct device *dev)
|
||||
|
||||
}
|
||||
|
||||
static void amd8111_lpc_read_resources(device_t dev)
|
||||
{
|
||||
unsigned int reg;
|
||||
|
||||
/* Get the normal pci resources of this device */
|
||||
pci_dev_read_resources(dev);
|
||||
|
||||
/* Find my place in the resource list */
|
||||
reg = dev->resources;
|
||||
|
||||
/* Add an extra subtractive resource for both memory and I/O */
|
||||
dev->resource[reg].base = 0;
|
||||
dev->resource[reg].size = 0;
|
||||
dev->resource[reg].align = 0;
|
||||
dev->resource[reg].gran = 0;
|
||||
dev->resource[reg].limit = 0;
|
||||
dev->resource[reg].flags = IORESOURCE_IO | IORESOURCE_SUBTRACTIVE | IORESOURCE_SET;
|
||||
dev->resource[reg].index = 0;
|
||||
reg++;
|
||||
|
||||
dev->resource[reg].base = 0;
|
||||
dev->resource[reg].size = 0;
|
||||
dev->resource[reg].align = 0;
|
||||
dev->resource[reg].gran = 0;
|
||||
dev->resource[reg].limit = 0;
|
||||
dev->resource[reg].flags = IORESOURCE_MEM | IORESOURCE_SUBTRACTIVE | IORESOURCE_SET;
|
||||
dev->resource[reg].index = 0;
|
||||
reg++;
|
||||
|
||||
dev->resources = reg;
|
||||
}
|
||||
|
||||
static struct device_operations lpc_ops = {
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.init = lpc_init,
|
||||
.scan_bus = 0,
|
||||
.read_resources = amd8111_lpc_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_dev_enable_resources,
|
||||
.init = lpc_init,
|
||||
.scan_bus = walk_static_devices,
|
||||
};
|
||||
|
||||
static struct pci_driver lpc_driver __pci_driver = {
|
||||
|
@@ -20,10 +20,11 @@ static void usb_init(struct device *dev)
|
||||
}
|
||||
|
||||
static struct device_operations usb_ops = {
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.init = usb_init,
|
||||
.scan_bus = 0,
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_dev_enable_resources,
|
||||
.init = usb_init,
|
||||
.scan_bus = 0,
|
||||
};
|
||||
|
||||
static struct pci_driver usb_driver __pci_driver = {
|
||||
|
@@ -24,10 +24,11 @@ static void usb2_init(struct device *dev)
|
||||
}
|
||||
|
||||
static struct device_operations usb_ops = {
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.init = usb2_init,
|
||||
.scan_bus = 0,
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_dev_enable_resources,
|
||||
.init = usb2_init,
|
||||
.scan_bus = 0,
|
||||
};
|
||||
|
||||
static struct pci_driver usb2_driver __pci_driver = {
|
||||
|
@@ -34,10 +34,11 @@ static void pcix_init(device_t dev)
|
||||
}
|
||||
|
||||
static struct device_operations pcix_ops = {
|
||||
.read_resources = pci_bus_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.init = pcix_init,
|
||||
.scan_bus = pci_scan_bridge,
|
||||
.read_resources = pci_bus_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_bus_enable_resources,
|
||||
.init = pcix_init,
|
||||
.scan_bus = pci_scan_bridge,
|
||||
};
|
||||
|
||||
static struct pci_driver pcix_driver __pci_driver = {
|
||||
@@ -68,8 +69,9 @@ static void ioapic_enable(device_t dev)
|
||||
}
|
||||
|
||||
static struct device_operations ioapic_ops = {
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_dev_enable_resources,
|
||||
.init = 0,
|
||||
.scan_bus = 0,
|
||||
.enable = ioapic_enable,
|
||||
|
@@ -21,10 +21,11 @@ static void agp3bridge_init(device_t dev)
|
||||
}
|
||||
|
||||
static struct device_operations agp3bridge_ops = {
|
||||
.read_resources = pci_bus_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.init = agp3bridge_init,
|
||||
.scan_bus = pci_scan_bridge,
|
||||
.read_resources = pci_bus_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_bus_enable_resources,
|
||||
.init = agp3bridge_init,
|
||||
.scan_bus = pci_scan_bridge,
|
||||
};
|
||||
|
||||
static struct pci_driver agp3bridge_driver __pci_driver = {
|
||||
@@ -60,8 +61,9 @@ static void agp3dev_enable(device_t dev)
|
||||
}
|
||||
|
||||
static struct device_operations agp3dev_ops = {
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.read_resources = pci_dev_read_resources,
|
||||
.set_resources = pci_dev_set_resources,
|
||||
.enable_resources = pci_dev_enable_resources,
|
||||
.init = 0,
|
||||
.scan_bus = 0,
|
||||
.enable = agp3dev_enable,
|
||||
|
Reference in New Issue
Block a user