At Tue, 13 Mar 2012 19:34:41 +0800, Raymond Yau wrote:
2012/3/12, Takashi Iwai tiwai@suse.de:
At Sun, 11 Mar 2012 07:37:30 +0800, Raymond Yau wrote:
2012/3/9 Takashi Iwai tiwai@suse.de:
At Fri, 9 Mar 2012 07:28:26 +0800, Raymond Yau wrote:
2012/3/8, Takashi Iwai tiwai@suse.de:
At Thu, 8 Mar 2012 12:12:33 +0800, Raymond Yau wrote: > > Since the Legacy Audio Control register is reset to default after > suspend resume cycle > > need to enable the Legacy Audio Control Bit in order to use OPL3 FM > Synth > > however it is still need to use sbiload instrument loader to reload > the instruments
Isn't it better to save and restore these PCI registers like below? It still doesn't solve the lost instrument problem, though.
I only use std.o3 and drums.o3
It seem that the playback of midi using aplaymidi can resume playback after suspend with my ymf724f
so it seem that there is no need to reload the instrument with your patch
diff --git a/include/sound/ymfpci.h b/include/sound/ymfpci.h index 444cd6b..1e35b16 100644 --- a/include/sound/ymfpci.h +++ b/include/sound/ymfpci.h @@ -366,6 +366,8 @@ struct snd_ymfpci { #ifdef CONFIG_PM u32 *saved_regs; u32 saved_ydsxgr_mode;
- u16 saved_saved_dsxg_legacy;
- u16 saved_saved_dsxg_elegacy;
Should be saved_dsxg_legacy and save_dsxg_elegacy.
Err, of course.
How can this change back port to 2.6 kernel ?
I guess the patch can be applied as is. There have been no big changes in that driver since ages.
This patch may be useless when oss is disabled in kernel 3.x
aplaymidi -l open /dev/snd/seq failed: No such file or directory
it only happen with snd-ymfpci when there oss is disabled
This is a different problem. Please don't mix up.
Is CONFIG_SND_OPL3_LIB_SEQ=y in your kernel config?
Takashi
config1.h:#define CONFIG_SND_OPL3_LIB_SEQ_MODULE 1 linux/autoconf.h:#define CONFIG_SND_OPL3_LIB_SEQ_MODULE 1
This sounds irrelevant from the probing problem.
may be specific to ymf724f which cannot enable mpu401_uart
The alsa driver does not support auto detect for fm_port and mpu_port for ymf724f
I have to specify fm_port=388 in /etc/modprobe.conf
fm_res f514d440 ctrl 2 mpu_res 00000000 ctrl2 800
but request_region() alway return zero for mpu_port 0x300, 0x330, 0x332 or 0x334
Did you check /proc/ioports?
with oss enabled , there is no mpu401 at port 16:0
Port Client name Port name 17:0 OPL3 FM synth OPL3 FM Port
I'm confused. When OSS is enabled, port 16:0 isn't availale. When OSS is disabled, port 16:0 is available?
Takashi