forked from mirrors/linux
		
	ACPI: simplify acpi_pci_irq_add_prt() API
A PCI domain cannot change as you descend down subordinate buses, which makes the 'segment' argument to acpi_pci_irq_add_prt() useless. Change the interface to take a struct pci_bus *, from whence we can derive the bus number and segment. Reducing the number of arguments makes life simpler for callers. Signed-off-by: Alex Chiang <achiang@hp.com> Acked-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
		
							parent
							
								
									499650de69
								
							
						
					
					
						commit
						859a3f86ca
					
				
					 4 changed files with 11 additions and 12 deletions
				
			
		|  | @ -124,7 +124,7 @@ static int acpi_pci_bind(struct acpi_device *device) | |||
| { | ||||
| 	acpi_status status; | ||||
| 	acpi_handle handle; | ||||
| 	unsigned char bus; | ||||
| 	struct pci_bus *bus; | ||||
| 	struct pci_dev *dev; | ||||
| 
 | ||||
| 	dev = acpi_get_pci_dev(device->handle); | ||||
|  | @ -157,11 +157,11 @@ static int acpi_pci_bind(struct acpi_device *device) | |||
| 		goto out; | ||||
| 
 | ||||
| 	if (dev->subordinate) | ||||
| 		bus = dev->subordinate->number; | ||||
| 		bus = dev->subordinate; | ||||
| 	else | ||||
| 		bus = dev->bus->number; | ||||
| 		bus = dev->bus; | ||||
| 
 | ||||
| 	acpi_pci_irq_add_prt(device->handle, pci_domain_nr(dev->bus), bus); | ||||
| 	acpi_pci_irq_add_prt(device->handle, bus); | ||||
| 
 | ||||
| out: | ||||
| 	pci_dev_put(dev); | ||||
|  |  | |||
|  | @ -182,7 +182,7 @@ static void do_prt_fixups(struct acpi_prt_entry *entry, | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| static int acpi_pci_irq_add_entry(acpi_handle handle, int segment, int bus, | ||||
| static int acpi_pci_irq_add_entry(acpi_handle handle, struct pci_bus *bus, | ||||
| 				  struct acpi_pci_routing_table *prt) | ||||
| { | ||||
| 	struct acpi_prt_entry *entry; | ||||
|  | @ -196,8 +196,8 @@ static int acpi_pci_irq_add_entry(acpi_handle handle, int segment, int bus, | |||
| 	 * 1=INTA, 2=INTB.  We use the PCI encoding throughout, so convert | ||||
| 	 * it here. | ||||
| 	 */ | ||||
| 	entry->id.segment = segment; | ||||
| 	entry->id.bus = bus; | ||||
| 	entry->id.segment = pci_domain_nr(bus); | ||||
| 	entry->id.bus = bus->number; | ||||
| 	entry->id.device = (prt->address >> 16) & 0xFFFF; | ||||
| 	entry->pin = prt->pin + 1; | ||||
| 
 | ||||
|  | @ -242,7 +242,7 @@ static int acpi_pci_irq_add_entry(acpi_handle handle, int segment, int bus, | |||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus) | ||||
| int acpi_pci_irq_add_prt(acpi_handle handle, struct pci_bus *bus) | ||||
| { | ||||
| 	acpi_status status; | ||||
| 	struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; | ||||
|  | @ -271,7 +271,7 @@ int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus) | |||
| 
 | ||||
| 	entry = buffer.pointer; | ||||
| 	while (entry && (entry->length > 0)) { | ||||
| 		acpi_pci_irq_add_entry(handle, segment, bus, entry); | ||||
| 		acpi_pci_irq_add_entry(handle, bus, entry); | ||||
| 		entry = (struct acpi_pci_routing_table *) | ||||
| 		    ((unsigned long)entry + entry->length); | ||||
| 	} | ||||
|  |  | |||
|  | @ -614,8 +614,7 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device) | |||
| 	 */ | ||||
| 	status = acpi_get_handle(device->handle, METHOD_NAME__PRT, &handle); | ||||
| 	if (ACPI_SUCCESS(status)) | ||||
| 		result = acpi_pci_irq_add_prt(device->handle, root->id.segment, | ||||
| 					      root->id.bus); | ||||
| 		result = acpi_pci_irq_add_prt(device->handle, root->bus); | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Scan and bind all _ADR-Based Devices | ||||
|  |  | |||
|  | @ -91,7 +91,7 @@ int acpi_pci_link_free_irq(acpi_handle handle); | |||
| 
 | ||||
| /* ACPI PCI Interrupt Routing (pci_irq.c) */ | ||||
| 
 | ||||
| int acpi_pci_irq_add_prt(acpi_handle handle, int segment, int bus); | ||||
| int acpi_pci_irq_add_prt(acpi_handle handle, struct pci_bus *bus); | ||||
| void acpi_pci_irq_del_prt(int segment, int bus); | ||||
| 
 | ||||
| /* ACPI PCI Device Binding (pci_bind.c) */ | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Alexander Chiang
						Alexander Chiang