"Rob W. van Swol" wrote:
>
> Hi,
>
> I cannot find an answer to my problem. Sound was always working ok in
> 2.2.x and 2.4.1 kernels. But now the opl3sa2 module won't load anymore.
> First I got the messages:
>
> opl3sa2: No cards found
> opl3sa2: 0 PnP card(s) found.
>
> The I added isapnp=0 to the options line in /etc/modules.conf and then I
> get:
>
> opl3sa2: Control I/O port 0x0 not free
> ^^^
> It seems that the io address is not correctly passed to the module?!
>
I got the same problem and i think there is an error in opl3sa2.c ?
I thinnk the problem is in the init_opl3sa2() function, in this line :
if(!isapnp && io == -1 ) {
If you don't use/have IsaPNP then the cfg[card] struct is not/never
initialized ... ?
I made a quick patch that correct this test ... but I think we should
find a better way to choose between initializing the cfg[card] struct
using opl3sa2_isapnp_probe or using the user suplied module parameters
... no ?
--
Jérôme Augé
echo [EMAIL PROTECTED] | tr khplmndvqyc nirtelacufj
--- opl3sa2.c.orig Wed Feb 28 14:44:03 2001
+++ opl3sa2.c Wed Feb 28 14:48:07 2001
@@ -914,13 +914,8 @@
#endif
/* If a user wants an I/O then assume they meant it */
- if(!isapnp && io == -1 ) {
- if(io == -1 || irq == -1 || dma == -1 ||
- dma2 == -1 || mss_io == -1) {
- printk(KERN_ERR
- "opl3sa2: io, mss_io, irq, dma, and dma2 must
be set\n");
- return -EINVAL;
- }
+ if((io != -1) && (irq != -1) && (dma != -1) &&
+ (dma2 != -1) && (mss_io != -1) && (mpu_io !=-1)) {
/*
* Our own config:
@@ -948,6 +943,9 @@
opl3sa2_clear_slots(&cfg[card]);
opl3sa2_clear_slots(&cfg_mss[card]);
opl3sa2_clear_slots(&cfg_mpu[card]);
+ } else {
+ printk(KERN_ERR "opl3sa2: io, mss_io, irq, dma, and dma2 must
+be set\n");
+ return -EINVAL;
}
if(!probe_opl3sa2(&cfg[card], card) ||