Skip to content

MCEOI is commented out, so the media-change FIQ can never be acknowledged #5

Description

@ajfa

In WindCore/windermere.cpp the interrupt end-of-interrupt register offsets are
present but commented out:

// BLEOI = 0x410,
// MCEOI = 0x414,

MCEOI is the EOI for the media-change FIQ. Because the register is not
decoded, a write to it does nothing and pendingInterrupts keeps the FIQ bit
set, so the interrupt can never be acknowledged.

Symptom

With a PC card present and a media-change event raised, the media-change FIQ
re-fires continuously. Measured on s5mx_uk16_v260.rom: 292 repetitions of the
handler per boot. After decoding MCEOI (clearing the corresponding bit in
pendingInterrupts) the same boot shows the handler running exactly once.

BLEOI (backlight) is commented out alongside it and looks like the same
oversight, although it was not exercised by our tests — we only confirmed the
MCEOI behaviour.


Investigation and testing by @ajfa, with Claude (Anthropic) assisting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions