[alsa-devel] [PATCH] ess1688: fix OPL3 port setting

Takashi Iwai tiwai at suse.de
Thu Jan 29 16:05:14 CET 2009


At Thu, 29 Jan 2009 15:55:27 +0100,
Krzysztof Helt wrote:
> 
> On Mon, 26 Jan 2009 10:42:29 +0100
> Takashi Iwai <tiwai at suse.de> wrote:
> 
> > At Sun, 25 Jan 2009 23:05:55 +0100,
> > Rene Herman wrote:
> > > 
> > > On 25-01-09 21:10, Krzysztof Helt wrote:
> > > 
> > > > From: Krzysztof Helt <krzysztof.h1 at wp.pl>
> > > > 
> > > > The ess1688 driver uses the same port
> > > > for PCM audio (SB compatible) and OPL3
> > > > synthesis. It is wrong so allow to
> > > > choose a correct port for OPL3 synthesis.
> > > 
> > > Only a very quick reply -- generally, the low 2 SB ports are indeed OPL3 
> > > compatible (or was it just OPL2? ...)
> > 
> > All devices have separate OPL3 I/O ports.  So there must be a
> > reason...
> > 
> 
> The ESS 688 datasheet states that FM chip select signal (FMCSB) 
> is activated when one of the port ranges: 
> 388H-389H, 2x8H-2x9H, 2x0H-2x3H
> is selected. The current code may work on on the ESS 688. 
> However, it obviously does not work with the ESS 1688 (bug #282).
> The bug report states that the OPL3 synthesis works with the
> OSS driver which chooses the 0x388 port for the OPL3.
> 
> My patch adds a new port setting so it is still possible to set
> the fm_port value the same as the port value. No change here.
> However, it allows setting different values to the port and the
> fm_port setting if needed.

Fair enough.  However...

> Takashi, please consider applying my patch to the alsa tree.

One thing I noticed in your patch is that opl3 won't be created after
your change as default, as fmport=SNDRV_AUTO_PORT.  This is a
regression.  The code should be like below instead:

	if (fm_port[n] == SNDRV_AUTO_PORT)
		fm_port[n] = chip->port; /* share the same port */

	if (fm_port[n] > 0) {
		if (snd_opl3_create(card, fm_port[n], fm_port[n] + 2,
                              OPL3_HW_OPL3, 0, &opl3) < 0)
			      ...

Could you fix and repost?


thanks,

Takashi


More information about the Alsa-devel mailing list