I came to the #oss channel on Freenode asking for help yesterday and was directed to this mailing list by the people there, as my problem appears to be caused by a bug in the hdaudio driver.
Anyway, when OSS starts up on my laptop, I get the following message on the console: "oss_hdaudio: HDA codec 0x15 433155 not known yet". Then, when I try to listen to some music, it works fine through the internal speakers, but as soon as I plug external speakers into the headphone jack, the sound disappears. I tried playing around with the mixer controls, but it didn't accomplish anything (I did, however, manage to get OSS to output sound through the microphone jack, but the quality was unsatisfactory - the sound was heavily distorted, and there was just one channel).
When I came to #oss, I was asked to post the output of the ossmix command, so here it is, in case it might be of some use to the developers, as well: http://pastebin.com/G1DN4g1S
The internal speakers only work when there isn't anything plugged into the headphone jack and codec1.jack.black.mode2 is set to "input". As soon as I set it to "line2-mix", the internal speakers stop working. However, when I set it to "line2-mix" and the external speakers are plugged into the headphone jack, I hear a popping noise (but no other sound) coming out of them - though that only happens if codec1.jack.black.mute.outmix is turned off.
I used to have a similar problem with ALSA, but after spending months searching for a solution, I found one that actually worked. All I had to do was add "position_fix=1" to snd-hda-intel's options, and it worked like a charm. I can't help but wonder if there is a similar option hidden somewhere in the code of OSS's hdaudio driver.
Having read Hannu's blog, I know how much he dislikes having to deal with problems like this one, so I'm hoping one of the other developers can help me.