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>
This commit is contained in:
parent
129dcd2c66
commit
af93485cde
@ -246,7 +246,7 @@ static void intel_hda_update_int_sts(IntelHDAState *d)
|
|||||||
if (d->rirb_sts & ICH6_RBSTS_OVERRUN) {
|
if (d->rirb_sts & ICH6_RBSTS_OVERRUN) {
|
||||||
sts |= (1 << 30);
|
sts |= (1 << 30);
|
||||||
}
|
}
|
||||||
if (d->state_sts) {
|
if (d->state_sts & d->wake_en) {
|
||||||
sts |= (1 << 30);
|
sts |= (1 << 30);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,6 +628,7 @@ static const struct IntelHDAReg regtab[] = {
|
|||||||
[ ICH6_REG_WAKEEN ] = {
|
[ ICH6_REG_WAKEEN ] = {
|
||||||
.name = "WAKEEN",
|
.name = "WAKEEN",
|
||||||
.size = 2,
|
.size = 2,
|
||||||
|
.wmask = 0x3fff,
|
||||||
.offset = offsetof(IntelHDAState, wake_en),
|
.offset = offsetof(IntelHDAState, wake_en),
|
||||||
},
|
},
|
||||||
[ ICH6_REG_STATESTS ] = {
|
[ ICH6_REG_STATESTS ] = {
|
||||||
|
Loading…
Reference in New Issue
Block a user