Page 53 of 66
Re: sound, SB, AC97 и другое
Posted: Mon May 30, 2011 9:40 pm
by yogev_ezra
Ага, понятно теперь, ну видите,
что русскому хорошо, то немцу смерть что для татарина переключатель окошек, то для еврея - регулятор громкости

Спасибо за разъяснения!
Re: sound, SB, AC97 и другое
Posted: Mon May 30, 2011 9:49 pm
by Gluk
Mario, скорее, создатель соответствующего виджета - раз уж речь о моем варианте панели (offtop: после сессии продолжу ее, сейчас оно более стойко к падениям и читает настройки из файлов)
Re: sound, SB, AC97 и другое
Posted: Tue May 31, 2011 8:30 am
by Unduing
Asper
В драйвер добавлен вывод и проверка статуса.
Re: sound, SB, AC97 и другое
Posted: Tue May 31, 2011 3:59 pm
by Unduing
А кто нибудь может дать толковую документацию по структуре библиотеки alsa, где было бы дерево этой библиотеки, от главной точки входа, до вызова инициализации конкретной карты.
Re: sound, SB, AC97 и другое
Posted: Tue May 31, 2011 4:39 pm
by Asper
Unduing
Unduing wrote:В драйвер добавлен вывод и проверка статуса.
Так хорошо. Дальнейшие разбирательства предлагаю перенести в
PM, чтобы не засорять тему.
Unduing wrote:А кто нибудь может дать толковую документацию по структуре библиотеки alsa, где было бы дерево этой библиотеки, от главной точки входа, до вызова инициализации конкретной карты.
В
ALSA нас интересуют только сами исходные коды драйверов.
Для
PCI карт папка
alsa-driver-x.x.x\alsa-kernel\pci
Для
ISA карт папка
alsa-driver-x.x.x\alsa-kernel\isa
Re: sound, SB, AC97 и другое
Posted: Tue May 31, 2011 9:53 pm
by Unduing
Хотелось бы понять общую суть работы библиотеки.
Стек вызовов вплоть до инициализации драйвера, многое бы прояснил, сейчас же есть набор исходников, но не ясна последовательность запуска библиотеки.
Re: sound, SB, AC97 и другое
Posted: Mon Jun 13, 2011 3:57 am
by yogev_ezra
Велик подтянулся, теперь он тоже в теме:
- 12.06.2011 M64 0.96S released - IntelHDA (ALC662) audio driver
Небось спёр драйвер у
Asper-а

Re: sound, SB, AC97 и другое
Posted: Mon Jun 13, 2011 9:10 am
by Mario
Для того чтобы спереть надо еще код понять, а он даже готовый рабочий код не хотел принимать в свое время.
Re: sound, SB, AC97 и другое
Posted: Fri Jul 01, 2011 3:14 pm
by Leency
Чесно говоря я был немного в шоке, когда услышал звук со своего ноутбука Acer Aspire 4740G. :D
Одно слово Asper БРАВО!!!!!
Re: sound, SB, AC97 и другое
Posted: Fri Jul 01, 2011 11:43 pm
by yogev_ezra
Leency wrote:Чесно говоря я был немного в шоке, когда услышал звук со своего ноутбука Acer Aspire 4740G.
Одно слово
Asper БРАВО!!!!!
Добавил на Вики в список работающих конфигураций.
Asper: Мне интересно, почему при первом вызове драйвера, на любом компьютере, происходит зависание на 1-2 секунды, и загрузка процессора подскакивает до 100% - это так должно быть, или пока не выловленный баг? Что драйвер делает в это время?
Re: sound, SB, AC97 и другое
Posted: Sat Jul 02, 2011 12:23 am
by Mario
Выполняется первичная инициализация железки -очевидно же!
Вопрос только почему при этом еще и загрузка дикая, вполне уместен.
Возможно в цикл ожидания забыли вставить передачу управления следующей задаче.
Re: sound, SB, AC97 и другое
Posted: Sat Jul 02, 2011 12:29 am
by yogev_ezra
Mario wrote:Выполняется первичная инициализация железки -очевидно же!
Вопрос только почему при этом еще и загрузка дикая, вполне уместен.
Загрузка мне как раз не сильно мешает, но показывал потенциальным клиентам, они не могут понять, почему после вызова
AC97SND первый раз, до начала проигрывания музыки, проходит несколько секунд, а в последующие разы всё моментально. Вот опять же,
CleverMouse инициализирует USB-устройства за миллисекунды, поэтому непонятно, почему звуку нужно так много.
Re: sound, SB, AC97 и другое
Posted: Sat Jul 02, 2011 8:17 pm
by Asper
Leency
Спасибо. Рад, что у тебя заработал звук. Поздравляю!
yogev_ezra
yogev_ezra wrote:Asper: Мне интересно, почему при первом вызове драйвера, на любом компьютере, происходит зависание на 1-2 секунды, и загрузка процессора подскакивает до 100% - это так должно быть, или пока не выловленный баг? Что драйвер делает в это время?
Большую часть времени занимают задержки при сбросе контроллера и инициализации кодеков.
Spoiler:
; reset codec link
align 4
proc reset_controller
locals
counter dd ?
endl
test eax, eax
jz .skip
; clear STATESTS
mov eax, STATESTS_INT_MASK
mov edx, ICH6_REG_STATESTS
call azx_writeb
; reset controller
mov edx, ICH6_REG_GCTL
call azx_readl
mov ebx, ICH6_GCTL_RESET
xor ebx, -1
and eax, ebx
mov edx, ICH6_REG_GCTL
call azx_writel
mov [counter], 50 ; total 50*100 ms = 5s
.wait0:
mov edx, ICH6_REG_GCTL
call azx_readb
test eax, eax
jz @f
mov eax, 100000 ; wait 100 ms
call StallExec
dec [counter]
jnz .wait0
@@:
; delay for >= 100us for codec PLL to settle per spec
; Rev 0.9 section 5.5.1
mov eax, 100000 ; wait 100 ms
call StallExec
; Bring controller out of reset
mov edx, ICH6_REG_GCTL
call azx_readb
or eax, ICH6_GCTL_RESET
mov edx, ICH6_REG_GCTL
call azx_writeb
mov [counter], 50 ; total 50*100 ms = 5s
.wait1:
mov edx, ICH6_REG_GCTL
call azx_readb
test eax, eax
jnz @f
mov eax, 100000 ; wait 100 ms
call StallExec
dec [counter]
jnz .wait1
@@:
; Brent Chartrand said to wait >= 540us for codecs to intialize
mov eax, 100000 ; wait 100 ms
call StallExec
.skip:
; check to see if controller is ready
mov edx, ICH6_REG_GCTL
call azx_readb
test eax, eax
jz .fail
; (...)
ret
endp
Поскольку тайминги не стандартизированы, то я делал их такими же как в
ALSA. Мне кажется можно их значительно уменьшить, но я не уверен, что это везде будет работать.
Вот попробуй эту версию.
Re: sound, SB, AC97 и другое
Posted: Sat Jul 02, 2011 8:31 pm
by Mario
Asper
Я не писал отдельных драверов, но в драйверах файловой подсистемы (встроенных в ядро) вполне себе прокатывал вызов
call change_task
Spoiler:
Code: Select all
reserve_hd1:
cli
cmp [hd1_status],0
je reserve_ok1
sti
call change_task
jmp reserve_hd1
Re: sound, SB, AC97 и другое
Posted: Sat Jul 02, 2011 8:43 pm
by Asper
Mario
Эта функция
не экспортируется.