Hi,
this driver in general is quite clean as well; I have only one
suggestion for improvement. Right now you use a semaphore for locking,
while all you really use it for is mutex semantics, I think it would be
a good idea to convert the driver to use the actual mutex primitive;
this will buy you a lot of extra automatic checking for bugs...
Greetings,
Arjan van de Ven
-