diff options
author | François Revol <revol@free.fr> | 2010-11-09 11:47:46 +0100 |
---|---|---|
committer | malc <av1474@comtv.ru> | 2010-11-09 16:51:12 +0300 |
commit | af93485cde810f3c2f488533e0b60c99eae5d01d (patch) | |
tree | 9ec8a0da08d5c33c2f4c367e63e5ab4fb7a65895 /hw/intel-hda.c | |
parent | 129dcd2c66c3f693425f8a50c553146b8f6f4fd6 (diff) |
intel-hda: Honor WAKEEN bits.
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 <revol@free.fr>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
Diffstat (limited to 'hw/intel-hda.c')
-rw-r--r-- | 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 78c32da473..2c1ef12491 100644 --- a/hw/intel-hda.c +++ b/hw/intel-hda.c @@ -246,7 +246,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); } @@ -628,6 +628,7 @@ static const struct IntelHDAReg regtab[] = { [ ICH6_REG_WAKEEN ] = { .name = "WAKEEN", .size = 2, + .wmask = 0x3fff, .offset = offsetof(IntelHDAState, wake_en), }, [ ICH6_REG_STATESTS ] = { |