Имею PXA270 (со встроенной коркой AC97) + UCB1400 чип.
Драйвер от "производителя".
Итак, при загрузке линуха имею следующие сообщения относительно звука:
Код
Advanced Linux Sound Architecture Driver Version 1.0.10rc1 (Mon Sep 12 08:13:09
2005 UTC).
pxa2xx_ac97_reset:1 cold reset timeout (GSR=0x0) (это условие проверяется дважды, ошибки возврата нет)
AC97 probing return OK. (эту строчку я добавил в драйвер)
ALSA device list:
#0: pxa2xx-ac97 (Philips UCB1400)
Т.е. вроде как все определилось и зарегилось ОК.
Например, если оторвать тактовый сигнал, то при загрузке, UCB1400 не определяется.
Вопрос, а как выводить звук, как обычно, простой записью в устройство?
Вот содержимое моего /proc/devices:
Код
Character devices:
1 mem
2 pty
3 ttyp
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
14 sound
21 sg
29 fb
90 mtd
116 alsa
128 ptm
134 PXA270 Boot jum
136 pts
180 usb
189 usb_device
создал устройство sound (14 0) и alsa (116 0), при записи в sound, получаю
No such device, при записи (echo fdsdfs > /dev/alsa) в alsa ошибки не возникает, но и никакого телодвижения на AC97 линиях не наблюдаю, dd if=/dev/zero of=/dev/alsa bs=1 count=10000, получаю
dd: /dev/alsa: Invalid argument?
Наблюдаемые странности:
Судя по всему, драйвер создавался в "давние времена" т.к. не настраивается линия общей тактовой частоты (24,576МГц) для UCB1400, добавил.
Во время инициализации драйвера я вижу осциллом, что тактовая появляется, но после исчезает, что очень подозрительно, я закоментарил в драйвере все функции shutdown и suspend, но это не повлияло ...
Еще, чип UCB1400 имеет выход прерывания, но корка PXA270 не имеет входа для прерывания. В драйвере, прерывания настраиваются, не совсем ясно на прерывание от чего (самой корки или внешнего источника) ...