sound driver problem for CyberAlladin

From: 吉山 晃 (yosshy@debian.or.jp)
Date: Sat May 24 2003 - 17:13:48 EST


Hello all,

I have a problem for using Linux 2.4.2x on my laptop, and it may happen on
some other laptops.

My laptop has PemtiumIII-M 933Hz CPU and CyberAlladin(XP?) chipset
(contains an Ali5451 sound chip). If it ran Linux with AC-powered, system
hangs up on loading trident.o. But, If without AC-powered, system doesn't
hang up. (good)

I think the different is CPU clocks. I guessed that PentiumIII-M ran low
clock rate without AC-powered, so delaying code works fine. But if with
AC-powered, that doesn't works fine and takes hanging-up.

(messages on fine cases:)
Trident 4DWave/SiS 7018/ALi 5451,Tvia CyberPro PCI Audio, version 0.14.10h, 16:45:46 May 13 2003
ALi Audio Accelerator found at IO 0xe000, IRQ 11
ac97_codec: AC97 Audio codec, id: ADS116(Unknown)
ac97_codec: AC97 Audio codec, id: ADS116(Unknown)

(messages on bad cases:)
Trident 4DWave/SiS 7018/ALi 5451,Tvia CyberPro PCI Audio, version 0.14.10h, 16:45:46 May 13 2003
ALi Audio Accelerator found at IO 0xe000, IRQ 11
(and system freezes)

I tried to find the problem point with printk(). It seems below:

---
static int ali_reset_5451(struct trident_card *card)
{
struct pci_dev *pci_dev = NULL;
unsigned int dwVal;
unsigned short wCount, wReg;

pci_dev = pci_find_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, pci_dev);
if (pci_dev == NULL)
return -1;

pci_read_config_dword(pci_dev, 0x7c, &dwVal);
pci_write_config_dword(pci_dev, 0x7c, dwVal | 0x08000000);
/* the last working printk() */
udelay(5000);
/* non-working printk() */
pci_read_config_dword(pci_dev, 0x7c, &dwVal);
pci_write_config_dword(pci_dev, 0x7c, dwVal & 0xf7ffffff);
udelay(5000);

pci_dev = card->pci_dev;
if (pci_dev == NULL)
return -1;
---

Any advice? Thank you.

A.Yoshiyama <yosshy@xxxxxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/