diff options
author | cg <cg@FreeBSD.org> | 2001-03-24 20:36:59 +0000 |
---|---|---|
committer | cg <cg@FreeBSD.org> | 2001-03-24 20:36:59 +0000 |
commit | 250b6a9c42af07b528f4634a8bfcc4aadb3be389 (patch) | |
tree | f97cf4665fc8f9311ada04b7b8902b9233f4805e | |
parent | a4f2bb3c631b8e306361f9c285f09b97d5b215ac (diff) | |
download | FreeBSD-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.c | 5 |
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); |