[haiku-commits] haiku: hrev44820 - src/add-ons/kernel/drivers/audio/hda build/jam

  • From: korli@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 12 Nov 2012 21:18:07 +0100 (CET)

hrev44820 adds 2 changesets to branch 'master'
old head: 4b2a1d798b16cff17633e6aedfe99b9992fa30e4
new head: 25a627d8800361c42b1f29bd2f2d29b323e9cc2d

----------------------------------------------------------------------------

1e6ae0d: Development: don't link to libs with minor version numbers (for real)
  
  * should help with #9126

25a627d: hda: fixes KDL on HDMI, some digital quirks
  
  * avoid crashing in case of lack of playback or record stream
  * set format on digital output widgets
  * accept digital output on the output path

                                   [ Jerome Duval <jerome.duval@xxxxxxxxx> ]

----------------------------------------------------------------------------

4 files changed, 17 insertions(+), 6 deletions(-)
build/jam/HaikuImage                                     | 8 ++++----
src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp       | 1 +
src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp  | 8 ++++++++
src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp | 6 ++++--

############################################################################

Commit:      1e6ae0de3ad774ef86db36636457512cfb4abc4c
URL:         http://cgit.haiku-os.org/haiku/commit/?id=1e6ae0d
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Mon Nov 12 20:00:11 2012 UTC

Ticket:      https://dev.haiku-os.org/ticket/9126

Development: don't link to libs with minor version numbers (for real)

* should help with #9126

----------------------------------------------------------------------------

diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage
index 1f182c0..b4b6fd8 100644
--- a/build/jam/HaikuImage
+++ b/build/jam/HaikuImage
@@ -335,10 +335,10 @@ SYSTEM_LIBS_ALIASES =
 ;
 
 OPTIONAL_LIBS_ALIASES =
-       $(HAIKU_FREETYPE_CURRENT_LINK)
-       $(HAIKU_JPEG_CURRENT_LINK)
-       $(HAIKU_LIBPNG_CURRENT_LINK)
-       $(HAIKU_ZLIB_CURRENT_LINK)
+       libfreetype.so
+       libjpeg.so
+       libpng.so
+       libz.so
 ;
 
 # libfreetype.so links to the current freetype lib

############################################################################

Revision:    hrev44820
Commit:      25a627d8800361c42b1f29bd2f2d29b323e9cc2d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=25a627d
Author:      Jerome Duval <jerome.duval@xxxxxxxxx>
Date:        Mon Nov 12 20:14:43 2012 UTC

hda: fixes KDL on HDMI, some digital quirks

* avoid crashing in case of lack of playback or record stream
* set format on digital output widgets
* accept digital output on the output path

----------------------------------------------------------------------------

diff --git a/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 
b/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp
index 0d019fa..e778ffc 100644
--- a/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp
+++ b/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp
@@ -1011,6 +1011,7 @@ TRACE("build output tree: %suse mixer\n", useMixer ? "" : 
"don't ");
 
                int device = CONF_DEFAULT_DEVICE(widget.d.pin.config);
                if (device != PIN_DEV_HEAD_PHONE_OUT
+                       && device != PIN_DEV_DIGITAL_OTHER_OUT
                        && device != PIN_DEV_SPEAKER
                        && device != PIN_DEV_LINE_OUT)
                        continue;
diff --git a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 
b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp
index 6d75b06..2f281c3 100644
--- a/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp
+++ b/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp
@@ -770,6 +770,14 @@ hda_stream_setup_buffers(hda_audio_group* audioGroup, 
hda_stream* stream,
                hda_send_verbs(codec, verb, response, 2);
                //channelNum += 2; // TODO stereo widget ? Every output gets 
the same stream for now
                dprintf("%ld ", stream->io_widgets[i]);
+
+               hda_widget* widget = hda_audio_group_get_widget(audioGroup,
+                       stream->io_widgets[i]);
+               if ((widget->capabilities.audio & AUDIO_CAP_DIGITAL) != 0) {
+               verb[0] = MAKE_VERB(codec->addr, stream->io_widgets[i],
+                               VID_SET_DIGITAL_CONVERTER_CONTROL1, format);
+                       hda_send_verbs(codec, verb, response, 1);
+               }
        }
        dprintf("\n");
 
diff --git a/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 
b/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp
index 0c50f8b..6f1a5e2 100644
--- a/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp
+++ b/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp
@@ -892,12 +892,14 @@ get_buffers(hda_audio_group* audioGroup, 
multi_buffer_list* data)
                || data->return_record_buffers < STREAM_MIN_BUFFERS)
                data->return_record_buffers = STREAM_MIN_BUFFERS;
 
-       if (data->return_playback_buffer_size == 0) {
+       if (data->return_playback_buffer_size == 0
+               && audioGroup->playback_stream != NULL) {
                data->return_playback_buffer_size = 
default_buffer_length_for_rate(
                        audioGroup->playback_stream->sample_rate);
        }
 
-       if (data->return_record_buffer_size == 0) {
+       if (data->return_record_buffer_size == 0
+               && audioGroup->record_stream != NULL) {
                data->return_record_buffer_size = 
default_buffer_length_for_rate(
                                audioGroup->record_stream->sample_rate);
        }


Other related posts:

  • » [haiku-commits] haiku: hrev44820 - src/add-ons/kernel/drivers/audio/hda build/jam - korli