Mailinglist Archive: opensuse-bugs (6406 mails)

< Previous Next >
[Bug 233344] No sound from Crystal Audio sound card
  • From: bugzilla_noreply@xxxxxxxxxx
  • Date: Sun, 8 Apr 2007 19:59:32 -0600 (MDT)
  • Message-id: <20070409015932.A0C9CFF8@xxxxxxxxxxxxxxxxxxxxxx>
https://bugzilla.novell.com/show_bug.cgi?id=233344





------- Comment #20 from VladCodrea@xxxxxxxxxxxxxxx  2007-04-08 19:59 MST -------
Created an attachment (id=129772)
 --> (https://bugzilla.novell.com/attachment.cgi?id=129772&action=view)
Dmesg with printk's in drivers/pnp/manager.c and drivers/pnp/pnpbios/rsparser.c

I think I've found the problem: the sound card appears as two PNP devices
instead of a single device.

The first PNP device is 00:11 and contains the soundcard's port, mpu_port,
fm_port, irq, dma1 and dma2:

# cat /sys/devices/pnp0/00:11/resources
state = active
io 0x530-0x537
io 0x388-0x38b
io 0x220-0x22f
irq 5
dma 1
dma 0

The second PNP device is 00:15 and contains the soundcard's cport:
# cat /sys/devices/pnp0/00:15/resources
state = active
io 0xf00-0xf07

Linux's PnPBIOS parser
(drivers/pnp/pnpbios/rsparser.c:pnpbios_parse_resource_option_data) gets
confused when encountering these devices:

PnPBIOS: Unknown tag '0x82' in pnpbios_parse_resource_option_data(), length
'6': 82 6 0 57 53 53
PM: Adding info for pnp:00:11
PnPBIOS: Unknown tag '0x82' in pnpbios_parse_resource_option_data(), length
'4': 82 4 0 43
PM: Adding info for pnp:00:15

The hexadecimal digits 57 53 53 stand for "WSS", while the hexadecimal digit 43
stands for "C".

The cs4232-pnpbios driver fails at cs4236.c:snd_cs423x_pnp_init_wss() when
running:

err = pnp_manual_config_dev(pdev, cfg, 0);

The err has a value of -EINVAL. I debugged
drivers/pnp/manager.c:pnp_manual_config_dev() and saw that the condition (!dev
|| !res) evaluates to TRUE.

The cs4232-pnpbios driver then fails again at
cs4236.c:snd_cs423x_pnp_init_wss() when running:

err = pnp_activate_dev(pdev);

The err has a value of -EINVAL. I debugged
drivers/pnp/manager.c:pnp_activate_dev() and saw that (!dev) evaluates to TRUE,
so apparently the device is null.

To summarize: WSS and C-port aren't recorded by Linux's PnPBIOS parser, which
causes the WSS initialization to fail in the cs4232-pnpbios driver.

Any ideas how to fix this? Thanks!


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.

< Previous Next >
List Navigation