Re: awe64 isa pnp ALSA problems since 2.6.17

From: Takashi Iwai
Date: Mon Jul 03 2006 - 13:27:29 EST


At Fri, 30 Jun 2006 22:57:03 +0200,
Santiago Garcia Mantinan wrote:
>
> Hi!
>
> I'm experiencing some problems on 2.6.17 that I didn't have on 2.6.16, most
> noticeable are the messages when alsa is loaded:
>
> setup_irq: irq handler mismatch
> <c012387b> setup_irq+0xe5/0xfb <c01bfc95> pnp_test_handler+0x0/0x6
> <c01238fc> request_irq+0x6b/0x8b <c01bfe55> pnp_check_irq+0xb8/0x12f
> <c01bfc95> pnp_test_handler+0x0/0x6 <c01c083b> pnp_assign_irq+0xd7/0xf4
> <c01c0acd> pnp_assign_resources+0x1bc/0x23a <c01c0bac>
> pnp_auto_config_dev+0x6
> 1/0x8f
> <c01c0bf9> pnp_activate_dev+0x1f/0x46 <d08de81b>
> snd_sb16_pnp_detect+0x1ae/0x3
> 4f [snd_sbawe]
> <c01bf3d5> card_probe+0xb1/0x104 <c01bf4a8>
> pnp_register_card_driver+0x80/0x90
> <d085a070> alsa_card_sb16_init+0x70/0xae [snd_sbawe] <c01223ba>
> sys_init_modul
> e+0x1103/0x1272
> <c01024b3> syscall_call+0x7/0xb
> pnp: Device 00:01.00 activated.
> pnp: Device 00:01.02 activated.
>
> before this messages isapnp is initialiced without any problem with this
> messages:
>
> isapnp: Scanning for PnP cards...
> pnp: SB audio device quirk - increasing port range
> pnp: AWE32 quirk - adding two ports
> isapnp: Card 'Creative SB AWE64 PnP'
> isapnp: 1 Plug & Play card detected total
>
> As I said this is only happening on 2.6.17 and not on 2.6.16, also some
> programs still using the oss api are sounding really bad now (I noticed this
> on skype, but not on kiax or mpg123).
>
> Machine is a pentium III with a via apollo mvp3 chipset.
>
> I don't know what else to add, don't hesitate to ask for any other details
> or for any tests you'd like.

The patch should fix the error above.


Takashi

--- a/include/sound/initval.h Fri Jun 23 15:10:18 2006 +0200
+++ b/include/sound/initval.h Fri Jun 23 15:13:57 2006 +0200
@@ -62,7 +62,8 @@ static int snd_legacy_find_free_irq(int
{
while (*irq_table != -1) {
if (!request_irq(*irq_table, snd_legacy_empty_irq_handler,
- SA_INTERRUPT, "ALSA Test IRQ", (void *) irq_table)) {
+ SA_INTERRUPT | SA_PROBEIRQ, "ALSA Test IRQ",
+ (void *) irq_table)) {
free_irq(*irq_table, (void *) irq_table);
return *irq_table;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/