[alsa-devel] /dev/snd/seq unavailable with opl3 (Re: [RFC] ymfpci - re-enable legacy audio after suspend resume)

Raymond Yau superquad.vortex2 at gmail.com
Tue Mar 13 12:34:41 CET 2012


2012/3/12, Takashi Iwai <tiwai at suse.de>:
> At Sun, 11 Mar 2012 07:37:30 +0800,
> Raymond Yau wrote:
>>
>> 2012/3/9 Takashi Iwai <tiwai at suse.de>:
>> > At Fri, 9 Mar 2012 07:28:26 +0800,
>> > Raymond Yau wrote:
>> >>
>> >> 2012/3/8, Takashi Iwai <tiwai at 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

http://thread.gmane.org/gmane.linux.alsa.devel/6363

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

with oss enabled , there is no mpu401 at port 16:0

Port    Client name                      Port name
 17:0    OPL3 FM synth                    OPL3 FM Port


More information about the Alsa-devel mailing list