2018-05-06 21:58:06 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2016-05-07 14:46:31 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2007-2009 coresystems GmbH
|
|
|
|
* Copyright (C) 2013 Google Inc.
|
|
|
|
* Copyright (C) 2016 Bin Meng <bmeng.cn@gmail.com>
|
|
|
|
*
|
|
|
|
* Modified from coreboot src/soc/intel/baytrail/acpi/irqroute.asl
|
|
|
|
*/
|
|
|
|
|
|
|
|
Name(\PICM, 0)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* The _PIC method is called by the OS to choose between interrupt
|
|
|
|
* routing via the i8259 interrupt controller or the APIC.
|
|
|
|
*
|
|
|
|
* _PIC is called with a parameter of 0 for i8259 configuration and
|
|
|
|
* with a parameter of 1 for Local APIC/IOAPIC configuration.
|
|
|
|
*/
|
|
|
|
Method(\_PIC, 1)
|
|
|
|
{
|
|
|
|
/* Remember the OS' IRQ routing choice */
|
|
|
|
Store(Arg0, PICM)
|
|
|
|
}
|
|
|
|
|
|
|
|
/* PCI interrupt routing */
|
|
|
|
Method(_PRT) {
|
|
|
|
If (PICM) {
|
|
|
|
Return (Package() {
|
|
|
|
#undef PIC_MODE
|
|
|
|
#include "irq_helper.h"
|
|
|
|
PCI_DEV_PIRQ_ROUTES
|
|
|
|
})
|
|
|
|
} Else {
|
|
|
|
Return (Package() {
|
|
|
|
#define PIC_MODE
|
|
|
|
#include "irq_helper.h"
|
|
|
|
PCI_DEV_PIRQ_ROUTES
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/* PCIe downstream ports interrupt routing */
|
|
|
|
PCIE_BRIDGE_IRQ_ROUTES
|
|
|
|
#undef PIC_MODE
|
|
|
|
#include "irq_helper.h"
|
|
|
|
PCIE_BRIDGE_IRQ_ROUTES
|