ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set
Remove PCI dependent code out of iort.c when CONFIG_PCI is not defined. A quick search reveals the following functions: 1. pci_request_acs() 2. pci_domain_nr() 3. pci_is_root_bus() 4. to_pci_dev() Both pci_domain_nr() and pci_is_root_bus() are defined in linux/pci.h. pci_domain_nr() is a stub function when CONFIG_PCI is not set and pci_is_root_bus() just returns a reference to a structure member which is still valid without CONFIG_PCI set. to_pci_dev() is a macro that expands to container_of. pci_request_acs() is the only code that gets pulled in from drivers/pci/*.c Signed-off-by: Sinan Kaya <okaya@kernel.org> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
							parent
							
								
									52146173a0
								
							
						
					
					
						commit
						43554cebba
					
				| @ -1435,8 +1435,14 @@ dev_put: | ||||
| 	return ret; | ||||
| } | ||||
| 
 | ||||
| static bool __init iort_enable_acs(struct acpi_iort_node *iort_node) | ||||
| #ifdef CONFIG_PCI | ||||
| static void __init iort_enable_acs(struct acpi_iort_node *iort_node) | ||||
| { | ||||
| 	static bool acs_enabled __initdata; | ||||
| 
 | ||||
| 	if (acs_enabled) | ||||
| 		return; | ||||
| 
 | ||||
| 	if (iort_node->type == ACPI_IORT_NODE_PCI_ROOT_COMPLEX) { | ||||
| 		struct acpi_iort_node *parent; | ||||
| 		struct acpi_iort_id_mapping *map; | ||||
| @ -1458,13 +1464,15 @@ static bool __init iort_enable_acs(struct acpi_iort_node *iort_node) | ||||
| 			if ((parent->type == ACPI_IORT_NODE_SMMU) || | ||||
| 				(parent->type == ACPI_IORT_NODE_SMMU_V3)) { | ||||
| 				pci_request_acs(); | ||||
| 				return true; | ||||
| 				acs_enabled = true; | ||||
| 				return; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return false; | ||||
| } | ||||
| #else | ||||
| static inline void iort_enable_acs(struct acpi_iort_node *iort_node) { } | ||||
| #endif | ||||
| 
 | ||||
| static void __init iort_init_platform_devices(void) | ||||
| { | ||||
| @ -1472,7 +1480,6 @@ static void __init iort_init_platform_devices(void) | ||||
| 	struct acpi_table_iort *iort; | ||||
| 	struct fwnode_handle *fwnode; | ||||
| 	int i, ret; | ||||
| 	bool acs_enabled = false; | ||||
| 	const struct iort_dev_config *ops; | ||||
| 
 | ||||
| 	/*
 | ||||
| @ -1493,8 +1500,7 @@ static void __init iort_init_platform_devices(void) | ||||
| 			return; | ||||
| 		} | ||||
| 
 | ||||
| 		if (!acs_enabled) | ||||
| 			acs_enabled = iort_enable_acs(iort_node); | ||||
| 		iort_enable_acs(iort_node); | ||||
| 
 | ||||
| 		ops = iort_get_dev_cfg(iort_node); | ||||
| 		if (ops) { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user