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); }