#14581: no audio on T410 (8086/3b56) - mixer not insertable in output path
---------------------------------+----------------------------
Reporter: ttcoder | Owner: korli
Type: bug | Status: new
Priority: normal | Milestone: R1/beta2
Component: Drivers/Audio/HDA | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Has a Patch: 0 | Platform: All
---------------------------------+----------------------------
Comment (by ttcoder):
I think I've found out why the settings look like this:
[[Image(/raw-attachment/ticket/14242/broken_hda_x220.png)]]
The code looks like this:
{{{
static void
hda_create_control_for_complex(hda_multi* multi, uint32* index, uint32
parent,
hda_widget& widget, bool& gain, bool& mute)
{
...
if ((widget.flags & WIDGET_FLAG_WIDGET_PATH) != 0)
return;
hda_create_channel_control(multi, index, parent, 0,
widget, false, widget.capabilities.output_amplifier, 0,
gain, mute);
...
if(..)
{
// Recurse:
hda_create_control_for_complex(multi, index, parent,
child, gain, mute);
}
}}}
Note that in this case, all 3 columns (right HP, HP, Speaker) refer to the
same widget # 16 (Audio Output). So the first column succeeds in calling
hda_create_channel_control(). But when the "Headphones" and "Speaker"
columns attempt to call it, those calls bail out as the
WIDGET_FLAG_WIDGET_PATH flag is already set on widget 16!
I wonder how it works in the general case.. Maybe other chipsets provide a
different Audio-Out for each pin complex ?
@korli any idea?
--
Ticket URL: <https://dev.haiku-os.org/ticket/14581#comment:3>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.