OSDN Git Service

ALSA: hda - Fix CORB reset to follow specification
authorDavid Henningsson <david.henningsson@canonical.com>
Fri, 28 Feb 2014 06:56:58 +0000 (07:56 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 28 Feb 2014 13:03:30 +0000 (14:03 +0100)
commitca460f86521ed515d17dd1314f7b95183866f681
treeb2a48c6e5b97602edbb59f9b717801c9cd89a26a
parentd604b3990884062873e3bef09ef5e89857c409c3
ALSA: hda - Fix CORB reset to follow specification

According to the HDA spec, we must write 1 to bit 15 on a CORBRP
reset, read back 1, then write 0, then read back 0. This must be
done while the DMA is not running.

We accidentaly ended up writing back the 0 by using a writel
instead of a writew to CORBWP.

This caused occasional controller failure on Bay Trail hardware.

[replaced error messages with dev_err() by tiwai]

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_intel.c