tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Problems with hdaudio(4) on Dell Optiplex-5050
hello. Further investigation into this issue reveals that Mouse is
half right as to the problem itself. the problem, just to reiterate, is
that when I plug a hedphone into the headphone jack of my Dell Optiplex
5050, the sound is distorted as though the left and right channels are
shorted together. And, Mouse's observation that this could be hardware
related is correct.
The issue seems to be that the jack on the front of this machine is a
4-pin jack: left channel at tip, right channel at ring 1, microphone at
ring 2 and ground at sleeve.If only it were that simple. Yes, it's a
4-conductor jack, but the Realtek chip can be programmed to interpret the
signals from the jack in various modes, i.e. headphone mode, where ring 2
and sleeve are logically shorted together, CTIA mode, where ring 2 is
microphone and sleeve is ground, and OMT mode, where ring 2 and the sleeve
are logically reversed from CTIA mode. (I think I have that description correct,
but I'm still trying to understand all the choices here.)
the point is that while our driver puts the audio through the right
output device at the right time, in the case of the headphone jack, it
doesn't set the mode of the jack at all and the default mode is not the
right one for the operation of headphones. To accomplish this task,
additional bits need to be read and written to registers outside of the
HDAudio Specification. I've downloaded the Linux kernel sources to try and
gain an understanding of how to do this and translate these additional
operations into our hdaudio(4) framework. I wonder, however, if someone on
this list might be able to help me understand the moving parts of our
driver enough to help me figure out how to write the extra operations
necessary to give these additional instructions to the Realtek chips. In
terms of an interface, I'm thinking the audioctl(1) interface could be used
to allow the user to select which mode these jacks are in. that would, for
example, allow a user to select a headset with microphone, headphones, or a
line in or out mode.
If someone has already done this work, then I'm happy to use that, or
to test if they are ready to commit it.
Thoughts, or suggestions welcome.
-thanks
-Brian
On Dec 8, 7:43am, Mouse wrote:
} Subject: Re: Problems with hdaudio(4) on Dell Optiplex-5050
} > [I]f a stereo headphone is plugged in to the jack on the fron tof the
} > machine, the audio switches to that jack, but the two channels are
} > mixed together in such a way as to cause them to cancel each other
} > out on each headphone.
}
} I'll suggest another possible cause, if I've understood the symptom
} correctly.
}
} Stereo headphones use three conductors: one ear signal, the other ear
} signal, and common ground. I have occasionally had the ground
} connection break (usually for fixable reasons, in my cases). This
} causes the electrical circuit to amount to both ears in series between
} the two signal conductors, leading to an effectively monaural sound
} that amounts to the difference between the two channels. If there's a
} defect in the jack or its connections (which I can imagine being common
} across a product line or manufacturer), this could at least potentially
} be responsible for the symptom you're hearing.
}
} Of course, it also could be software, as you suggest. One experiment
} that might help resolve this occurs to me. When I've had a machine
} crash while playing sound, it usually keeps playing the last short time
} (50ms?) in a loop. If you break to ddb while sound is playing, I'd
} expect the same thing to happen. In that state, the driver isn't going
} to be changing anything, so plugging headphones in then might help you
} identify whether it's a software issue or not.
}
} /~\ The ASCII Mouse
} \ / Ribbon Campaign
} X Against HTML mouse%rodents-montreal.org@localhost
} / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
>-- End of excerpt from Mouse
Home |
Main Index |
Thread Index |
Old Index