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.
------- 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 > |