Bug 118285

Summary: opl3sa2 sound driver doesn't support `suspend computer'
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Frederic Roussel <fr.frasc>
Component: SoundAssignee: Takashi Iwai <tiwai>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: unspecified   
Target Milestone: ---   
Hardware: i686   
OS: SUSE Other   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Frederic Roussel 2005-09-21 20:21:00 UTC
On a Toshiba Tecra 8000, with Suse 10.0 RC??? (I did upgrade from 9.3 through
the Web)

# rpm -q powersave   
powersave-0.10.12-2
# rpm -q dbus-1
dbus-1-0.35.2-6
# rpm -q hal
hal-0.5.4-4
# uname -r
2.6.13-8-default

The opl3sa2 drive works fine from Power Up, with:
# cat /etc/modprobe.d/sound 
options snd-opl3sa2 dma1=1 dma2=1 enable=0 fm_port=0x388 index=0 irq=5 isapnp=0
midi_port=0x330 port=0x538 wss_port=0x530 sb_port=0x220
# :Yamaha OPL3-SA23
alias snd-card-0 snd-opl3sa2

When I configured the sound card, Yast doesn't allow for the value `port=0x538'
so I manually edited the modprobe file with a value acceptable by the Tecra BIOS.

The problem shows up when suspending the laptop. After waking it up the sound
system will receive errors:
ALSA write error: Input/output error

Thanks!!!
Comment 1 Takashi Iwai 2005-09-23 07:59:00 UTC
Try to remove all module options for snd-opl3sa2 except for index=0.
Comment 2 Frederic Roussel 2005-09-26 16:14:21 UTC
I tried that. Now I have:

# cat /etc/modprobe.d/sound
options snd-opl3sa2 index=0
# :Yamaha OPL3-SA23
alias snd-card-0 snd-opl3sa2

The problem is still there, when waking up from hibernate.

Also I didn't mention it in the original bug report, but before seeing the I/O
error message (I'm using mpg321 command line tool), I can hear a ratchetting
sound, so I suppose that some low level access are going out to the audio chip.
Comment 3 Takashi Iwai 2005-09-27 08:12:27 UTC
OK, then it's a bug of the driver.

Please try to reload the driver after resume, and check whether it works.
If it works, we'll have a hope to fix it :)

But, I'd like to work on this problem rather on ALSA bugtracking.  SUSE/Novell
doesn't "support" this driver officially (see "tainted" kernel message).
Comment 4 Frederic Roussel 2005-09-27 20:45:09 UTC
I tried the rmmod/modprobe ... Might not be a difficult `Oops' to track down,
but it's very likely closely tied to the Tecra8000 hardware idiosyncrasies. As
the Yast2 menus I used at first to configure the sound chip don't even know
about the Hardware addresses used on that laptop, maybe the driver makes a few
assumptions.

snd_opl3sa2: module not supported by Novell, setting U taint flag.
kobject_register failed for opl3sa2-pnpbios (-17)
 [<c01ee553>] kobject_register+0x43/0x50
 [<c025572d>] bus_add_driver+0x4d/0xa0
 [<c023240c>] pnp_register_driver+0x2c/0x60
 [<c883d72f>] alsa_card_opl3sa2_init+0x4f/0x95 [snd_opl3sa2]
 [<c0134161>] sys_init_module+0xa1/0x180
 [<c0102d1b>] sysenter_past_esp+0x54/0x79
Unable to handle kernel paging request at virtual address c8dedf80
 printing eip:
c8da8b70
*pde = 0794d067
Oops: 0000 [#1]
Modules linked in: snd_opl3sa2 uhci_hcd ipt_pkttype ipt_LOG ipt_limit
speedstep_lib freq_table snd_pcm_oss snd_mixer_oss snd_seq_midi
snd_seq_midi_event snd_opl3_synth snd_seq_instr snd_seq_midi_emul snd_seq
snd_ainstr_fm pcc_acpi sony_acpi toshiba_acpi thermal processor fan button
battery ac af_packet edd 3c574_cs pcmcia firmware_class ip6t_REJECT donauboe
irda crc_ccitt yenta_socket rsrc_nonstatic pcmcia_core ipt_REJECT ipt_state
i2c_piix4 i2c_core usbcore generic iptable_mangle iptable_nat iptable_filter
ip6table_mangle ip_conntrack ip_tables ip6table_filter ip6_tables ipv6
parport_pc lp parport snd_opl3_lib snd_hwdep snd_cs4231_lib snd_mpu401_uart
snd_rawmidi snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc dm_mod
reiserfs ide_cd cdrom piix ide_disk ide_core
CPU:    0
EIP:    0060:[<c8da8b70>]    Tainted: G     U VLI
EFLAGS: 00010282   (2.6.13-8-default) 
EIP is at snd_ctl_open+0x40/0xf0 [snd]
eax: c8dedf80   ebx: fffffff2   ecx: 0000702c   edx: c6232c54
esi: c66d4814   edi: c22da100   ebp: c73f9990   esp: c54b3f00
ds: 007b   es: 007b   ss: 0068
Process mpg321 (pid: 5884, threadinfo=c54b2000 task=c61dd0a0)
Stack: c8db4500 00000000 c22da100 c8da6147 00000000 c76be2e0 00000000 c73f9990 
       c0160f8e c22da100 ffffffe9 c22da100 c73f9990 c7fe4140 ffffffe9 c01586ae 
       c61d7384 00000000 c6fc5000 00000003 c6fc5000 c01585de c61d7384 c7fe4140 
Call Trace:
 [<c8da6147>] snd_open+0x87/0x150 [snd]
 [<c0160f8e>] chrdev_open+0x6e/0x130
 [<c01586ae>] dentry_open+0xbe/0x1d0
 [<c01585de>] filp_open+0x3e/0x50
 [<c01588e7>] sys_open+0x37/0xc0
 [<c0102d1b>] sysenter_past_esp+0x54/0x79
Code: db c8 85 f6 75 0b bb ed ff ff ff 89 d8 5b 5e 5f c3 89 f0 e8 53 e6 ff ff 85
c0 78 ea 8b 86 34 01 00 00 85 c0 74 14 bb f2 ff ff ff <83> 38 02 0f 84 83 00 00
00 ff 80 00 01 00 00 b9 d0 00 00 00 ba 

Kernel is:
kernel-default-2.6.13-8
Linux rover 2.6.13-8-default #1 Tue Sep 6 12:59:22 UTC 2005 i686 i686 i386 GNU/Linux
Comment 5 Takashi Iwai 2005-09-28 07:47:17 UTC
The Oops at removing the module was already fixed in the recent version.
Try kernel-of-the-day (KOTD) from ftp.suse.com/pub/people/mantel/kotd.
Comment 6 Frederic Roussel 2005-10-03 19:12:58 UTC
I don't have access to this laptop for the time being. As soon as I get a chance
to try, I'll keep you posted. Thanks for your support !!! 
Comment 7 Frederic Roussel 2005-10-12 19:43:07 UTC
I got the laptop back and I re-installed the final 10.0. The problem no longer
shows up :-)
I suppose that you can close that bug...

Thanks for your support !!!
Comment 8 Frederic Roussel 2005-10-12 19:44:02 UTC
Fixed in GM-10.0