Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jul 2005 10:10:18 +0900
From:      Pyun YongHyeon <pyunyh@gmail.com>
To:        Muzaffar Ariff <mus.bsd@gmail.com>
Cc:        freebsd-multimedia@freebsd.org
Subject:   Re: ESS Maestro3 no sound
Message-ID:  <20050713011018.GB4479@rndsoft.co.kr>
In-Reply-To: <8eb2b8105071217477e240667@mail.gmail.com>
References:  <8eb2b81050628200659d338ab@mail.gmail.com> <20050629043027.GB8832@rndsoft.co.kr> <42C2B94F.2010708@samsco.org> <20050701014258.GE17058@rndsoft.co.kr> <8eb2b810507110203229b46b@mail.gmail.com> <20050711092238.GC858@rndsoft.co.kr> <8eb2b8105071217477e240667@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--5mCyUwZo2JvN/JJP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wed, Jul 13, 2005 at 08:47:00AM +0800, Muzaffar Ariff wrote:
 > > Hmm, I'm afraid you loaded old module again. Please let me know which
 > > FreeBSD version you used. I can make a patch for the specific FreeBSD
 > > version.
 > 
 > I'm using FreeBSD 5.3-release. Are you saying that I did the patching
 > and loading of the patch correctly, its just you gave the wrong one?
 > (need to know either my methods were right)
 > 
I can't sure but your dmeseg output says it was not patched.
Try attached patch on your system.

1. Save attached patch file to your system(e.g. /tmp).
2. Patch and build.
        #cd /usr/src
        #patch -p0 < /path/to/patchfile
        #cd /usr/src/sys/modules/sound/driver/maestro3
        #make
3. Load built module and experiment it.
        #kldload ./snd_maestro3.ko

4. It the driver works then install it.
        #make install

Please let me know how it goes on your system.

-- 
Regards,
Pyun YongHyeon

--5mCyUwZo2JvN/JJP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="maestro3.resource.diff2"

--- sys/dev/sound/pci/maestro3.c.orig	Fri Jul 16 12:59:27 2004
+++ sys/dev/sound/pci/maestro3.c	Wed Jul 13 10:02:46 2005
@@ -1105,19 +1105,21 @@
 		}
 	}
 
+	pci_enable_busmaster(dev);
 	data = pci_read_config(dev, PCIR_COMMAND, 2);
-	data |= (PCIM_CMD_PORTEN | PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN);
+	data |= (PCIM_CMD_PORTEN | PCIM_CMD_MEMEN);
 	pci_write_config(dev, PCIR_COMMAND, data, 2);
 
 	sc->regid = PCIR_BAR(0);
-	sc->regtype = SYS_RES_MEMORY;
+	data = pci_read_config(dev, PCIR_COMMAND, 2);
+	device_printf(dev,"PCIR_COMMAND = 0x%x\n", data);
+	sc->regtype = SYS_RES_IOPORT;
+	if ((data & PCIM_CMD_PORTEN) == 0) {
+		sc->regtype = SYS_RES_MEMORY;
+		device_printf(dev,"using memory mapped I/O\n");
+	}
 	sc->reg = bus_alloc_resource_any(dev, sc->regtype, &sc->regid,
 					 RF_ACTIVE);
-	if (!sc->reg) {
-		sc->regtype = SYS_RES_IOPORT;
-		sc->reg = bus_alloc_resource_any(dev, sc->regtype, &sc->regid,
-						 RF_ACTIVE);
-	}
 	if (!sc->reg) {
 		device_printf(dev, "unable to allocate register space\n");
 		goto bad;

--5mCyUwZo2JvN/JJP--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050713011018.GB4479>