[alsa-devel] ice1712 error
Hello,
I found out the ICE1712 card is sometimes detected OK and sometimes isn't detected correctly. Cold boot/warm boot doesn't really matter. I tried kernel 2.6.27.9 and older. Card is is fine when detected. Behaviour doesn't change when I try a different PCI slot.
When the card fails:
# dmesg|grep 01:09 PCI: 0000:01:09.0 reg 10 io port: [a000, a01f] PCI: 0000:01:09.0 reg 14 io port: [a400, a40f] PCI: 0000:01:09.0 reg 18 io port: [a800, a80f] PCI: 0000:01:09.0 reg 1c io port: [ac00, ac3f] pci 0000:01:09.0: supports D2 ICE1712: probe of 0000:01:09.0 failed with error -12
When the card is OK:
PCI: 0000:01:09.0 reg 10 io port: [a000, a01f] PCI: 0000:01:09.0 reg 14 io port: [a400, a40f] PCI: 0000:01:09.0 reg 18 io port: [a800, a80f] PCI: 0000:01:09.0 reg 1c io port: [ac00, ac3f] pci 0000:01:09.0: supports D2 ICE1712 0000:01:09.0: PCI INT A -> Link[APC4] -> GSI 19 (level, low) -> IRQ 19
I booted into single user mode each time and checked /proc/asound/cards after each boot and then looked at dmesg.
Does this mean the card is toast? What does the -12 mean?
What should I try next?
Kind regards, Udo
At Fri, 19 Dec 2008 16:38:50 +0100, Udo van den Heuvel wrote:
Hello,
I found out the ICE1712 card is sometimes detected OK and sometimes isn't detected correctly. Cold boot/warm boot doesn't really matter. I tried kernel 2.6.27.9 and older. Card is is fine when detected. Behaviour doesn't change when I try a different PCI slot.
When the card fails:
# dmesg|grep 01:09 PCI: 0000:01:09.0 reg 10 io port: [a000, a01f] PCI: 0000:01:09.0 reg 14 io port: [a400, a40f] PCI: 0000:01:09.0 reg 18 io port: [a800, a80f] PCI: 0000:01:09.0 reg 1c io port: [ac00, ac3f] pci 0000:01:09.0: supports D2 ICE1712: probe of 0000:01:09.0 failed with error -12
When the card is OK:
PCI: 0000:01:09.0 reg 10 io port: [a000, a01f] PCI: 0000:01:09.0 reg 14 io port: [a400, a40f] PCI: 0000:01:09.0 reg 18 io port: [a800, a80f] PCI: 0000:01:09.0 reg 1c io port: [ac00, ac3f] pci 0000:01:09.0: supports D2 ICE1712 0000:01:09.0: PCI INT A -> Link[APC4] -> GSI 19 (level, low) -> IRQ 19
I booted into single user mode each time and checked /proc/asound/cards after each boot and then looked at dmesg.
Does this mean the card is toast? What does the -12 mean?
It's ENOMEM, means it failed to allocate some memories.
Takashi
Takashi Iwai wrote:
ICE1712: probe of 0000:01:09.0 failed with error -12 Does this mean the card is toast? What does the -12 mean?
It's ENOMEM, means it failed to allocate some memories.
Thanks for the info.
There is 4G of RAM in the box. I can boot with mem=2048000K and still get the error every like I described. (sometimes it is in error, sometimes it is OK)
Do I need to remove SIMMs to test?
What could I do?
At Fri, 19 Dec 2008 17:00:43 +0100, Udo van den Heuvel wrote:
Takashi Iwai wrote:
ICE1712: probe of 0000:01:09.0 failed with error -12 Does this mean the card is toast? What does the -12 mean?
It's ENOMEM, means it failed to allocate some memories.
Thanks for the info.
There is 4G of RAM in the box. I can boot with mem=2048000K and still get the error every like I described. (sometimes it is in error, sometimes it is OK)
Do I need to remove SIMMs to test?
What could I do?
It doesn't always mean there are too little memory. 4GB is definitely enough for the operation.
You should figure out which function returns -ENOMEM error in the probe callback.
Takashi
Takashi Iwai wrote:
At Fri, 19 Dec 2008 17:00:43 +0100, Udo van den Heuvel wrote:
Takashi Iwai wrote:
ICE1712: probe of 0000:01:09.0 failed with error -12 Does this mean the card is toast? What does the -12 mean?
It's ENOMEM, means it failed to allocate some memories.
Thanks for the info.
There is 4G of RAM in the box. I can boot with mem=2048000K and still get the error every like I described. (sometimes it is in error, sometimes it is OK)
Do I need to remove SIMMs to test?
What could I do?
It doesn't always mean there are too little memory. 4GB is definitely enough for the operation.
You should figure out which function returns -ENOMEM error in the probe callback.
How can I do that? Please let me know which file I need to modify. I can build a test-kernel and see waht happens then.
Kind regards, Udo
At Fri, 19 Dec 2008 17:21:44 +0100, Udo van den Heuvel wrote:
Takashi Iwai wrote:
At Fri, 19 Dec 2008 17:00:43 +0100, Udo van den Heuvel wrote:
Takashi Iwai wrote:
ICE1712: probe of 0000:01:09.0 failed with error -12 Does this mean the card is toast? What does the -12 mean?
It's ENOMEM, means it failed to allocate some memories.
Thanks for the info.
There is 4G of RAM in the box. I can boot with mem=2048000K and still get the error every like I described. (sometimes it is in error, sometimes it is OK)
Do I need to remove SIMMs to test?
What could I do?
It doesn't always mean there are too little memory. 4GB is definitely enough for the operation.
You should figure out which function returns -ENOMEM error in the probe callback.
How can I do that? Please let me know which file I need to modify. I can build a test-kernel and see waht happens then.
Well, my bet is snd_card_new(). It returns NULL when something is wrong, and the driver returns -ENOMEM no matter which error was. Usually when this happens you'll have some error messages (e.g. "cannot find the slot...") or so.
Build with the debug option CONFIG_SND_DEBUG=y, at least. If you are building from alsa-driver tarball, pass --with-debug=full configure option.
Takashi
Takashi Iwai wrote:
You should figure out which function returns -ENOMEM error in the probe callback.
How can I do that? Please let me know which file I need to modify. I can build a test-kernel and see waht happens then.
Well, my bet is snd_card_new(). It returns NULL when something is wrong, and the driver returns -ENOMEM no matter which error was. Usually when this happens you'll have some error messages (e.g. "cannot find the slot...") or so.
snd_card_new gives me the error. (I put some printk's at the right spots.)
So what's the next step?
Kind regards, Udo
At Fri, 19 Dec 2008 18:18:53 +0100, Udo van den Heuvel wrote:
Takashi Iwai wrote:
You should figure out which function returns -ENOMEM error in the probe callback.
How can I do that? Please let me know which file I need to modify. I can build a test-kernel and see waht happens then.
Well, my bet is snd_card_new(). It returns NULL when something is wrong, and the driver returns -ENOMEM no matter which error was. Usually when this happens you'll have some error messages (e.g. "cannot find the slot...") or so.
snd_card_new gives me the error. (I put some printk's at the right spots.)
So what's the next step?
Check that function. Did you build with the debug option?
Takashi
Takashi Iwai wrote:
snd_card_new gives me the error. (I put some printk's at the right spots.)
So what's the next step?
Check that function. Did you build with the debug option?
Yes. For hda-intel it gives some extra messages but none for ice1712:
ALSA sound/core/init.c:183: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ (my own debugging) ICE1712: probe of 0000:01:09.0 failed with error -12 ALSA sound/core/init.c:183: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ (my own debugging) ICE1712: probe of 0000:01:09.0 failed with error -12
So I really need help.
Kind regards, Udo
Udo van den Heuvel wrote:
Takashi Iwai wrote:
snd_card_new gives me the error. (I put some printk's at the right spots.)
So what's the next step?
Check that function. Did you build with the debug option?
Yes. For hda-intel it gives some extra messages but none for ice1712:
ALSA sound/core/init.c:183: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ (my own debugging) ICE1712: probe of 0000:01:09.0 failed with error -12 ALSA sound/core/init.c:183: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ (my own debugging) ICE1712: probe of 0000:01:09.0 failed with error -12
It appears that in init.c, in snd_card_new this part of code is causing the error:
else if (idx < snd_ecards_limit) { if (snd_cards_lock & (1 << idx)) err = -EBUSY; /* invalid */ printk(KERN_WARNING "busy............\n"); /*my debug */ }
So it is my card? Repeatedly rmmodding and modprobing snd_ice1712 now only gives me -12
Please advise.
Udo
cdrom: This disc doesn't have any tracks I recognize! busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12
At Sat, 20 Dec 2008 13:56:08 +0100, Udo van den Heuvel wrote:
Udo van den Heuvel wrote:
Takashi Iwai wrote:
snd_card_new gives me the error. (I put some printk's at the right spots.)
So what's the next step?
Check that function. Did you build with the debug option?
Yes. For hda-intel it gives some extra messages but none for ice1712:
ALSA sound/core/init.c:183: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ (my own debugging) ICE1712: probe of 0000:01:09.0 failed with error -12 ALSA sound/core/init.c:183: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ (my own debugging) ICE1712: probe of 0000:01:09.0 failed with error -12
It appears that in init.c, in snd_card_new this part of code is causing the error:
else if (idx < snd_ecards_limit) { if (snd_cards_lock & (1 << idx)) err = -EBUSY; /* invalid */ printk(KERN_WARNING "busy............\n"); /*my debug */ }
So it is my card? Repeatedly rmmodding and modprobing snd_ice1712 now only gives me -12
Please advise.
It means that the given slot is already occupied, or so. Unlikely a driver error but a user-setup problem.
Check index options of all sound cards. For example, try to remove index options once, and let the system load all devices. In general, using slots option of snd module is recommended. Read ALSA-Configuration.txt for details.
Takashi
Udo
cdrom: This disc doesn't have any tracks I recognize! busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12 busy............ ALSA sound/core/init.c:193: cannot find the slot for index 1 (range 0-7), error: -16 NULLcardinit............ ICE1712: probe of 0000:01:09.0 failed with error -12
Takashi Iwai wrote:
It appears that in init.c, in snd_card_new this part of code is causing the error:
else if (idx < snd_ecards_limit) { if (snd_cards_lock & (1 << idx)) err = -EBUSY; /* invalid */ printk(KERN_WARNING "busy............\n"); /*my debug */ }
So it is my card? Repeatedly rmmodding and modprobing snd_ice1712 now only gives me -12
Please advise.
It means that the given slot is already occupied, or so. Unlikely a driver error but a user-setup problem.
Ok, that is good news!
Check index options of all sound cards. For example, try to remove index options once, and let the system load all devices.
I #'ed out all index lines in /etc/modprobe.conf and then the card immediately worked when I used rmmopd/modprobe.
In general, using slots option of snd module is recommended. Read ALSA-Configuration.txt for details.
Will have a look and give it a try. Thanks!
Udo
On Fri, Dec 19, 2008 at 05:00:43PM +0100, Udo van den Heuvel wrote:
Takashi Iwai wrote:
ICE1712: probe of 0000:01:09.0 failed with error -12 Does this mean the card is toast? What does the -12 mean?
It's ENOMEM, means it failed to allocate some memories.
Thanks for the info.
There is 4G of RAM in the box. I can boot with mem=2048000K and still get the error every like I described. (sometimes it is in error, sometimes it is OK)
Do I need to remove SIMMs to test?
What could I do?
You can test your memory in situ with memtest86+ from http://www.memtest.org
John
John Rigg wrote:
What could I do?
You can test your memory in situ with memtest86+ from http://www.memtest.org
Thanks, but I do think my RAM is OK. Kernels and other stuff build OK and the system doesn't crash.
participants (3)
-
John Rigg
-
Takashi Iwai
-
Udo van den Heuvel