[haiku-bugs] Re: [Haiku] #14581: no audio on T410 (8086/3b56) - mixer not insertable in output path

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Fri, 05 Oct 2018 20:15:36 -0000

#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.

Other related posts: