On 09/14/2007 04:35 PM, Krzysztof Helt wrote:
This patch adds additional check for OPL3 device. I found that PNP region returned by the card is 0x380 - 0x38f but the OPL3 device is located at 0x388 (standard FM device address). The driver checks start of the range (0x380) which is incorrect.
The same problem appears on two cards I have with Opti chipset: opti931 and opti933. If someone can test if the opti92x PnP has the same problem I would be grateful.
Yes, same for OPT0924/OPT0925 (928, 929 and 930 are Non-PnP).
I'd rather simply adjust the resource in snd_card_opti9xx_pnp though -- that way, you don't go second guessing a user-specified value.
Untested, but looks as though this should do it:
Rene.
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c index 60c120f..8bda47a 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,
#ifdef OPTi93X port = pnp_port_start(pdev, 0) - 4; - fm_port = pnp_port_start(pdev, 1); + fm_port = pnp_port_start(pdev, 1) + 8; #else if (pid->driver_data != 0x0924) port = pnp_port_start(pdev, 1); - fm_port = pnp_port_start(pdev, 2); + fm_port = pnp_port_start(pdev, 2) + 8; #endif /* OPTi93X */ irq = pnp_irq(pdev, 0); dma1 = pnp_dma(pdev, 0);