Date: Tue, 16 Nov 2004 01:36:28 GMT From: Andriy <freebsd_my@ua.fm> To: freebsd-gnats-submit@FreeBSD.org Subject: i386/73987: Nfirce2 MB sound problem Message-ID: <200411160136.iAG1aSUT019832@www.freebsd.org> Resent-Message-ID: <200411160140.iAG1eRpg090825@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 73987 >Category: i386 >Synopsis: Nfirce2 MB sound problem >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-i386 >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Nov 16 01:40:26 GMT 2004 >Closed-Date: >Last-Modified: >Originator: Andriy >Release: 5.3 >Organization: Colir-Pro >Environment: FreeBSD home.color-pro.in 5.3-RELEASE FreeBSD 5.3-RELEASE #0: Sun Nov 14 02:19:12 EET 2004 root@home.color-pro.in:/usr/src/sys/i386/compile/my i386 >Description: sound card didn`t work because a bug in ich code! >How-To-Repeat: gm, just try to cat /dev/sndstat >Fix: static int ich_resetchan(struct sc_info *sc, int num) { int i, cr, regbase; if (num == 0) regbase = ICH_REG_PO_BASE; else if (num == 1) regbase = ICH_REG_PI_BASE; else if (num == 2) regbase = ICH_REG_MC_BASE; else return ENXIO; ich_wr(sc, regbase + ICH_REG_X_CR, 0, 1); DELAY(1000); //edited by me -was 100 ich_wr(sc, regbase + ICH_REG_X_CR, ICH_X_CR_RR, 1); for (i = 0; i < ICH_TIMEOUT; i++) { cr = ich_rd(sc, regbase + ICH_REG_X_CR, 1); if (cr == 0) return 0; } device_printf(sc->dev, "cannot reset channel %d\n", num); return 0; ///added by me // return ENXIO; } >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200411160136.iAG1aSUT019832>