From 2e6c61248c76d3f0c511658b9f34660d034703a4 Mon Sep 17 00:00:00 2001
HDA: Honor WAKEEN bits when deciding to raise an interrupt on codec status
change.
This prevents an interrupt storm with the Haiku HDA driver which does not
handle codec status changes in the irq handler.
Signed-off-by: François Revol re...@free.fr
---
hw/intel-hda.c |3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/hw/intel-hda.c b/hw/intel-hda.c
index ccb059d..f1bd203 100644
--- a/hw/intel-hda.c
+++ b/hw/intel-hda.c
@@ -235,7 +235,7 @@ static void intel_hda_update_int_sts(IntelHDAState *d)
if (d-rirb_sts ICH6_RBSTS_OVERRUN) {
sts |= (1 30);
}
-if (d-state_sts) {
+if (d-state_sts d-wake_en) {
sts |= (1 30);
}
@@ -617,6 +617,7 @@ static const struct IntelHDAReg regtab[] = {
[ ICH6_REG_WAKEEN ] = {
.name = WAKEEN,
.size = 2,
+.wmask= 0x3fff,
.offset = offsetof(IntelHDAState, wake_en),
},
[ ICH6_REG_STATESTS ] = {
--
1.7.2.2