Re: problems with via82xx alsa part

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Fri, 06 Oct 2006 10:04:45 +0200,
Jaap Struyk wrote:
> 
> Op wo 04-10-2006, om 19:50 schreef Takashi Iwai:
> 
> > Did you check the device permission?
> > Well, but it shouldn't be a problem since it was opened but the hw
> > parmas fails.  Could you check via strace to see what happens?
> > 
> > Also, what is your system / architecture?  x86-64 and 32bit
> > compatibility problem?
> 
> Both machines are AMD 32bit, running clfs-1.0, /dev is mounted on a tmp
> filesystem with udev and the problem machine is an identical (software)
> copy of the one functioning properly.
> I've notisched that on the problem machine /dev/adsp is missing so aplay
> bailing out isn't odd, but adsp missing is strange since the kernels are
> identical too.

aplay doesn't use /dev/adsp.   It's an OSS device file.
You should check /dev/snd/* files.

> open("/dev/snd/pcmC0D0p", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 4
> close(3)                                = 0
> ioctl(4, AGPIOC_ACQUIRE or APM_IOC_STANDBY, 0xbfbd989c) = 0
> fcntl64(4, F_GETFL)                     = 0x8802 (flags O_RDWR|O_NONBLOCK|O_LARGEFILE)
> ioctl(4, AGPIOC_INFO, 0xbfbd9a48)       = 0
> ioctl(4, AGPIOC_RELEASE or APM_IOC_SUSPEND, 0xbfbd9a40) = 0
> mmap2(NULL, 4096, PROT_READ, MAP_SHARED, 4, 0x80000) = 0xb7b38000
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0x81000) = 0xb7b37000
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4110, 0xbfbd9a70)        = 0
> ioctl(4, 0xc25c4111, 0xbfbd9a70)        = 0
> ioctl(4, 0xc0684113, 0xbfbd9938)        = 0
> ioctl(4, 0x80144132, 0xbfbd9868)        = -1 ENOTTY (Inappropriate ioctl for device)

This ioctl looks strange.
First, the size doesn't match with the actual snd_pcm_channel_info,
and this ioctl shouldn't be called from that place
(pcm_direct.c:snd_pcm_direct_initialize_slave) at all.

Please try to run gdb how the code goes, whether it reaches to
snd_pcm_hw_channel_info().

Also, try the patch below.  This should fix the size mismatch.


Takashi

diff -r c64338235908 include/sound/asound.h
--- a/include/sound/asound.h	Wed Oct 04 17:33:25 2006 +0200
+++ b/include/sound/asound.h	Fri Oct 06 13:20:47 2006 +0200
@@ -400,7 +400,7 @@ struct sndrv_pcm_sw_params {
 
 struct sndrv_pcm_channel_info {
 	unsigned int channel;
-	off_t offset;			/* mmap offset */
+	long offset;			/* mmap offset */
 	unsigned int first;		/* offset to first sample in bits */
 	unsigned int step;		/* samples distance in bits */
 };

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux