Author: myles Date: Thu Jun 17 18:16:56 2010 New Revision: 5633 URL: https://tracker.coreboot.org/trac/coreboot/changeset/5633
Log: Always enable parent resources before child resources.
Always initialize parents before children.
Move s2881 code into a driver.
Signed-off-by: Myles Watson mylesgw@gmail.com Acked-by: Peter Stuge peter@stuge.se
Added: trunk/src/drivers/i2c/adt7463/ trunk/src/drivers/i2c/adt7463/adt7463.c (contents, props changed) - copied, changed from r5632, trunk/src/mainboard/tyan/s2881/mainboard.c trunk/src/drivers/i2c/adt7463/chip.h (contents, props changed) - copied, changed from r5632, trunk/src/drivers/i2c/adm1027/chip.h Modified: trunk/src/devices/cardbus_device.c trunk/src/devices/device.c trunk/src/devices/pci_device.c trunk/src/devices/root_device.c trunk/src/include/device/device.h trunk/src/mainboard/emulation/qemu-x86/northbridge.c trunk/src/mainboard/tyan/s2881/mainboard.c trunk/src/northbridge/amd/amdfam10/northbridge.c trunk/src/northbridge/amd/amdk8/northbridge.c trunk/src/northbridge/amd/gx1/northbridge.c trunk/src/northbridge/amd/gx2/northbridge.c trunk/src/northbridge/amd/lx/northbridge.c trunk/src/northbridge/intel/e7501/northbridge.c trunk/src/northbridge/intel/e7520/northbridge.c trunk/src/northbridge/intel/e7525/northbridge.c trunk/src/northbridge/intel/i3100/northbridge.c trunk/src/northbridge/intel/i3100/pciexp_porta_ep80579.c trunk/src/northbridge/intel/i440bx/northbridge.c trunk/src/northbridge/intel/i440lx/northbridge.c trunk/src/northbridge/intel/i82810/northbridge.c trunk/src/northbridge/intel/i82830/northbridge.c trunk/src/northbridge/intel/i855/northbridge.c trunk/src/northbridge/intel/i945/northbridge.c trunk/src/northbridge/via/cn400/northbridge.c trunk/src/northbridge/via/cn700/northbridge.c trunk/src/northbridge/via/cx700/cx700_lpc.c trunk/src/northbridge/via/cx700/northbridge.c trunk/src/northbridge/via/vt8601/northbridge.c trunk/src/northbridge/via/vt8623/northbridge.c trunk/src/northbridge/via/vx800/northbridge.c trunk/src/northbridge/via/vx800/vx800_lpc.c trunk/src/southbridge/amd/amd8111/amd8111_lpc.c trunk/src/southbridge/amd/cs5530/cs5530_isa.c trunk/src/southbridge/amd/cs5535/cs5535.c trunk/src/southbridge/amd/cs5536/cs5536.c trunk/src/southbridge/amd/sb600/sb600_lpc.c trunk/src/southbridge/amd/sb700/sb700_lpc.c trunk/src/southbridge/broadcom/bcm5785/bcm5785_lpc.c trunk/src/southbridge/intel/esb6300/esb6300_lpc.c trunk/src/southbridge/intel/i3100/i3100_lpc.c trunk/src/southbridge/intel/i82801ax/i82801ax_lpc.c trunk/src/southbridge/intel/i82801bx/i82801bx_lpc.c trunk/src/southbridge/intel/i82801cx/i82801cx_lpc.c trunk/src/southbridge/intel/i82801dx/i82801dx_lpc.c trunk/src/southbridge/intel/i82801ex/i82801ex_lpc.c trunk/src/southbridge/intel/i82801gx/i82801gx_lpc.c trunk/src/southbridge/intel/i82801gx/i82801gx_pci.c trunk/src/southbridge/nvidia/ck804/ck804_lpc.c trunk/src/southbridge/nvidia/mcp55/mcp55_lpc.c trunk/src/southbridge/sis/sis966/sis966_lpc.c trunk/src/southbridge/via/vt8235/vt8235_lpc.c trunk/src/southbridge/via/vt8237r/vt8237r_lpc.c
Modified: trunk/src/devices/cardbus_device.c ============================================================================== --- trunk/src/devices/cardbus_device.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/devices/cardbus_device.c Thu Jun 17 18:16:56 2010 (r5633) @@ -170,8 +170,6 @@ pci_write_config16(dev, PCI_BRIDGE_CONTROL, ctrl);
pci_dev_enable_resources(dev); - - enable_childrens_resources(dev); }
struct device_operations default_cardbus_ops_bus = {
Modified: trunk/src/devices/device.c ============================================================================== --- trunk/src/devices/device.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/devices/device.c Thu Jun 17 18:16:56 2010 (r5633) @@ -782,33 +782,34 @@ }
/** - * @brief Enable the resources for a specific device + * @brief Enable the resources for devices on a link * - * @param dev the device whose resources are to be enabled + * @param link the link whose devices' resources are to be enabled * * Enable resources of the device by calling the device specific * enable_resources() method. * * The parent's resources should be enabled first to avoid having enabling * order problem. This is done by calling the parent's enable_resources() - * method and let that method to call it's children's enable_resoruces() - * method via the (global) enable_childrens_resources(). + * method before its childrens' enable_resources() methods. * - * Indirect mutual recursion: - * enable_resources() -> device_operations::enable_resource() - * device_operations::enable_resource() -> enable_children_resources() - * enable_children_resources() -> enable_resources() */ -void enable_resources(struct device *dev) +static void enable_resources(struct bus *link) { - if (!dev->enabled) { - return; + struct device *dev; + struct bus *c_link; + + for (dev = link->children; dev; dev = dev->sibling) { + if (dev->enabled && dev->ops && dev->ops->enable_resources) { + dev->ops->enable_resources(dev); + } } - if (!dev->ops || !dev->ops->enable_resources) { - printk(BIOS_ERR, "%s missing enable_resources\n", dev_path(dev)); - return; + + for (dev = link->children; dev; dev = dev->sibling) { + for (c_link = dev->link_list; c_link; c_link = c_link->next) { + enable_resources(c_link); + } } - dev->ops->enable_resources(dev); }
/** @@ -1036,39 +1037,77 @@ */ void dev_enable(void) { + struct bus *link; + printk(BIOS_INFO, "Enabling resources...\n");
/* now enable everything. */ - enable_resources(&dev_root); + for (link = dev_root.link_list; link; link = link->next) + enable_resources(link);
printk(BIOS_INFO, "done.\n"); }
/** - * @brief Initialize all devices in the global device list. + * @brief Initialize a specific device + * + * @param dev the device to be initialized + * + * The parent should be initialized first to avoid having an ordering + * problem. This is done by calling the parent's init() + * method before its childrens' init() methods. * - * Starting at the first device on the global device link list, - * walk the list and call the device's init() method to do deivce - * specific setup. */ -void dev_initialize(void) +static void init_dev(struct device *dev) +{ + if (!dev->enabled) { + return; + } + + if (!dev->initialized && dev->ops && dev->ops->init) { + if (dev->path.type == DEVICE_PATH_I2C) { + printk(BIOS_DEBUG, "smbus: %s[%d]->", + dev_path(dev->bus->dev), dev->bus->link_num); + } + + printk(BIOS_DEBUG, "%s init\n", dev_path(dev)); + dev->initialized = 1; + dev->ops->init(dev); + } +} + +static void init_link(struct bus *link) { struct device *dev; + struct bus *c_link;
- printk(BIOS_INFO, "Initializing devices...\n"); - for (dev = all_devices; dev; dev = dev->next) { - if (dev->enabled && !dev->initialized && - dev->ops && dev->ops->init) { - if (dev->path.type == DEVICE_PATH_I2C) { - printk(BIOS_DEBUG, "smbus: %s[%d]->", - dev_path(dev->bus->dev), - dev->bus->link_num); - } - printk(BIOS_DEBUG, "%s init\n", dev_path(dev)); - dev->initialized = 1; - dev->ops->init(dev); + for (dev = link->children; dev; dev = dev->sibling) { + init_dev(dev); + } + + for (dev = link->children; dev; dev = dev->sibling) { + for (c_link = dev->link_list; c_link; c_link = c_link->next) { + init_link(c_link); } } +} + +/** + * @brief Initialize all devices in the global device tree. + * + * Starting at the root device, call the device's init() method to do device- + * specific setup, then call each child's init() method. + */ +void dev_initialize(void) +{ + struct bus *link; + + printk(BIOS_INFO, "Initializing devices...\n"); + + /* now initialize everything. */ + for (link = dev_root.link_list; link; link = link->next) + init_link(link); + printk(BIOS_INFO, "Devices initialized\n"); show_all_devs(BIOS_SPEW, "After init."); }
Modified: trunk/src/devices/pci_device.c ============================================================================== --- trunk/src/devices/pci_device.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/devices/pci_device.c Thu Jun 17 18:16:56 2010 (r5633) @@ -621,7 +621,6 @@ pci_write_config16(dev, PCI_BRIDGE_CONTROL, ctrl);
pci_dev_enable_resources(dev); - enable_childrens_resources(dev); }
void pci_bus_reset(struct bus *bus)
Modified: trunk/src/devices/root_device.c ============================================================================== --- trunk/src/devices/root_device.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/devices/root_device.c Thu Jun 17 18:16:56 2010 (r5633) @@ -32,7 +32,7 @@ * that encompass the resources for the entire system. * @param root Pointer to the device structure for the system root device */ -void root_dev_read_resources(device_t root) +static void root_dev_read_resources(device_t root) { printk(BIOS_ERR, "%s should never be called.\n", __func__); } @@ -44,7 +44,7 @@ * and every device under it which are all of the devices. * @param root Pointer to the device structure for the system root device */ -void root_dev_set_resources(device_t root) +static void root_dev_set_resources(device_t root) { printk(BIOS_ERR, "%s should never be called.\n", __func__); } @@ -115,33 +115,8 @@ return max; }
-/** - * @brief Enable resources for children devices - * - * @param dev the device whos children's resources are to be enabled - * - * This function is called by the global enable_resource() indirectly via the - * device_operation::enable_resources() method of devices. - * - * Indirect mutual recursion: - * enable_childrens_resources() -> enable_resources() - * enable_resources() -> device_operation::enable_resources() - * device_operation::enable_resources() -> enable_children_resources() - */ -void enable_childrens_resources(device_t dev) -{ - struct bus *link; - for(link = dev->link_list; link; link = link->next) { - device_t child; - for(child = link->children; child; child = child->sibling) { - enable_resources(child); - } - } -} - -void root_dev_enable_resources(device_t dev) +static void root_dev_enable_resources(device_t dev) { - enable_childrens_resources(dev); }
/** @@ -152,16 +127,16 @@ * * This function is the default scan_bus() method of the root device. */ -unsigned int root_dev_scan_bus(device_t root, unsigned int max) +static unsigned int root_dev_scan_bus(device_t root, unsigned int max) { return scan_static_bus(root, max); }
-void root_dev_init(device_t root) +static void root_dev_init(device_t root) { }
-void root_dev_reset(struct bus *bus) +static void root_dev_reset(struct bus *bus) { printk(BIOS_INFO, "Reseting board...\n"); hard_reset();
Copied and modified: trunk/src/drivers/i2c/adt7463/adt7463.c (from r5632, trunk/src/mainboard/tyan/s2881/mainboard.c) ============================================================================== --- trunk/src/mainboard/tyan/s2881/mainboard.c Thu Jun 17 00:21:19 2010 (r5632, copy source) +++ trunk/src/drivers/i2c/adt7463/adt7463.c Thu Jun 17 18:16:56 2010 (r5633) @@ -28,6 +28,8 @@ /** * Do some S2881-specific HWM initialization for the ADT7463 chip. * + * Should be factored out so that it can be more general. + * * See Analog Devices ADT7463 datasheet, Rev C (2004): * http://www.analog.com/en/prod/0,,766_825_ADT7463,00.html */ @@ -98,56 +100,23 @@ printk(BIOS_DEBUG, "ADT7463 properly initialized\n"); }
-static void dummy_noop(device_t dummy) +static void adt7463_noop(device_t dummy) { }
-static struct device_operations dummy_operations = { - .read_resources = dummy_noop, - .set_resources = dummy_noop, - .enable_resources = dummy_noop, +static struct device_operations adt7463_operations = { + .read_resources = adt7463_noop, + .set_resources = adt7463_noop, + .enable_resources = adt7463_noop, .init = adt7463_init, };
-static unsigned int scan_root_bus(device_t root, unsigned int max) -{ - struct device_path path; - device_t dummy; - - max = root_dev_scan_bus(root, max); - - printk(BIOS_DEBUG, "scan_root_bus ok\n"); - - /* The following is a little silly. We need a hook into the boot - * process *after* the ADT7463 device has been initialized. So we - * create this dummy device, and we put the ADT7463 S2881 specific - * settings in its init function, which gets called - * as the last device to be initialized. - */ - - path.type = DEVICE_PATH_PNP; - path.pnp.port = 0; - path.pnp.device = 0; - dummy = alloc_dev(root->link_list, &path); - dummy->ops = &dummy_operations; - - return max; -} - -static struct device_operations mainboard_operations = { - .read_resources = root_dev_read_resources, - .set_resources = root_dev_set_resources, - .enable_resources = root_dev_enable_resources, - .init = root_dev_init, - .scan_bus = scan_root_bus, -}; - static void enable_dev(struct device *dev) { - dev->ops = &mainboard_operations; + dev->ops = &adt7463_operations; }
struct chip_operations mainboard_ops = { - CHIP_NAME("Tyan S2881 Mainboard") + CHIP_NAME("adt7463") .enable_dev = enable_dev, };
Copied and modified: trunk/src/drivers/i2c/adt7463/chip.h (from r5632, trunk/src/drivers/i2c/adm1027/chip.h) ============================================================================== --- trunk/src/drivers/i2c/adm1027/chip.h Thu Jun 17 00:21:19 2010 (r5632, copy source) +++ trunk/src/drivers/i2c/adt7463/chip.h Thu Jun 17 18:16:56 2010 (r5633) @@ -1,4 +1,4 @@ -extern struct chip_operations drivers_i2c_adm1027_ops; +extern struct chip_operations drivers_i2c_adt7463_ops;
-struct drivers_i2c_adm1027_config { +struct drivers_i2c_adt7463_config { };
Modified: trunk/src/include/device/device.h ============================================================================== --- trunk/src/include/device/device.h Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/include/device/device.h Thu Jun 17 18:16:56 2010 (r5633) @@ -107,7 +107,6 @@ int reset_bus(struct bus *bus); unsigned int scan_bus(struct device *bus, unsigned int max); void assign_resources(struct bus *bus); -void enable_resources(struct device *dev); void enumerate_static_device(void); void enumerate_static_devices(void); const char *dev_path(device_t dev); @@ -146,12 +145,5 @@ extern struct device_operations default_dev_ops_root; void pci_domain_read_resources(struct device *dev); unsigned int pci_domain_scan_bus(struct device *dev, unsigned int max); -void root_dev_read_resources(device_t dev); -void root_dev_set_resources(device_t dev); unsigned int scan_static_bus(device_t bus, unsigned int max); -void enable_childrens_resources(device_t dev); -void root_dev_enable_resources(device_t dev); -unsigned int root_dev_scan_bus(device_t root, unsigned int max); -void root_dev_init(device_t dev); -void root_dev_reset(struct bus *bus); #endif /* DEVICE_H */
Modified: trunk/src/mainboard/emulation/qemu-x86/northbridge.c ============================================================================== --- trunk/src/mainboard/emulation/qemu-x86/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/mainboard/emulation/qemu-x86/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -122,8 +122,8 @@ static struct device_operations pci_domain_ops = { .read_resources = cpu_pci_domain_read_resources, .set_resources = cpu_pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/mainboard/tyan/s2881/mainboard.c ============================================================================== --- trunk/src/mainboard/tyan/s2881/mainboard.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/mainboard/tyan/s2881/mainboard.c Thu Jun 17 18:16:56 2010 (r5633) @@ -21,133 +21,8 @@ */
#include <device/device.h> -#include <console/console.h> -#include <device/smbus.h> #include "chip.h"
-/** - * Do some S2881-specific HWM initialization for the ADT7463 chip. - * - * See Analog Devices ADT7463 datasheet, Rev C (2004): - * http://www.analog.com/en/prod/0,,766_825_ADT7463,00.html - */ -static void adt7463_init(device_t dev) -{ - device_t smbus_dev, adt7463; - struct device_path path; - int result; - - /* Find the SMBus controller (AMD-8111). */ - smbus_dev = dev_find_device(0x1022, 0x746b, 0); - if (!smbus_dev) - die("SMBus controller not found\n"); - printk(BIOS_DEBUG, "SMBus controller found\n"); - - /* Find the ADT7463 device. */ - path.type = DEVICE_PATH_I2C; - path.i2c.device = 0x2d; - adt7463 = find_dev_path(smbus_dev->link_list, &path); - if (!adt7463) - die("ADT7463 not found\n"); - printk(BIOS_DEBUG, "ADT7463 found\n"); - - /* Set all fans to 'Fastest Speed Calculated by All 3 Temperature - * Channels Controls PWMx'. - */ - result = smbus_write_byte(adt7463, 0x5c, 0xc2); - result = smbus_write_byte(adt7463, 0x5d, 0xc2); - result = smbus_write_byte(adt7463, 0x5e, 0xc2); - - /* Make sure that our fans never stop when temp. falls below Tmin, - * but rather keep going at minimum duty cycle (applies to automatic - * fan control mode only). - */ - result = smbus_write_byte(adt7463, 0x62, 0xc0); - - /* Set minimum PWM duty cycle to 25%, rather than the default 50%. */ - result = smbus_write_byte(adt7463, 0x64, 0x40); - result = smbus_write_byte(adt7463, 0x65, 0x40); - result = smbus_write_byte(adt7463, 0x66, 0x40); - - /* Set Tmin to 55C, rather than the default 90C. Above this temperature - * the fans will start blowing harder as temperature increases - * (automatic mode only). - */ - result = smbus_write_byte(adt7463, 0x67, 0x37); - result = smbus_write_byte(adt7463, 0x68, 0x37); - result = smbus_write_byte(adt7463, 0x69, 0x37); - - /* Set THERM limit to 70C, rather than the default 100C. - * The fans will kick in at 100% if the sensors reach this temperature, - * (only in automatic mode, but supposedly even when hardware is - * locked up). This is a failsafe measure. - */ - result = smbus_write_byte(adt7463, 0x6a, 0x46); - result = smbus_write_byte(adt7463, 0x6b, 0x46); - result = smbus_write_byte(adt7463, 0x6c, 0x46); - - /* Remote temperature 1 offset (LSB == 0.25C). */ - result = smbus_write_byte(adt7463, 0x70, 0x02); - - /* Remote temperature 2 offset (LSB == 0.25C). */ - result = smbus_write_byte(adt7463, 0x72, 0x01); - - /* Set TACH measurements to normal (1/second). */ - result = smbus_write_byte(adt7463, 0x78, 0xf0); - - printk(BIOS_DEBUG, "ADT7463 properly initialized\n"); -} - -static void dummy_noop(device_t dummy) -{ -} - -static struct device_operations dummy_operations = { - .read_resources = dummy_noop, - .set_resources = dummy_noop, - .enable_resources = dummy_noop, - .init = adt7463_init, -}; - -static unsigned int scan_root_bus(device_t root, unsigned int max) -{ - struct device_path path; - device_t dummy; - - max = root_dev_scan_bus(root, max); - - printk(BIOS_DEBUG, "scan_root_bus ok\n"); - - /* The following is a little silly. We need a hook into the boot - * process *after* the ADT7463 device has been initialized. So we - * create this dummy device, and we put the ADT7463 S2881 specific - * settings in its init function, which gets called - * as the last device to be initialized. - */ - - path.type = DEVICE_PATH_PNP; - path.pnp.port = 0; - path.pnp.device = 0; - dummy = alloc_dev(root->link_list, &path); - dummy->ops = &dummy_operations; - - return max; -} - -static struct device_operations mainboard_operations = { - .read_resources = root_dev_read_resources, - .set_resources = root_dev_set_resources, - .enable_resources = root_dev_enable_resources, - .init = root_dev_init, - .scan_bus = scan_root_bus, -}; - -static void enable_dev(struct device *dev) -{ - dev->ops = &mainboard_operations; -} - struct chip_operations mainboard_ops = { CHIP_NAME("Tyan S2881 Mainboard") - .enable_dev = enable_dev, };
Modified: trunk/src/northbridge/amd/amdfam10/northbridge.c ============================================================================== --- trunk/src/northbridge/amd/amdfam10/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/amd/amdfam10/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -604,12 +604,6 @@ } }
-static void amdfam10_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void mcf0_control_init(struct device *dev) { } @@ -617,7 +611,7 @@ static struct device_operations northbridge_operations = { .read_resources = amdfam10_read_resources, .set_resources = amdfam10_set_resources, - .enable_resources = amdfam10_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = mcf0_control_init, .scan_bus = amdfam10_scan_chains, .enable = 0, @@ -1145,8 +1139,8 @@ static struct device_operations pci_domain_ops = { .read_resources = amdfam10_domain_read_resources, .set_resources = amdfam10_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = amdfam10_domain_scan_bus, #if CONFIG_MMCONF_SUPPORT_DEFAULT .ops_pci_bus = &pci_ops_mmconf,
Modified: trunk/src/northbridge/amd/amdk8/northbridge.c ============================================================================== --- trunk/src/northbridge/amd/amdk8/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/amd/amdk8/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -574,12 +574,6 @@ } }
-static void amdk8_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void mcf0_control_init(struct device *dev) { #if 0 @@ -593,7 +587,7 @@ static struct device_operations northbridge_operations = { .read_resources = amdk8_read_resources, .set_resources = amdk8_set_resources, - .enable_resources = amdk8_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = mcf0_control_init, .scan_bus = amdk8_scan_chains, .enable = 0, @@ -1119,8 +1113,8 @@ static struct device_operations pci_domain_ops = { .read_resources = amdk8_domain_read_resources, .set_resources = amdk8_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = amdk8_domain_scan_bus, .ops_pci_bus = &pci_cf8_conf1, };
Modified: trunk/src/northbridge/amd/gx1/northbridge.c ============================================================================== --- trunk/src/northbridge/amd/gx1/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/amd/gx1/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -169,8 +169,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/amd/gx2/northbridge.c ============================================================================== --- trunk/src/northbridge/amd/gx2/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/amd/gx2/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -448,8 +448,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/amd/lx/northbridge.c ============================================================================== --- trunk/src/northbridge/amd/lx/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/amd/lx/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -441,7 +441,7 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, + .enable_resources = NULL, .scan_bus = pci_domain_scan_bus, .enable = pci_domain_enable, };
Modified: trunk/src/northbridge/intel/e7501/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/e7501/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/e7501/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -141,8 +141,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, .ops_pci_bus = &pci_cf8_conf1, };
Modified: trunk/src/northbridge/intel/e7520/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/e7520/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/e7520/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -163,8 +163,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = e7520_domain_scan_bus, .ops_pci_bus = &pci_cf8_conf1, /* Do we want to use the memory mapped space here? */ };
Modified: trunk/src/northbridge/intel/e7525/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/e7525/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/e7525/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -163,8 +163,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = e7525_domain_scan_bus, .ops_pci_bus = &pci_cf8_conf1, /* Do we want to use the memory mapped space here? */ };
Modified: trunk/src/northbridge/intel/i3100/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/i3100/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i3100/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -184,8 +184,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = i3100_domain_scan_bus, .ops_pci_bus = &pci_cf8_conf1, /* Do we want to use the memory mapped space here? */ };
Modified: trunk/src/northbridge/intel/i3100/pciexp_porta_ep80579.c ============================================================================== --- trunk/src/northbridge/intel/i3100/pciexp_porta_ep80579.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i3100/pciexp_porta_ep80579.c Thu Jun 17 18:16:56 2010 (r5633) @@ -64,7 +64,6 @@ dev->command |= PCI_COMMAND_MEMORY; } pci_dev_enable_resources(dev); - enable_childrens_resources(dev); }
Modified: trunk/src/northbridge/intel/i440bx/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/i440bx/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i440bx/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -124,8 +124,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = i440bx_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/intel/i440lx/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/i440lx/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i440lx/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -152,8 +152,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = i440lx_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/intel/i82810/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/i82810/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i82810/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -184,8 +184,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/intel/i82830/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/i82830/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i82830/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -164,8 +164,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/intel/i855/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/i855/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i855/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -140,8 +140,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/intel/i945/northbridge.c ============================================================================== --- trunk/src/northbridge/intel/i945/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/intel/i945/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -224,8 +224,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, #if CONFIG_MMCONF_SUPPORT_DEFAULT .ops_pci_bus = &pci_ops_mmconf,
Modified: trunk/src/northbridge/via/cn400/northbridge.c ============================================================================== --- trunk/src/northbridge/via/cn400/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/cn400/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -283,8 +283,8 @@ static struct device_operations pci_domain_ops = { .read_resources = cn400_domain_read_resources, .set_resources = cn400_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = cn400_domain_scan_bus, };
Modified: trunk/src/northbridge/via/cn700/northbridge.c ============================================================================== --- trunk/src/northbridge/via/cn700/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/cn700/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -205,8 +205,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/via/cx700/cx700_lpc.c ============================================================================== --- trunk/src/northbridge/via/cx700/cx700_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/cx700/cx700_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -270,7 +270,6 @@ { /* Enable SuperIO decoding */ pci_dev_enable_resources(dev); - enable_childrens_resources(dev); }
static void cx700_lpc_init(struct device *dev)
Modified: trunk/src/northbridge/via/cx700/northbridge.c ============================================================================== --- trunk/src/northbridge/via/cx700/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/cx700/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -134,8 +134,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/via/vt8601/northbridge.c ============================================================================== --- trunk/src/northbridge/via/vt8601/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/vt8601/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -146,8 +146,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/via/vt8623/northbridge.c ============================================================================== --- trunk/src/northbridge/via/vt8623/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/vt8623/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -207,8 +207,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/via/vx800/northbridge.c ============================================================================== --- trunk/src/northbridge/via/vx800/northbridge.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/vx800/northbridge.c Thu Jun 17 18:16:56 2010 (r5633) @@ -181,8 +181,8 @@ static struct device_operations pci_domain_ops = { .read_resources = pci_domain_read_resources, .set_resources = pci_domain_set_resources, - .enable_resources = enable_childrens_resources, - .init = 0, + .enable_resources = NULL, + .init = NULL, .scan_bus = pci_domain_scan_bus, };
Modified: trunk/src/northbridge/via/vx800/vx800_lpc.c ============================================================================== --- trunk/src/northbridge/via/vx800/vx800_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/northbridge/via/vx800/vx800_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -322,16 +322,6 @@ pci_dev_set_resources(dev); }
-static void vx800_enable_resources(device_t dev) -{ - /* vx800 is not a pci bridge and has no resources of its own (other than - standard PC i/o addresses). however it does control the isa bus and so - we need to manually call enable childrens resources on that bus */ - /* TODO: do we even care about ISA? If so, for what? SuperIO on LPC bus */ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void southbridge_init(struct device *dev) { printk(BIOS_DEBUG, "vx800 sb init\n"); @@ -375,8 +365,8 @@ static struct device_operations vx800_lpc_ops = { .read_resources = vx800_read_resources, .set_resources = vx800_set_resources, - .enable_resources = vx800_enable_resources, - .init = &southbridge_init, + .enable_resources = pci_dev_enable_resources, + .init = southbridge_init, .scan_bus = scan_static_bus, };
Modified: trunk/src/southbridge/amd/amd8111/amd8111_lpc.c ============================================================================== --- trunk/src/southbridge/amd/amd8111/amd8111_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/amd/amd8111/amd8111_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -106,12 +106,6 @@ res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-static void amd8111_lpc_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void lpci_set_subsystem(device_t dev, unsigned vendor, unsigned device) { pci_write_config32(dev, 0x70, @@ -125,7 +119,7 @@ static struct device_operations lpc_ops = { .read_resources = amd8111_lpc_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = amd8111_lpc_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = lpc_init, .scan_bus = scan_static_bus, .enable = amd8111_enable,
Modified: trunk/src/southbridge/amd/cs5530/cs5530_isa.c ============================================================================== --- trunk/src/southbridge/amd/cs5530/cs5530_isa.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/amd/cs5530/cs5530_isa.c Thu Jun 17 18:16:56 2010 (r5633) @@ -47,17 +47,10 @@ { }
-static void cs5530_pci_dev_enable_resources(device_t dev) -{ - // TODO: Needed? - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations isa_ops = { .read_resources = cs5530_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = cs5530_pci_dev_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = isa_init, .enable = 0, .scan_bus = scan_static_bus,
Modified: trunk/src/southbridge/amd/cs5535/cs5535.c ============================================================================== --- trunk/src/southbridge/amd/cs5535/cs5535.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/amd/cs5535/cs5535.c Thu Jun 17 18:16:56 2010 (r5633) @@ -87,17 +87,10 @@ res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-static void cs5535_pci_dev_enable_resources(device_t dev) -{ - printk(BIOS_DEBUG, "%s()\n", __func__); - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations southbridge_ops = { .read_resources = cs5535_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = cs5535_pci_dev_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = southbridge_init, .enable = southbridge_enable, .scan_bus = scan_static_bus,
Modified: trunk/src/southbridge/amd/cs5536/cs5536.c ============================================================================== --- trunk/src/southbridge/amd/cs5536/cs5536.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/amd/cs5536/cs5536.c Thu Jun 17 18:16:56 2010 (r5633) @@ -667,17 +667,10 @@
}
-static void cs5536_pci_dev_enable_resources(device_t dev) -{ - printk(BIOS_DEBUG, "%s()\n", __func__); - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations southbridge_ops = { .read_resources = cs5536_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = cs5536_pci_dev_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = southbridge_init, // .enable = southbridge_enable, .scan_bus = scan_static_bus,
Modified: trunk/src/southbridge/amd/sb600/sb600_lpc.c ============================================================================== --- trunk/src/southbridge/amd/sb600/sb600_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/amd/sb600/sb600_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -96,13 +96,6 @@ * * @param dev the device whos children's resources are to be enabled * - * This function is call by the global enable_resources() indirectly via the - * device_operation::enable_resources() method of devices. - * - * Indirect mutual recursion: - * enable_childrens_resources() -> enable_resources() - * enable_resources() -> device_operation::enable_resources() - * device_operation::enable_resources() -> enable_children_resources() */ static void sb600_lpc_enable_childrens_resources(device_t dev) { @@ -118,7 +111,6 @@ device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if (child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res;
Modified: trunk/src/southbridge/amd/sb700/sb700_lpc.c ============================================================================== --- trunk/src/southbridge/amd/sb700/sb700_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/amd/sb700/sb700_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -108,13 +108,6 @@ * * @param dev the device whos children's resources are to be enabled * - * This function is call by the global enable_resources() indirectly via the - * device_operation::enable_resources() method of devices. - * - * Indirect mutual recursion: - * enable_childrens_resources() -> enable_resources() - * enable_resources() -> device_operation::enable_resources() - * device_operation::enable_resources() -> enable_children_resources() */ static void sb700_lpc_enable_childrens_resources(device_t dev) { @@ -130,7 +123,6 @@ device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if (child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res;
Modified: trunk/src/southbridge/broadcom/bcm5785/bcm5785_lpc.c ============================================================================== --- trunk/src/southbridge/broadcom/bcm5785/bcm5785_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/broadcom/bcm5785/bcm5785_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -57,13 +57,6 @@ * * @param dev the device whos children's resources are to be enabled * - * This function is call by the global enable_resources() indirectly via the - * device_operation::enable_resources() method of devices. - * - * Indirect mutual recursion: - * enable_childrens_resources() -> enable_resources() - * enable_resources() -> device_operation::enable_resources() - * device_operation::enable_resources() -> enable_children_resources() */ static void bcm5785_lpc_enable_childrens_resources(device_t dev) { @@ -75,7 +68,6 @@ for (link = dev->link_list; link; link = link->next) { device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if(child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res; for(res = child->resource_list; res; res = res->next) {
Modified: trunk/src/southbridge/intel/esb6300/esb6300_lpc.c ============================================================================== --- trunk/src/southbridge/intel/esb6300/esb6300_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/esb6300/esb6300_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -351,8 +351,6 @@ gpio_cntl = pci_read_config8(dev, 0x5c); gpio_cntl |= (1 << 4); pci_write_config8(dev, 0x5c, gpio_cntl); - - enable_childrens_resources(dev); }
static struct pci_operations lops_pci = {
Modified: trunk/src/southbridge/intel/i3100/i3100_lpc.c ============================================================================== --- trunk/src/southbridge/intel/i3100/i3100_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i3100/i3100_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -404,8 +404,6 @@
/* Enable the RCBA */ pci_write_config32(dev, RCBA, pci_read_config32(dev, RCBA) | (1 << 0)); - - enable_childrens_resources(dev); }
static struct pci_operations lops_pci = {
Modified: trunk/src/southbridge/intel/i82801ax/i82801ax_lpc.c ============================================================================== --- trunk/src/southbridge/intel/i82801ax/i82801ax_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i82801ax/i82801ax_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -332,16 +332,10 @@ res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-static void i82801ax_lpc_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations lpc_ops = { .read_resources = i82801ax_lpc_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = i82801ax_lpc_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = lpc_init, .scan_bus = scan_static_bus, .enable = i82801ax_enable,
Modified: trunk/src/southbridge/intel/i82801bx/i82801bx_lpc.c ============================================================================== --- trunk/src/southbridge/intel/i82801bx/i82801bx_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i82801bx/i82801bx_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -332,16 +332,10 @@ res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-static void i82801bx_lpc_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations lpc_ops = { .read_resources = i82801bx_lpc_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = i82801bx_lpc_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = lpc_init, .scan_bus = scan_static_bus, .enable = i82801bx_enable,
Modified: trunk/src/southbridge/intel/i82801cx/i82801cx_lpc.c ============================================================================== --- trunk/src/southbridge/intel/i82801cx/i82801cx_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i82801cx/i82801cx_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -229,16 +229,10 @@ res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-static void i82801cx_lpc_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations lpc_ops = { .read_resources = i82801cx_lpc_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = i82801cx_lpc_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = lpc_init, .scan_bus = scan_static_bus, .enable = 0,
Modified: trunk/src/southbridge/intel/i82801dx/i82801dx_lpc.c ============================================================================== --- trunk/src/southbridge/intel/i82801dx/i82801dx_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i82801dx/i82801dx_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -322,16 +322,10 @@ res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-static void i82801dx_lpc_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static struct device_operations lpc_ops = { .read_resources = i82801dx_lpc_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = i82801dx_lpc_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = lpc_init, .scan_bus = scan_static_bus, .enable = i82801dx_enable,
Modified: trunk/src/southbridge/intel/i82801ex/i82801ex_lpc.c ============================================================================== --- trunk/src/southbridge/intel/i82801ex/i82801ex_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i82801ex/i82801ex_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -335,8 +335,6 @@ gpio_cntl = pci_read_config8(dev, 0x5c); gpio_cntl |= (1 << 4); pci_write_config8(dev, 0x5c, gpio_cntl); - - enable_childrens_resources(dev); }
static struct pci_operations lops_pci = {
Modified: trunk/src/southbridge/intel/i82801gx/i82801gx_lpc.c ============================================================================== --- trunk/src/southbridge/intel/i82801gx/i82801gx_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i82801gx/i82801gx_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -481,12 +481,6 @@ res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-static void i82801gx_lpc_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void set_subsystem(device_t dev, unsigned vendor, unsigned device) { if (!vendor || !device) { @@ -505,7 +499,7 @@ static struct device_operations device_ops = { .read_resources = i82801gx_lpc_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = i82801gx_lpc_enable_resources, + .enable_resources = pci_dev_enable_resources, .init = lpc_init, .scan_bus = scan_static_bus, .enable = i82801gx_enable,
Modified: trunk/src/southbridge/intel/i82801gx/i82801gx_pci.c ============================================================================== --- trunk/src/southbridge/intel/i82801gx/i82801gx_pci.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/intel/i82801gx/i82801gx_pci.c Thu Jun 17 18:16:56 2010 (r5633) @@ -110,8 +110,6 @@
/* This is the reason we need our own pci_bus_enable_resources */ ich_pci_dev_enable_resources(dev); - - enable_childrens_resources(dev); }
static void set_subsystem(device_t dev, unsigned vendor, unsigned device)
Modified: trunk/src/southbridge/nvidia/ck804/ck804_lpc.c ============================================================================== --- trunk/src/southbridge/nvidia/ck804/ck804_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/nvidia/ck804/ck804_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -222,12 +222,6 @@ * This function is called by the global enable_resources() indirectly via the * device_operation::enable_resources() method of devices. * - * Indirect mutual recursion: - * enable_childrens_resources() -> enable_resources() - * enable_resources() -> device_operation::enable_resources() - * device_operation::enable_resources() -> enable_children_resources() - * - * @param dev The device whose children's resources are to be enabled. */ static void ck804_lpc_enable_childrens_resources(device_t dev) { @@ -240,7 +234,6 @@ for (link = dev->link_list; link; link = link->next) { device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if (child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res; for (res = child->resource_list; res; res = res->next) {
Modified: trunk/src/southbridge/nvidia/mcp55/mcp55_lpc.c ============================================================================== --- trunk/src/southbridge/nvidia/mcp55/mcp55_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/nvidia/mcp55/mcp55_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -195,13 +195,6 @@ * * @param dev the device whos children's resources are to be enabled * - * This function is called by the global enable_resources() indirectly via the - * device_operation::enable_resources() method of devices. - * - * Indirect mutual recursion: - * enable_childrens_resources() -> enable_resources() - * enable_resources() -> device_operation::enable_resources() - * device_operation::enable_resources() -> enable_children_resources() */ static void mcp55_lpc_enable_childrens_resources(device_t dev) { @@ -215,7 +208,6 @@ for (link = dev->link_list; link; link = link->next) { device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if(child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res; for(res = child->resource_list; res; res = res->next) {
Modified: trunk/src/southbridge/sis/sis966/sis966_lpc.c ============================================================================== --- trunk/src/southbridge/sis/sis966/sis966_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/sis/sis966/sis966_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -188,13 +188,6 @@ * * @param dev the device whos children's resources are to be enabled * - * This function is call by the global enable_resources() indirectly via the - * device_operation::enable_resources() method of devices. - * - * Indirect mutual recursion: - * enable_childrens_resources() -> enable_resources() - * enable_resources() -> device_operation::enable_resources() - * device_operation::enable_resources() -> enable_children_resources() */ static void sis966_lpc_enable_childrens_resources(device_t dev) { @@ -208,7 +201,6 @@ for (link = dev->link_list; link; link = link->next) { device_t child; for (child = link->children; child; child = child->sibling) { - enable_resources(child); if(child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res; for(res = child->resource_list; res; res = res->next) {
Modified: trunk/src/southbridge/via/vt8235/vt8235_lpc.c ============================================================================== --- trunk/src/southbridge/via/vt8235/vt8235_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/via/vt8235/vt8235_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -241,14 +241,6 @@ pci_dev_set_resources(dev); }
-static void vt8235_enable_resources(device_t dev) -{ - /* vt8235 is not a pci bridge and has no resources of its own (other than standard PC i/o addresses) - however it does control the isa bus and so we need to manually call enable childrens resources on that bus */ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void southbridge_init(struct device *dev) { vt8235_init(dev); @@ -258,8 +250,8 @@ static struct device_operations vt8235_lpc_ops = { .read_resources = vt8235_read_resources, .set_resources = vt8235_set_resources, - .enable_resources = vt8235_enable_resources, - .init = &southbridge_init, + .enable_resources = pci_dev_enable_resources, + .init = southbridge_init, .scan_bus = scan_static_bus, };
Modified: trunk/src/southbridge/via/vt8237r/vt8237r_lpc.c ============================================================================== --- trunk/src/southbridge/via/vt8237r/vt8237r_lpc.c Thu Jun 17 00:21:19 2010 (r5632) +++ trunk/src/southbridge/via/vt8237r/vt8237r_lpc.c Thu Jun 17 18:16:56 2010 (r5633) @@ -505,17 +505,6 @@ res->flags = IORESOURCE_IO | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
-/** - * The VT8237R is not a PCI bridge and has no resources of its own (other - * than standard PC I/O addresses), however it does control the ISA bus - * and so we need to manually call enable childrens resources on that bus. - */ -static void vt8237r_enable_resources(device_t dev) -{ - pci_dev_enable_resources(dev); - enable_childrens_resources(dev); -} - static void init_keyboard(struct device *dev) { u8 regval = pci_read_config8(dev, 0x51); @@ -535,16 +524,16 @@ static const struct device_operations vt8237r_lpc_ops_s = { .read_resources = vt8237r_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = vt8237r_enable_resources, - .init = &vt8237s_init, + .enable_resources = pci_dev_enable_resources, + .init = vt8237s_init, .scan_bus = scan_static_bus, };
static const struct device_operations vt8237r_lpc_ops_r = { .read_resources = vt8237r_read_resources, .set_resources = pci_dev_set_resources, - .enable_resources = vt8237r_enable_resources, - .init = &vt8237r_init, + .enable_resources = pci_dev_enable_resources, + .init = vt8237r_init, .scan_bus = scan_static_bus, };