⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acpi.c

📁 linux-2.6.15.6
💻 C
字号:
#include <linux/pci.h>#include <linux/acpi.h>#include <linux/init.h>#include <linux/irq.h>#include <asm/numa.h>#include "pci.h"struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum){	struct pci_bus *bus;	if (domain != 0) {		printk(KERN_WARNING "PCI: Multiple domains not supported\n");		return NULL;	}	bus = pcibios_scan_root(busnum);#ifdef CONFIG_ACPI_NUMA	if (bus != NULL) {		int pxm = acpi_get_pxm(device->handle);		if (pxm >= 0) {			bus->sysdata = (void *)(unsigned long)pxm_to_node(pxm);			printk("bus %d -> pxm %d -> node %ld\n",				busnum, pxm, (long)(bus->sysdata));		}	}#endif		return bus;}extern int pci_routeirq;static int __init pci_acpi_init(void){	struct pci_dev *dev = NULL;	if (pcibios_scanned)		return 0;	if (acpi_noirq)		return 0;	printk(KERN_INFO "PCI: Using ACPI for IRQ routing\n");	acpi_irq_penalty_init();	pcibios_scanned++;	pcibios_enable_irq = acpi_pci_irq_enable;	pcibios_disable_irq = acpi_pci_irq_disable;	if (pci_routeirq) {		/*		 * PCI IRQ routing is set up by pci_enable_device(), but we		 * also do it here in case there are still broken drivers that		 * don't use pci_enable_device().		 */		printk(KERN_INFO "PCI: Routing PCI interrupts for all devices because \"pci=routeirq\" specified\n");		while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL)			acpi_pci_irq_enable(dev);	} else		printk(KERN_INFO "PCI: If a device doesn't work, try \"pci=routeirq\".  If it helps, post a report\n");#ifdef CONFIG_X86_IO_APIC	if (acpi_ioapic)		print_IO_APIC();#endif	return 0;}subsys_initcall(pci_acpi_init);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -