Without an abstraction layer padding things, you can compare the "shape" of the API desired by the driver with the "shape" of the API as given by the kernel, and see if they have a good "fit" (picture puzzle pieces trying to fit together). Places where both sides are not fitting together very well point to things which need to be changed either in the kernel or in the driver (or in both).
With an abstraction layer, the temptation is to just add more padding instead of adjusting both sides of the API. Given enough time, you will end up buried in foam.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds