Well, it looks like I forgot to post announcements for 3.0.2
and 3.0.3. So this really covers all the changes from 3.0.1
up to the new 3.0.4 release...
There are lots of internal structural changes that (should) have no user-visible consequences. Many of these were to make the core components more portable (and a perusal of the #ifdef's will show specifically why that was done). As for visible changes... there are the usual assortment of bug fixes. Various problems that appeared in 3.0.0 or 3.0.1 should now be fixed: probably the most important ones were in the memory window allocation logic. A few Cardbus problems were also fixed. The new code should also build properly against all the latest kernels (including both the stable 2.0.* series and the development 2.1.* series).
As for improvements in functionality... 3.0.4 implements a /proc/bus/pccard tree for 2.1.105 and later kernels. Much of the information can only be interpreted with datasheets in hand, but it should still be a useful debugging tool. The cardctl command has a new "ident" subfunction, which should reduce the need to go poking through kernel message logs.