Hi Takashi. I noticed on 2.6.16-rc4 that my MPU-401 wasn't functional, due to a simple copy & paste error in sound/isa/cs423x/cs4236.c: Index: local/sound/isa/cs423x/cs4236.c =================================================================== --- local.orig/sound/isa/cs423x/cs4236.c 2006-02-11 00:34:12.000000000 +0100 +++ local/sound/isa/cs423x/cs4236.c 2006-02-20 04:01:29.000000000 +0100 @@ -414,7 +414,7 @@ static int __devinit snd_card_cs423x_pnp } /* MPU initialization */ if (acard->mpu && mpu_port[dev] > 0) { - if (snd_cs423x_pnp_init_mpu(dev, acard->ctrl, cfg) < 0) + if (snd_cs423x_pnp_init_mpu(dev, acard->mpu, cfg) < 0) goto error; } kfree(cfg); Please apply. However, when I tested it (mpu works fine again after this) I noticed that modprobe -r snd-cs4236 didn't release things -- specifically that the fixed index=1 I have for the card failed on a subsequent modprobe since ALSA believes that index is still taken. I stuck a few printks in cs4236.c. From "snd_cs423x_unregister_all", "pnp_unregister_card_driver(&cs423x_pnpc_driver)" is indeed being called but the card driver's own remove method, snd_cs423x_pnpc_remove, is not. I started looking, but ran into the next issue again -- when snd-cs4236 is not card1 but card0, modprobe -r oopses in snd_timer_free (attached) meaning debugging this wants someone with more of an overview of recent damage done^W^Wchanges made. Given that calling pnp_unregister_card_driver() is not cs4236 specific, I assume the problem is more general. Possibly all ALSA ISA-PnP drivers. Or, given that pnp_unregister_card_driver is not an ALSA function, maybe even all ISA-PnP drivers using the card_driver interface. The more general this problem turns out, the more reason there would be for fixing this pre 2.6.16, obviously. I can test patches... Rene.