The opl3sa2 driver has an isapnp option but if inserted with isapnp=1 it fails to activate the card and subsequently does not find it. If I activate the card by writing to /proc/isapnp cat > /proc/isapnp <<EOF card 0 YMH0800 dev 0 YMH0021 port 0 0x220 port 1 0x530 port 2 0x388 port 3 0x330 port 4 0x370 irq 0 5 dma 0 0 dma 1 1 activate dev 0 YMH0022 port 0 0x201 activate EOF and then insert the module with isapnp=1 it works fine.
*** Bug 49948 has been marked as a duplicate of this bug. ***
This defect is considered SHOULD-FIX for the Fairfax release.
How is the card identified BEFORE you set values into it ?
You mean the content of /proc/isapnp ?
Created attachment 28695 [details] /proc/isapnp befor setting up the card
Still broken in 7.3.
I debugged this problem: The cause is that the card requires dma=0 to work but isapnp.c excludes "0" for dma values. I have sent a proposed patch to the kernel mailing list.
Created attachment 59528 [details] patch to opl3sa2.c
This is the patch which fixes the problem (it has been discussed on the kernel/sound mailing list).
Added for the next errata build
I had some further discussions with the maintainer of the opl3sa2 driver and we decided that a better fix is to add this as a quirk to the isapnp driver. I'll attach the two necessary patches. Sorry...
Created attachment 60004 [details] patch which makes the use of dma channel 0 configurable
Created attachment 60005 [details] patch which fixes the isapnp activation of newer opl3sa4 cards which only accept dma channel 0