HomeFreeBSD

Fix ig4 operation for certain machines

Description

Fix ig4 operation for certain machines

Some machine BIOSes use the I2C bus and leave it in a state that causes
interrupts to not work properly due to a pending interrupt having been
latched.

Refactor the code a bit to clear pending interrupts when I2C is enabled.
This fixes the primary problem.

Also fix a possible race condition in the interrupt handler where the
interrupt was being cleared after reading the status instead of before.

Reported by: pfg
Reviewed by: jhb
Approved by: jhb
Obtained from: DragonFly BSD
Differential Revision: https://reviews.freebsd.org/D6586

Details

Provenance
gremboAuthored on
Reviewer
jhb
Differential Revision
D6586: Fix ig4 operation for certain machines (from DragonFly)
Parents
rS300989: hyperv/et: Make sure only one event timer will be registered
Branches
Unknown
Tags
Unknown