summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcg <cg@FreeBSD.org>2001-03-24 20:36:59 +0000
committercg <cg@FreeBSD.org>2001-03-24 20:36:59 +0000
commit250b6a9c42af07b528f4634a8bfcc4aadb3be389 (patch)
treef97cf4665fc8f9311ada04b7b8902b9233f4805e
parenta4f2bb3c631b8e306361f9c285f09b97d5b215ac (diff)
downloadFreeBSD-src-250b6a9c42af07b528f4634a8bfcc4aadb3be389.zip
FreeBSD-src-250b6a9c42af07b528f4634a8bfcc4aadb3be389.tar.gz
when writing to one of the setup registers, a 32-bit write is required.
this apparently fixes problems initialising certain es1371/es1373/ct5880 revisions. Confirmed working by: Richard J Kuhns <rjk@grauel.com> PR: i386/25944
-rw-r--r--sys/dev/sound/pci/es137x.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/sound/pci/es137x.c b/sys/dev/sound/pci/es137x.c
index b7aea08..6ea6507 100644
--- a/sys/dev/sound/pci/es137x.c
+++ b/sys/dev/sound/pci/es137x.c
@@ -487,8 +487,9 @@ es1371_init(struct es_info *es, device_t dev)
es->sctrl = 0;
/* initialize the chips */
if (revid == 7 || revid >= 9 || (devid == ES1371_PCI_ID3 && revid == 2)) {
-#define ES1371_BINTSUMM_OFF 0x07
- bus_space_write_4(es->st, es->sh, ES1371_BINTSUMM_OFF, 0x20);
+#define ES1371_BINTSUMM_OFF 0x04
+ bus_space_write_4(es->st, es->sh, ES1371_BINTSUMM_OFF, 0x20000000);
+ DELAY(20000);
if (debug > 0) printf("es_init rev == 7 || rev >= 9\n");
} else { /* pre ac97 2.1 card */
bus_space_write_4(es->st, es->sh, ES1370_REG_CONTROL, es->ctrl);
OpenPOWER on IntegriCloud