linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* ALSA bug, isa cmi8330
@ 2002-09-12 18:48 Arador
  0 siblings, 0 replies; only message in thread
From: Arador @ 2002-09-12 18:48 UTC (permalink / raw)
  To: alsa-devel; +Cc: gstalusan, linux-kernel

(Please cc me)
Hi. I've a isa cmi8330 card, and it seems it doesn't works
corrrectly. Looking at the code I've found that __ISAPNP__
is *never* defined (regardless of being bulilt-in or as a
module). So I've done the same that other devices under
sound/isa/, I've applied the following patch:

--- cmi8330.c.broken	Thu Sep 12 16:39:04 2002
+++ cmi8330.c	Thu Sep 12 16:39:10 2002
@@ -46,6 +46,11 @@
 #include <sound/driver.h>
 #include <linux/init.h>
 #include <linux/slab.h>
+#ifndef LINUX_ISAPNP_H
+#include <linux/isapnp.h>
+#define isapnp_card pci_bus
+#define isapnp_dev pci_dev
+#endif
 #include <sound/core.h>
 #include <sound/ad1848.h>
 #include <sound/sb.h>


Now the driver compiles and should work correctly.
btw, when i do a modprobe snd-cmi8330 it seems that the driver
doesn't recognize the isapnp data, and i've to set the values
myself with parameters:

root@diego:~# modprobe snd-cmi8330
ALSA cmi8330.c:272: CMI8330/C3D (SB16) PnP configure failure
ALSA cmi8330.c:344: PnP detection failed
CMI8330 not found or device busy
/lib/modules/2.5.34/kernel/sound/isa/snd-cmi8330.o: init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
/lib/modules/2.5.34/kernel/sound/isa/snd-cmi8330.o: insmod /lib/modules/2.5.34/kernel/sound/isa/snd-cmi8330.o failed
/lib/modules/2.5.34/kernel/sound/isa/snd-cmi8330.o: insmod snd-cmi8330 failed
root@diego:~#

Well, this is no annoying, the annoying
thing ;) is that output when i modprobe the module with the correct
values:

root@diego:~# modprobe snd-cmi8330 snd_wssport=0x530 snd_wssirq=9 snd_wssdma=0 snd_sbport=0x220 snd_sbirq=5 snd_sbdma8=1 snd_sbdma16=5
AD1848 REGS:      INDEX = 0x40                   STATUS = 0xcc
  0x00: left input      = 0x00    0x08: playback format = 0x00
  0x01: right input     = 0x00    0x09: iface (CFIG 1)  = 0x08
  0x02: AUXA left       = 0x80    0x0a: pin control     = 0x00
  0x03: AUXA right      = 0x80    0x0b: init & status   = 0x20
  0x04: AUXB left       = 0x80    0x0c: revision & mode = 0x0a
  0x05: AUXB right      = 0x80    0x0d: loopback        = 0x00
  0x06: left output     = 0x80    0x0e: data upr count  = 0x00
  0x07: right output    = 0x80    0x0f: data lwr count  = 0x00
ALSA sb_common.c:131: SB [0x220]: DSP chip found, version = 4.13
Unable to handle kernel paging request at virtual address 40015000
 printing eip:
4009ad65
*pde = 013f1067
*pte = 00000000
Oops: 0006
CPU:    0
EIP:    0023:[<4009ad65>]    Not tainted
EFLAGS: 00010203
eax: 00000fd2   ebx: 4013de48   ecx: 000003f4   edx: 080a9e68
esi: bfffb0d4   edi: 40015000   ebp: bfffafcc   esp: bfffafc4
ds: 002b   es: 002b   ss: 002b
Process modprobe (pid: 2307, threadinfo=c125c000 task=c14726a0)
 <6>note: modprobe[2307] exited with preempt_count 1
Violación de segmento
(That's segmentation fault)



Now the module is loaded, i can unload it without problems,
and it repeats when i try again, but it adds lines like those:

modprobe: page allocation failure. order:4, mode:0x21
modprobe: page allocation failure. order:3, mode:0x21
modprobe: page allocation failure. order:4, mode:0x21
modprobe: page allocation failure. order:3, mode:0x21

after/before the "ALSA sb_common.c:131: SB [0x220]: DSP chip found, version = 4.13"

If it helps, the /proc/interrupt and /proc/ioports for the module are there when it's loaded.


The oops decoded:
ksymoops 2.4.5 on i686 2.5.34.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.5.34/ (default)
     -m /boot/System.map-2.5.34 (default)

Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

Unable to handle kernel paging request at virtual address 40015000
4009ad65
*pde = 013f1067
Oops: 0006
CPU:    0
EIP:    0023:[<4009ad65>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010203
eax: 00000fd2   ebx: 4013de48   ecx: 000003f4   edx: 080a9e68
esi: bfffb0d4   edi: 40015000   ebp: bfffafcc   esp: bfffafc4
ds: 002b   es: 002b   ss: 002b
Warning (Oops_read): Code line not seen, dumping what data is available


>>EIP; 4009ad65 Before first symbol   <=====

>>eax; 00000fd2 Before first symbol
>>ebx; 4013de48 Before first symbol
>>edx; 080a9e68 Before first symbol
>>esi; bfffb0d4 Before first symbol
>>edi; 40015000 Before first symbol
>>ebp; bfffafcc Before first symbol
>>esp; bfffafc4 Before first symbol


2 warnings issued.  Results may not be reliable.


Diego Calleja

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-09-12 18:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-12 18:48 ALSA bug, isa cmi8330 Arador

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).