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:
Sebastian Sumpf 2012-11-22 15:18:17 +01:00 committed by Norman Feske
parent 5f81705488
commit b902d5ed72
1 changed files with 6 additions and 1 deletions

View File

@ -51,9 +51,14 @@ void Genode::Platform::setup_irq_mode(unsigned irq_number, unsigned trigger,
{
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
* 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;
mode = (trigger == Irq_session::TRIGGER_LEVEL) ||