Hello.  I've seen this issue and I believe I understand the problem, 
though I don't have
a driver fix at this time.

        The issue is that the audio output jack on modern Reltek sound chips 
can be configured for
a number of purposes: mono or stereo, line out or speaker out.  Some chips even 
allow you to
configure the jack for both audio input and output.  Our hdaudio(4) driver 
doesn't know how to
twiddle the bits in the Reltek chip to configure these changes itself, so what 
ever the default
settings are, or what ever the BIOS/firmware does to the chip before NetBSD 
loads is what we
get.  I have this problem as well on my Dell Optiplex 5050.  My fix was to 
modify the
hdaudio(4) driver to disable the headset jack, allowing me to use the line out 
jack on the back
of the machine without having to listen to the internal speaker.  It is my 
intention to read
through the linux driver and figure out how to twiddle the correct bits on the 
Reltek chip, but
I've not yet learned how our driver works well enough to be able to translate 
linux driver
speak into NetBSD architecture speak.  The linux driver is full of defines and 
simple functions
that twiddle the right bits in the correct registers, but I had some trouble 
figuring out how
to map those registers into equivalent definitions in our audio framework.  The 
hdaudio(4)
talks to hdaudio 1.0 standards compliant  chiips, and the registers I'm looking 
at are
extensions beyond the scope of what our driver knows about.  It may be that if 
hdaudio(4) were
extended to talk to hdaudio 2.x devices, this problem would go away.  As a side 
note, the
FreeBSD audio drivers have the same issue, except they seem to know even less 
about the
characteristics of specific output devices attached to the audio chips they 
talk to with their
pcm(4) driver, which is the hdaudio(4) equivalent.  I don't claim to be an 
expert on this at
all, so if I've got it completely wrong, I'd love to have someone correct me.

-thanks
-Brian

Reply via email to