aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2007-09-17 10:44:06 -0400
committerJaroslav Kysela <perex@perex.cz>2007-10-16 10:50:49 -0400
commit1ea73412b27ddd88decbdafb83bb2bfc288fe56c (patch)
treee0d52df51e775cddc5acf495e30af72b9be9a94a
parentadf1295bf4edf91ed1780a43c82b352aeec1edbd (diff)
[ALSA] opti9xx: adjust OPL3 FM resource value
The OPTi ISA-PnP chips advertise their OPL4 base at 0x380 (to 0x3f0) through pnp and put their on-chip OPL3 at +8. The driver assumes the provided value is the ALBase (OPL3 address) though and checks for an OPL4 at -8, which means that simply adding 8 to the pnp provides value works to fix detection of both OPL3 and OPL4. Problem spotted on 931 and 933 by Krzysztof Helt and confirmed on 924 and 925 (together all OPTi ISA-PnP chips) by me. Signed-off-by; Rene Herman <rene.herman@gmail.com> Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/isa/opti9xx/opti92x-ad1848.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
index 049d479ce2b..fb1d0704f2f 100644
--- a/sound/isa/opti9xx/opti92x-ad1848.c
+++ b/sound/isa/opti9xx/opti92x-ad1848.c
@@ -1732,11 +1732,11 @@ static int __devinit snd_card_opti9xx_pnp(struct snd_opti9xx *chip,
1732 1732
1733#ifdef OPTi93X 1733#ifdef OPTi93X
1734 port = pnp_port_start(pdev, 0) - 4; 1734 port = pnp_port_start(pdev, 0) - 4;
1735 fm_port = pnp_port_start(pdev, 1); 1735 fm_port = pnp_port_start(pdev, 1) + 8;
1736#else 1736#else
1737 if (pid->driver_data != 0x0924) 1737 if (pid->driver_data != 0x0924)
1738 port = pnp_port_start(pdev, 1); 1738 port = pnp_port_start(pdev, 1);
1739 fm_port = pnp_port_start(pdev, 2); 1739 fm_port = pnp_port_start(pdev, 2) + 8;
1740#endif /* OPTi93X */ 1740#endif /* OPTi93X */
1741 irq = pnp_irq(pdev, 0); 1741 irq = pnp_irq(pdev, 0);
1742 dma1 = pnp_dma(pdev, 0); 1742 dma1 = pnp_dma(pdev, 0);