I am writing a device driver for the MosChip 7703 USB-serial converter. In short, I am looking for someone to do a rough look over the code and give suggestions. I am pretty new at this stuff and was hoping to get some first help somewhere before trying to post onto the Linux Kernel Mailing List. My primary references are Linux Device Drivers (3rd edition) and the kernel sources (for both API and examples).
The latest version as of this post can be found here:
Currently, it has the following issues:
-Locking is faulty. I does have tendency to freeze, so I am likely doing something fundamentally wrong somewhere. Should I even use semaphores? LDD recommends several different types of locks, I figured this was as good as the others to start with.
-The only program I've used to test with is screen (ie "screen /dev/ttyUSB0 9600")
-Tested with both MosChip and non-MosChip devices at the other end. Interestingly enough
-Known issue that formatting does not entirely match kernel standards, I'll fix this later as I eliminate the core issues. Its a lot closer than the original driver was anyway
-Some features such as high speed rates and ioctls are intentionally not implemented since the smaller feature set is unstable
-Should more or less work/compile between kernels 2.6.18 and 2.6.28, inclusive
-There isn't really installation support yet (ie make install)
Any help is really appreciated. Thanks!