Well, it's an OSS4 support forum, and you seem to have a problem with something else per lsmod (I don't see any OSS4 or ALSA modules... dsp issue I guess?). Anyhow, did you open the device in blocking or nonblocking mode? I guess the latter? If so, it's possible the write error is just EAGAIN (In which case either you have a different issue, or you'll need to make a buffer there, etc.). You should check the errno returned by write().