Messages in this thread Patch in this message |  | | Date | Sat, 31 Aug 2002 18:09:03 +0200 (CEST) | From | Patrick McHardy <> | Subject | i810_audio problems + patch |
| |
Hi Alan, somewhere between 2.4.18 and 2.4.19 i810_audio.c was changed to exclude softmodems from initilization. Since then, i cannot use the mixer anymore and also 44.1khz rates don't work anymore. Reverting the change made these things work again. I don't know if it's right what i did, could you please have a look at the attached patch ? For completeness, here is the output of dmesg and lspci -vv:
non-working: i810: Intel 440MX found at IO 0x8400 and 0x8200, IRQ 5 i810_audio: Audio Controller supports 2 channels. ac97_codec: AC97 Audio codec, id: 0x4358:0x5442 (Unknown) i810_audio: codec 0 is a softmodem - skipping.
working: i810: Intel 440MX found at IO 0x8400 and 0x8200, IRQ 5 i810_audio: Audio Controller supports 2 channels. ac97_codec: AC97 Audio codec, id: 0x4358:0x5442 (Unknown) i810_audio: AC'97 codec 0 Unable to map surround DAC's (or DAC's not present), total channels = 2
00:00.1 Multimedia audio controller: Intel Corp. 82440MX AC'97 Audio Controller Subsystem: Samsung Electronics Co Ltd: Unknown device 2325 Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 0 Interrupt: pin B routed to IRQ 5 Region 0: I/O ports at 8200 [size=256] Region 1: I/O ports at 8400 [size=64]
Thanks & bye, Patrick diff -urN linux-2.4.20-pre4-clean/drivers/sound/i810_audio.c linux-2.4.20-pre4/drivers/sound/i810_audio.c --- linux-2.4.20-pre4-clean/drivers/sound/i810_audio.c 2002-08-29 01:56:03.000000000 +0200 +++ linux-2.4.20-pre4/drivers/sound/i810_audio.c 2002-08-31 17:44:36.000000000 +0200 @@ -2697,14 +2697,6 @@ break; } - codec->codec_write(codec, AC97_EXTENDED_MODEM_ID, 0L); - if(codec->codec_read(codec, AC97_EXTENDED_MODEM_ID)) - { - printk(KERN_WARNING "i810_audio: codec %d is a softmodem - skipping.\n", num_ac97); - kfree(codec); - continue; - } - card->ac97_features = eid; /* Now check the codec for useful features to make up for |  |