This is a list of things that need to be done to get this driver out of the staging directory. - Implement the gasket framework's functionality through UIO instead of introducing a new user-space drivers framework that is quite similar. UIO provides the necessary bits to implement user-space drivers. Meanwhile the gasket APIs adds some extra conveniences like PCI BAR mapping, and MSI interrupts. Add these features to the UIO subsystem, then re-implement the Apex driver as a basic UIO driver instead (include/linux/uio_driver.h) - Document sysfs files with Documentation/ABI/ entries. - Use misc interface instead of major number for driver version description. - Add descriptions of module_param's - apex_get_status() should actually check status. - "drivers" should never be dealing with "raw" sysfs calls or mess around with kobjects at all. The driver core should handle all of this for you automaically. There should not be a need for raw attribute macros.