[last mail bounced (> 60KB), so I'm resending after two days]

Hello all,

during a rather long time, I've been writing a driver for the Aztech PCI168
card. The reason it took so long is that I was unable to get any specs
from Aztech ;-)

I'd be happy if someone could give this driver a try and report any
problems to me (it most certainly will have some problems).
Would be even better if someone actually helped me with development ;-)

Note that I updated to current CVS today (was using a version that's
about 2 weeks old), but I was unable to use the module again so far
(module versioning loading errors), so the driver has only been tested with a
slightly less current ALSA.

The diff needed to add the driver also contains some corrections of
spelling etc. that I spotted.

Note that I placed azt3328.c in the alsa-kernel/pci/ directory, which
is probably not what you want when adding it to CVS.

Current status:
- mixer interface complete
- playback fully working
- recording working (?)
- playback/recording working (??)
- MIDI interface added (does it work ??)
- missing: power management (CONFIG_PM), legacy sound hardware support,
  wave in switch

Currently I'm still getting two different OOPSes, too:
one OOPS happens after playing e.g. an MP3 file with alsaplayer:
Oct  6 21:17:45 andi kernel: Unable to handle kernel paging request at
virtual
+address 00007dd0
Oct  6 21:17:45 andi kernel:  printing eip:
Oct  6 21:17:45 andi kernel: c026866d
Oct  6 21:17:45 andi kernel: *pde = 00000000
Oct  6 21:17:45 andi kernel: Oops: 0002
Oct  6 21:17:45 andi kernel: CPU:    0
Oct  6 21:17:45 andi kernel: EIP:    0010:[rwsem_wake+10421/10482]    Not
+tainted
Oct  6 21:17:45 andi kernel: EFLAGS: 00010246
Oct  6 21:17:45 andi kernel: eax: 00000000   ebx: 00000230   ecx: 00000230
+edx: 082a98f8
Oct  6 21:17:45 andi kernel: esi: 082a96c8   edi: 00007dd0   ebp: 00001f74
+esp: d7e8dcb4
Oct  6 21:17:45 andi kernel: ds: 0018   es: 0018   ss: 0018
Oct  6 21:17:45 andi kernel: Process alsaplayer (pid: 10398,
+stackpage=d7e8d000)Oct  6 21:17:45 andi kernel: Stack: 00000000 00000230
+00000020 da4e1c00 dfa4e580 e0bf38cc 00007dd0 082a96c8
Oct  6 21:17:45 andi kernel:        00000230 0000008c 008ebf74 da4e1c00
+d13d6000+e0bf3bad dfa4e580 00001f74
Oct  6 21:17:45 andi kernel:        082a96c8 00000000 0000008c dfa4e580
+bf1ffa54+dfa4e580 00000000 d7e8dd24
Oct  6 21:17:45 andi kernel: Call Trace:    [<e0bf38cc>] [<e0bf3bad>]
+[<e0bf3d04>] [<e0bf386c>] [<e0bef73d>]
Oct  6 21:17:45 andi kernel:   [ide_set_handler+85/96] [sis5513_dmaproc+51/60]
+[ide_dmaproc+434/632] [do_anonymous_page+186/212] [sis5513_dmaproc+51/60]
+[do_rw_disk+734/1328]
Oct  6 21:17:45 andi kernel:   [start_request+326/544] [start_request+428/544]
+[__alloc_pages+59/360] [_alloc_pages+22/24] [__get_free_pages+10/64]
+[kmem_cache_alloc+173/188]
Oct  6 21:17:45 andi kernel:   [send_signal+44/240] [deliver_signal+73/80]
+[send_sig_info+116/136] [kill_something_info+281/292] [sys_kill+77/88]
+[8139too:__insmod_8139too_S.text_L8976+6284/9088]
Oct  6 21:17:45 andi kernel:   [handle_IRQ_event+52/96] [<e0befc9e>]
+[sys_ioctl+362/388] [system_call+51/64]
Oct  6 21:17:45 andi kernel:
Oct  6 21:17:45 andi kernel: Code: f3 aa 58 59 e9 4e be ff ff ba f2 ff ff ff e9
83 be ff ff ba

If I comment out the         snd_pcm_lib_free_pages(substream);
in snd_azf3328_hw_free(), then I avoid the OOPS, but of course this
isn't exactly what I'm supposed to do.
Any idea about that ?
I really don't see why it should be crashing here...
I thought that it might happen because the moment that it frees the substream,
the interrupt handler gets one more interrupt (and possibly does a
snd_pcm_period_elapsed() or so), but this is not the case
(no interrupt at this time).

The second crashes involves combined operation of snd-azt3328 and snd-intel8x0:
[reboot, fresh box]
modprobe snd-azt3328
rmmod snd-azt3328
modprobe snd-intel8x0
rmmod snd-intel8x0
modprobe snd-azt3328 <----- OOPS

This results in:
Oct  6 21:52:34 andi kernel: Unable to handle kernel paging request at virtual
+address e0c05c20
Oct  6 21:52:34 andi kernel:  printing eip:
Oct  6 21:52:34 andi kernel: c021d4d8
Oct  6 21:52:34 andi kernel: *pde = 1c8db067
Oct  6 21:52:34 andi kernel: *pte = 00000000
Oct  6 21:52:34 andi kernel: Oops: 0002
Oct  6 21:52:34 andi kernel: CPU:    0
Oct  6 21:52:34 andi kernel: EIP:    0010:[pci_register_driver+28/96]    Not
+tainted
Oct  6 21:52:34 andi kernel: EFLAGS: 00010282
Oct  6 21:52:34 andi kernel: eax: e0c05c20   ebx: e0c02000   ecx: d9b12000
+edx: dfe1eb20
Oct  6 21:52:34 andi kernel: esi: e0c04500   edi: 00000004   ebp: 00002544
+esp: d9b13f18
Oct  6 21:52:34 andi kernel: ds: 0018   es: 0018   ss: 0018
Oct  6 21:52:34 andi kernel: Process modprobe (pid: 1044, stackpage=d9b13000)
Oct  6 21:52:34 andi kernel: Stack: e0c02000 00000004 00000004 e0c03275
+e0c04500+e0c02000 c011739d d9b12000
Oct  6 21:52:34 andi kernel:        0805315b 00002544 bfffc0ac 00001ce0
+d9b14000+00000060 d9b15000 ffffffea
Oct  6 21:52:34 andi kernel:        0000000b da1f5700 00000060 e0bfb000
+e0c02060+00002544 00000000 00000000
Oct  6 21:52:34 andi kernel: Call Trace:    [<e0c03275>] [<e0c04500>]
+[sys_init_module+1285/1440] [<e0c02060>] [system_call+51/64]
Oct  6 21:52:34 andi kernel:
Oct  6 21:52:34 andi kernel: Code: 89 30 8b 1d 68 07 2e c0 31 ff 81 fb 68 07 2e
c0 74 29 8d b6

So this is in pci_register_driver() (i.e.: at the beginning of
pci_module_init()).
I really don't see why it should crash here either. AFAICS both drivers manage
the PCI (de)registration properly. I didn't find any omission at least.
Any idea what's wrong here ?

(yes, the traces are old, but the problems still persist, without any solution)
I think I can crack down on the pci_register_driver crash, though, by
adding traces to Linux.

This driver has been developed on 2.4.19, BTW.

If you have any questions, just let me know.

Thanks for listening,

Andreas Mohr

Attachment: alsa.tar.bz2
Description: BZip2 compressed data

Reply via email to