Radio: dsp access error with MyCinema-P7131 Hybrid
- Date: Fri, 06 Apr 2007 19:44:03 +0200
- From: "Alexey Feldgendler" <alexey@xxxxxxxxxxxxxx>
- Subject: Radio: dsp access error with MyCinema-P7131 Hybrid
Brief summary: With "MyCinema-P7131 Hybrid" TV/radio PCI card, the saa7134
module says "dsp access error" when trying to capture sound from the ALSA
device in radio mode.
I have a "MyCinema-P7131 Hybrid" TV/Radio PCI card. Running Debian
GNU/Linux (testing) with the 2.6.18-4-686 kernel. The saa7134 driver
included in this kernel didn't know about my particular card, so I had to
use the following override: "options saa7134 card=78 tuner=54" (advice
found here: http://gentoo-wiki.com/HARDWARE_saa7134).
Yesterday I pulled the V4L-DVB snapshot from the HG repository and built
the modules from there. The new driver properly identifies my card (as
type 112), so I removed the overrides. The only override I left in
/etc/modprobe.d is this:
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS &&
...to automatically load saa7134-alsa after loading saa7134. (Could the
audio device be "detected" automatically so that the ALSA driver loads?) I
also have dvb-fe-tda10046.fw in /lib/firmware which seems to actually load
into the card: "tda1004x: found firmware revision 20 -- ok" (can be seen
I can watch TV with mplayer without problems:
(/dev/video0 is my webcam.)
I have to use immediatemode=0 and capture the sound through ALSA because
this card doesn't have an analog audio output that I could connect to the
sound card's line input.
However, radio doesn't work. Here is what I try:
mplayer -radio device=/dev/radio0:driver=v4l2:adevice=hw=2.0:arate=32000
(I have no idea why the adevice suboption has different syntax in -tv and
I have to use /capture for the same reason as why I have to use
immediatemode=0 for TV.
What happens is that mplayer stalls at "Cache fill: 0.00% (0 bytes)".
strace shows that mplayer runs a background worker process at this time.
The foreground process keeps updating this line with "0 bytes" while the
background one repeatedly calls ioctl(6, 0x800c4151, ...) which returns 0.
Under fd 6 is open /dev/snd/pcmC2D0c. Before entering the loop, the
following ioctls have been made by mplayer on this fd: AGPIOC_ACQUIRE or
APM_IOC_STANDBY, AGPIOC_INFO, AGPIOC_RELEASE or APM_IOC_SUSPEND, then an
mmap2 for reading and an mmap2 for writing, then ioctl 0xc25c4110 several
times, then 0xc25c4111, 0xc0684113, 0x4140, 0xc0684113.
At the same time when mplayer tries to read the sound from the device, the
kernel repeatedly prints the following (can be seen from dmesg):
"saa7133: dsp access error". Adding more verbosity (audio_debug=1) when
loading the kernel modules doesn't seem to make this info more detailed.
I also tried to tune without /capture (mplayer tunes the card and then
starts idling, hoping that the sound gets though the loopback audio cable,
which I don't have) and doing the following while tuned:
arecord -D hw:2,0 -f S16_LE -c 2 -r 32000
What happens is that arecord outputs the RIFF header and stalls. strace
shows something very similar to what mplayer does, however arecord doesn't
Also, after an attempt to tune the radio, TV sound stops working, while
the picture is still OK. Sound only reappears after rebooting, and even
unloading saa7134-alsa and saa7134 and loading them back doesn't fix the
I've searched through the archives of this mailing list, as well as
through the internet, of course, but found no relevant information. I'll
be grateful for any help.
Below is what the kernel modules say when loading:
saa7130/34: v4l2 driver version 0.2.14 loaded
saa7133: found at 0000:05:02.0, rev: 209, irq: 233, latency: 64, mmio:
saa7133: subsystem: 1043:4876, board: ASUSTeK P7131 Hybrid
saa7133: board init: gpio is 40000
input: saa7134 IR (ASUSTeK P7131 Hybri as /class/input/input8
tuner 1-004b: chip found @ 0x96 (saa7133)
tuner 1-004b: setting tuner address to 61
tuner 1-004b: type set to tda8290+75a
saa7133: i2c eeprom 00: 43 10 76 48 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
saa7133: i2c eeprom 10: ff ff ff 0f ff 20 ff ff ff ff ff ff ff ff ff ff
saa7133: i2c eeprom 20: 01 40 01 02 03 01 01 03 08 ff 00 d5 ff ff ff ff
saa7133: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133: i2c eeprom 40: ff 21 00 c2 96 10 03 32 55 50 ff ff ff ff ff ff
saa7133: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
saa7133/audio: tvaudio thread scan start 
saa7133/audio: scanning: B/G D/K I
saa7133: registered device video1 [v4l2]
saa7133: registered device vbi0
saa7133: registered device radio0
saa7134 ALSA driver for DMA sound loaded
saa7133/alsa: saa7133 at 0xfeaff000 irq 233 registered as card -1
DVB: registering new adapter (saa7133).
DVB: registering frontend 0 (Philips TDA10046H DVB-T)...
tda1004x: setting up plls for 48MHz sampling clock
tda1004x: found firmware revision 20 -- ok
Alexey Feldgendler <alexey@xxxxxxxxxxxxxx>
[ICQ: 115226275] http://feldgendler.livejournal.com
video4linux-list mailing list