Page 53 of 66

Re: sound, SB, AC97 и другое

Posted: Mon May 30, 2011 9:40 pm
by yogev_ezra
Ага, понятно теперь, ну видите, что русскому хорошо, то немцу смерть что для татарина переключатель окошек, то для еврея - регулятор громкости :lol: Спасибо за разъяснения!

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:lol:

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. :D
Одно слово 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
Эта функция не экспортируется.