PCI/MSI: Add weak pcibios_msi_controller()
Add pcibios_msi_controller() to get the msi_controller associated with a PCI device. This is to allow arches to store the msi_controller in the arch-specific PCI sysdata. [bhelgaas: changelog, take pci_dev instead of pci_bus] Suggested-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Yijing Wang <wangyijing@huawei.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
		
							parent
							
								
									c2791b8069
								
							
						
					
					
						commit
						262a2baf9e
					
				| @ -30,9 +30,24 @@ int pci_msi_ignore_mask; | ||||
| 
 | ||||
| /* Arch hooks */ | ||||
| 
 | ||||
| struct msi_controller * __weak pcibios_msi_controller(struct pci_dev *dev) | ||||
| { | ||||
| 	return NULL; | ||||
| } | ||||
| 
 | ||||
| static struct msi_controller *pci_msi_controller(struct pci_dev *dev) | ||||
| { | ||||
| 	struct msi_controller *msi_ctrl = dev->bus->msi; | ||||
| 
 | ||||
| 	if (msi_ctrl) | ||||
| 		return msi_ctrl; | ||||
| 
 | ||||
| 	return pcibios_msi_controller(dev); | ||||
| } | ||||
| 
 | ||||
| int __weak arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc) | ||||
| { | ||||
| 	struct msi_controller *chip = dev->bus->msi; | ||||
| 	struct msi_controller *chip = pci_msi_controller(dev); | ||||
| 	int err; | ||||
| 
 | ||||
| 	if (!chip || !chip->setup_irq) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user