FOC: Change interrupt mode heuristic
Don't touch interrupts modes for IRQs below 16 if not explicitly requested. Fixes issue #512
This commit is contained in:
parent
5f81705488
commit
b902d5ed72
|
@ -51,9 +51,14 @@ void Genode::Platform::setup_irq_mode(unsigned irq_number, unsigned trigger,
|
||||||
{
|
{
|
||||||
using namespace Fiasco;
|
using namespace Fiasco;
|
||||||
|
|
||||||
|
/* don't touch anything below IRQ 16 in the default case */
|
||||||
|
if (irq_number < 16 && trigger == Irq_session::TRIGGER_UNCHANGED &&
|
||||||
|
polarity == Irq_session::TRIGGER_UNCHANGED)
|
||||||
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Translate ACPI interrupt mode (trigger/polarity) to Fiasco APIC
|
* Translate ACPI interrupt mode (trigger/polarity) to Fiasco APIC
|
||||||
* values. Default is edge/high for IRQs < 16 and level low for IRQs > 16
|
* values. Default is level low for IRQs > 15
|
||||||
*/
|
*/
|
||||||
l4_umword_t mode;
|
l4_umword_t mode;
|
||||||
mode = (trigger == Irq_session::TRIGGER_LEVEL) ||
|
mode = (trigger == Irq_session::TRIGGER_LEVEL) ||
|
||||||
|
|
Loading…
Reference in New Issue
Block a user