Звук есть.
sound, SB, AC97 и другое
-
ASRock M3A770DE
Звук есть.
Я нашёл ошибки в исходниках.
Этот код уже не нужен
AttachIntHandler стоит не в том месте
azx_codec_create не меняет значение регистра eax. В результате проверяется значение eax после вызова AttachIntHandler. Я замаскировал проверки и звук заработал.
Code: Select all
mov eax, VALID_IRQ
mov ebx, [ctrl.int_line]
mov esi, msgInvIRQ
bt eax, ebx
jnc .fail_msg
mov eax, ATTCH_IRQ
mov esi, msgAttchIRQ
bt eax, ebx
jnc .fail_msg
AttachIntHandler стоит не в том месте
Code: Select all
.reg:
лучше здесь
stdcall RegService, sz_sound_srv, service_proc
ret
Code: Select all
;Asper This part is from "azx_probe" proc. [
call azx_codec_create
cmp eax, 0
jl .fail
call azx_codec_configure
cmp eax, 0
jl .fail
;] AsperУгу, в версии 018 я их исправил.Serge wrote:Я нашёл ошибки в исходниках.
Замечательно!Serge wrote:звук заработал.
Mario
Спасибо за проведенные тесты. Странно, что ASUS M3N78-VM опять перестал работать. Возможно дело в том, что я поставил задержки при инициализации кодеков почти на самый минимум. У меня работает на компьютере, ноутбуке и неттопе.
А лог с него действительно правильный.
Спасибо за проведенные тесты. Странно, что ASUS M3N78-VM опять перестал работать. Возможно дело в том, что я поставил задержки при инициализации кодеков почти на самый минимум. У меня работает на компьютере, ноутбуке и неттопе.
А лог с него действительно правильный.
Да и ещё недавно покопался в сети в поисках спецификации HDA и нашел версию 1.0a, в которой внесен ряд исправлений в том числе насчет таймингов:
:
А вот это я вообще обнаружил методом тыка в tv_017aFixed timing error in “Codec Discovery” section that SW
should wait for at least 521 us (25 frames) after reading
CRST# as „1‟ before accessing codec.
Strongly recommend the default value for EAPD to be „1‟ in
“EAPD/BTL Enable” section.
Нашёл ошибку с set_channel_volume. При уровне -5000 звук громче чем при -1000. И дефолтный уровень высоковат (для моей платы точно).
Ага, я её ещё не доделал. System audio mixer кстати наглядно этот баг демонстрирует, поэтому я и не рекомендовал им пока пользоваться применительно к HDA.Serge wrote:Нашёл ошибку с set_channel_volume. При уровне -5000 звук громче чем при -1000.
А что значит высоковат? Драйвер по дефолту ставит громкость на максимум, который предоставляют усилители на виджетах, т.е. ставится максимальный уровень, который можно выжать. Нужно доделать set_channel_volume и system audio mixer и можно будет ставить любой уровень громкости во всей системе.Serge wrote:И дефолтный уровень высоковат (для моей платы точно).
Нашёл ошибку с set_channel_volume. При уровне -5000 звук громче чем при -1000. И дефолтный уровень высоковат (для моей платы точно).
Высоковат означает что наушники 32Ом хрипят предсмертным хрипом. На АC97 по дефолту было тоже самое, поэтому там драйвер выставляет -16.5dB.
Spoiler:
Мои эксперименты со звуком на ac97 начались с того, что я спалил левый канал в наушниках 24ОмSerge
Если бы ты включал наушники через колонку, то вероятность спалить канал была бы в разы меньше.
Если бы ты включал наушники через колонку, то вероятность спалить канал была бы в разы меньше.
На стационарном компе запускается АС97СНД, играет, но звука не слышно. Раньше даже не запускалось. Сейчас на ноуте ещё проверю и скину логи.
: Ну я нажал на панели на кнопочку "звук выключен", думал поможет. Нет, эффект тот же. И тут я, запустив меню слышу, "Бшп!". Шо за?! Открываю миди-плеер и офигиваю когда слышу как мой встроенный динамик играет МИДИ!!!!11 За 100 лет в проекте впервые слышу миди из Колибри!!!11
: Ну я нажал на панели на кнопочку "звук выключен", думал поможет. Нет, эффект тот же. И тут я, запустив меню слышу, "Бшп!". Шо за?! Открываю миди-плеер и офигиваю когда слышу как мой встроенный динамик играет МИДИ!!!!11 За 100 лет в проекте впервые слышу миди из Колибри!!!11
Из хаоса в космос
Не прошло и (Сколько?) лет... Надо чаще жмакать по кнопкам. 
Serge
Теперь понимаю, почему ты не выставил на звук максимум для AC97. Я с такой проблемой пока ни разу не сталкивался.
Если что в драйвере HDA за установку уровня громкости по умолчанию, отвечают вот эти вот строки:
В eax функции snd_hda_codec_amp_stereo передается уровень громкости (измеряется в STEPS).
Замечу ещё, что эта функция вызывается для каждого виджета, который встречается по нашей дороге (output path) от HDA-link до jack и при этом содержит собственно усилитель (amplifier). Различные виджеты могут иметь или не иметь усилители, усилители могут иметь различное максимальное значение STEPS.
Leency
Ok, посмотрим лог.
Теперь понимаю, почему ты не выставил на звук максимум для AC97. Я с такой проблемой пока ни разу не сталкивался.
Если что в драйвере HDA за установку уровня громкости по умолчанию, отвечают вот эти вот строки:
Code: Select all
; unmute (and set max vol) the output amplifier
proc unmute_output stdcall, node:dword
;...
mov eax, [esi + HDA_GNODE.amp_out_caps]
mov ecx, eax
and eax, AC_AMPCAP_NUM_STEPS
shr eax, AC_AMPCAP_NUM_STEPS_SHIFT
stdcall snd_hda_codec_amp_stereo, ebx, HDA_OUTPUT, 0, 0xFF, eax
;...
endp
Замечу ещё, что эта функция вызывается для каждого виджета, который встречается по нашей дороге (output path) от HDA-link до jack и при этом содержит собственно усилитель (amplifier). Различные виджеты могут иметь или не иметь усилители, усилители могут иметь различное максимальное значение STEPS.
Leency
Ok, посмотрим лог.
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
018й драйвер, ядра 2203 и последнее (2245е). Диски /bd0/1 (ext3) и /bd0/2 (fat32).
На обоих ядрах один и тот же результат - зависание при обращении к диску (любому из двух) во время воспроизведения mp3, практически в течении секунды (еле успел скопировать boardlog.txt на fat32, и то не с первого раза). Зависание иногда мертвое (курсор не движется, часы не мигают, на доске сообщения не появляются, звук "икает" на одном месте), иногда наполовину мертвое (не работает диск, звук "икает" на одном месте, перезагрузка приводит к окончательному зависанию, все прочее работает). При попытке посмотреть видео через fplay - несколько секунд смотрится, затем начинает подтормаживать, заикается и через пару секунд после первого заикания - зависание (от полумертвого до мертвого).
Лог прилагаю.
018й драйвер, ядра 2203 и последнее (2245е). Диски /bd0/1 (ext3) и /bd0/2 (fat32).
На обоих ядрах один и тот же результат - зависание при обращении к диску (любому из двух) во время воспроизведения mp3, практически в течении секунды (еле успел скопировать boardlog.txt на fat32, и то не с первого раза). Зависание иногда мертвое (курсор не движется, часы не мигают, на доске сообщения не появляются, звук "икает" на одном месте), иногда наполовину мертвое (не работает диск, звук "икает" на одном месте, перезагрузка приводит к окончательному зависанию, все прочее работает). При попытке посмотреть видео через fplay - несколько секунд смотрится, затем начинает подтормаживать, заикается и через пару секунд после первого заикания - зависание (от полумертвого до мертвого).
Лог прилагаю.
- Attachments
-
-
BOARDLOG.TXT (1.08 KiB)Downloaded 183 times
-
Вот лог со стационарного компа.
Плеер как бы играет, но звука нет. PCIdev нужен? Мать P5k-E/Wi-Fi.
Плеер как бы играет, но звука нет. PCIdev нужен? Мать P5k-E/Wi-Fi.
- Attachments
-
-
BOARDLOG.TXT (4.02 KiB)Downloaded 176 times
-
Из хаоса в космос
Вот лог с ноута Acer Aspire 4740G.
Плеер как бы играет, но звука нет. Очень долго стартует. После закрытия плеер висит в процессах. [/quote]
Плеер как бы играет, но звука нет. Очень долго стартует. После закрытия плеер висит в процессах. [/quote]
- Attachments
-
-
BOARDLOG.TXT (8.48 KiB)Downloaded 179 times
-
PCIDEV.TXT (2.32 KiB)Downloaded 166 times
-
Из хаоса в космос
Who is online
Users browsing this forum: No registered users and 6 guests