I have an ISA pnp card (opti931) which stopped working when I installed kernel 2.6 and the problem is as follows:
The kernel function that sets and activates the card is isapnp_set_resources (in drivers/pnp/isapnp/core.c) and for each resource, it is checking that the correct flag is set before writing to the port (i.e. IORESOURCE_IO, IORESOURCE_IRQ, IORESOURCE_DMA, IORESOURCE_MEM) however, these flags are never being set because the driver code is just using pnp_init_resource_table followed by pnp_resource_change for each setting and so the configuration is never written to the card. (I believe that the equivalent code in 2.4 just checked for flags != 0).
As I see it, there are four options:
1) Manually set the flags in the driver code (this is what I have done temporarily to get the card working).
2) Change the test in isapnp_set_resources to
((flags & IORESOURCE_xx) | (~flags & IORESOURCE_AUTO))
as anything that has been auto-allocated should have the appropriate flag set.
3) Change pnp_resource_change to clear IORESOURCE_UNSET and change the test in isapnp_set_resources to
(~flags & IORESOURCE_UNSET)
4) In the driver, use something else apart from pnp_resource_change (i.e. is there now a preferred method for filling in the settings).
I prefer 3) or else 2) but are there any reasons not to do this? Any advice welcome.
Michael.
------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel