Takashi Iwai wrote:
> > > > gate:~# modprobe snd-opti92x-ad1848
> > > > /lib/modules/2.2.24/misc/snd-opti92x-ad1848.o: init_module: Device or
> > > > resource busy
> > > > snd: Device or resource busy
> could you check at which point the error happens, e.g. by putting
> printk()'s ?
Ok, here it is :
Remeber that I said modprobe snd-opti92x-ad1848 does not attempt to
automatically load snd-isapnp too? I think there might be a connection.
in opti92x-ad1848.c :
In alsa_card_opti9xx_setup
snd_card_opti9xx_probe returns -19 (-ENODEV)
snd_card_opti9xx_detect returns -19
this one loops the detection through 1,2,3,4 and exits at 5
(#define OPTi9XX_HW_82C930 5)
in the detect function I put these :
#ifndef OPTi93X
for (i = OPTi9XX_HW_82C928; i < OPTi9XX_HW_82C930; i++) {
unsigned char value;
if ((err = snd_opti9xx_init(chip, i)) < 0)
return err;
printk(KERN_ERR "card index %i\n",i);
if (check_region(chip->mc_base, chip->mc_base_size))
continue;
printk(KERN_ERR "mc_base %i mc_size
%i\n",chip->mc_base,chip->mc_base_size);
value = snd_opti9xx_read(chip, OPTi9XX_MC_REG(1));
printk(KERN_ERR "mc_reg value : %i\n",value);
if ((value != 0xff) && (value != inb(chip->mc_base +
1)))
if (value == snd_opti9xx_read(chip,
OPTi9XX_MC_REG(1)))
return 1;
}
And I got this output :
Oct 31 14:28:08 gate kernel: card index 1
Oct 31 14:28:08 gate kernel: mc_base 3980 mc_size 7
Oct 31 14:28:08 gate kernel: mc_reg value : 255
Oct 31 14:28:08 gate kernel: card index 2
Oct 31 14:28:08 gate kernel: mc_base 3980 mc_size 10
Oct 31 14:28:08 gate kernel: mc_reg value : 255
Oct 31 14:28:08 gate kernel: card index 3
Oct 31 14:28:08 gate kernel: mc_base 3980 mc_size 10
Oct 31 14:28:08 gate kernel: mc_reg value : 255
Oct 31 14:28:08 gate kernel: card index 4
Oct 31 14:28:08 gate kernel: mc_base 3980 mc_size 2
Oct 31 14:28:08 gate kernel: mc_reg value : 255
si because value is 0xff, this returns in the end -ENODEV...
However : Oct 31 13:30:17 gate kernel: isapnp: Card 'OPTi Audio 16'
>From what I've been looking around the source, I can think of two
reasons :
1) Either my card is not a true opti924 and some of those register
values and passowrd and base are not correct when probing for it, so
it's not detected
I don't think this is the case :
which I think is not the case, since the chip on it says 82C924, and
isapnp sees
Card 1 'OPT0924:OPTi Audio 16' PnP version 1.0
Logical device 0 'OPT0000:Pro Audio 16'
2) the register addresses, and such are wrong (?)
3) hardware conflict? I don't see any instability or non-functionality
in my system from other components/cards...
Any ideas? Please, help.
Going through opti92x-ad1848.c I have a small curiosity :
At the module parameters I see :
//static int enable = SNDRV_DEFAULT_ENABLE1; /* Enable this card */
//MODULE_PARM(enable, "i");
//MODULE_PARM_DESC(enable, "Enable opti9xx soundcard.");
//MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
Then later I see
#ifndef MODULE
/* format is: snd-opti9xx=enable,index,id,isapnp,
port,mpu_port,fm_port,
irq,mpu_irq,
dma1,[dma2] */
static int __init alsa_card_opti9xx_setup(char *str)
{
int __attribute__ ((__unused__)) enable = 1;
int __attribute__ ((__unused__)) pnp = INT_MAX;
Probably leftovers?
--
ing. Andrei Boros
mailto:[EMAIL PROTECTED] / +40-21-303-1870
Centrul pt. Tehnologia Informatiei
Societatea Romana de Radiodifuziune
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user