These releases sort of fit together, I guess, because 3.1.5 and 3.1.6 fixed a couple bugs that snuck in around 3.1.4, and now I think 3.1.6 is reasonably solid.
I've rewritten some of the code for selecting IO and memory windows for PCMCIA devices, but I'm not sure if the changes are all for the better. In theory, the new code should do a better job of allocating IO ports in cases where cards have strict requirements about where they can be mapped. However, this also means that the new code may map cards at odd locations, like ports above 0x1000, and that doesn't always work. I'm not sure about the best solution to this problem.
There have been a few tweaks to the xirc2ps_cs driver. Cards with 100baseT transceivers should no longer lock up the system for several seconds while they autonegotiate the link speed. And I also shut off the warnings about dropped rx packets. On a 100baseT link, these cards will always drop packets, so it is pointless to log it.
Use of PCI interrupts with CardBus bridges continues to be a sore point. Some systems require it, at least for CardBus cards; however, for various reasons, it has not been safe for the PCMCIA layer to count on PCI interrupts working. The kernel cannot always determine interrupt routing for CardBus bridges. My PnP code can sometimes help, and later 2.3 kernels also do a better job. But my PnP code causes problems of its own on some platforms, and on other platforms, all the tricks for figuring out PCI interrupt assignments come up empty. In other cases, we know the routing, but enabling PCI interrupts causes system lockups, probably due to conflicts with other PCI device subsystems.
Integration of PCMCIA into the 2.3 kernel tree is an ongoing project, and there is still quite a lot to be done. Besides merging the remaining client drivers, I need to work on the configuration scripts for the standalone package so that it will mesh better with a PCMCIA kernel.
[ Edit This Forum ]