Skip to content

Commit

Permalink
ACPI: pci_root: remove unused dev/fn information
Browse files Browse the repository at this point in the history
We never use the PCI device & function number, so remove it to make
it clear that it's not needed.  Many PCI host bridges don't even
appear in config space, so it's meaningless to look at stuff from
_ADR, which doesn't exist in that case.

Signed-off-by: Bjorn Helgaas <[email protected]>
Reviewed-by: Alex Chiang <[email protected]>
Signed-off-by: Len Brown <[email protected]>
  • Loading branch information
Bjorn Helgaas authored and lenb committed Jun 20, 2009
1 parent c1aec83 commit 0705495
Showing 1 changed file with 9 additions and 16 deletions.
25 changes: 9 additions & 16 deletions drivers/acpi/pci_root.c
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,10 @@ static struct acpi_driver acpi_pci_root_driver = {

struct acpi_pci_root {
struct list_head node;
struct acpi_device * device;
struct acpi_pci_id id;
struct acpi_device *device;
struct pci_bus *bus;
u16 segment;
u8 bus_nr;

u32 osc_support_set; /* _OSC state of support bits */
u32 osc_control_set; /* _OSC state of control bits */
Expand Down Expand Up @@ -129,7 +130,7 @@ acpi_handle acpi_get_pci_rootbridge_handle(unsigned int seg, unsigned int bus)
struct acpi_pci_root *root;

list_for_each_entry(root, &acpi_pci_roots, node)
if ((root->id.segment == (u16) seg) && (root->id.bus == (u16) bus))
if ((root->segment == (u16) seg) && (root->bus_nr == (u16) bus))
return root->device->handle;
return NULL;
}
Expand Down Expand Up @@ -395,6 +396,8 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)

INIT_LIST_HEAD(&root->node);
root->device = device;
root->segment = segment & 0xFFFF;
root->bus_nr = bus & 0xFF;
strcpy(acpi_device_name(device), ACPI_PCI_ROOT_DEVICE_NAME);
strcpy(acpi_device_class(device), ACPI_PCI_ROOT_CLASS);
device->driver_data = root;
Expand All @@ -408,16 +411,6 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
flags = base_flags = OSC_PCI_SEGMENT_GROUPS_SUPPORT;
acpi_pci_osc_support(root, flags);

/*
* Device & Function
* -----------------
* Obtained from _ADR (which has already been evaluated for us).
*/
root->id.segment = segment & 0xFFFF;
root->id.bus = bus & 0xFF;
root->id.device = device->pnp.bus_address >> 16;
root->id.function = device->pnp.bus_address & 0xFFFF;

/*
* TBD: Need PCI interface for enumeration/configuration of roots.
*/
Expand All @@ -427,7 +420,7 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)

printk(KERN_INFO PREFIX "%s [%s] (%04x:%02x)\n",
acpi_device_name(device), acpi_device_bid(device),
root->id.segment, root->id.bus);
root->segment, root->bus_nr);

/*
* Scan the Root Bridge
Expand All @@ -436,11 +429,11 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
* PCI namespace does not get created until this call is made (and
* thus the root bridge's pci_dev does not exist).
*/
root->bus = pci_acpi_scan_root(device, root->id.segment, root->id.bus);
root->bus = pci_acpi_scan_root(device, segment, bus);
if (!root->bus) {
printk(KERN_ERR PREFIX
"Bus %04x:%02x not present in PCI namespace\n",
root->id.segment, root->id.bus);
root->segment, root->bus_nr);
result = -ENODEV;
goto end;
}
Expand Down

0 comments on commit 0705495

Please sign in to comment.