之前搞了块BlackGold II Cannon的声卡,感觉音质不错。后来由于岛谷的倒闭,声卡的驱动就没有人继续维护了。岛谷之前曾发布过一个linux下的驱动,可就是基于2.4内核的,在2.6上没法编译通过。自从升级到2.6内核后,cannon就一直没有发过声。今天装上ubuntu8.04,启动是无意中看到发现启动信息中检测到了CS46xx的芯片并加载了相关的驱动程序,心里一阵狂喜,这回应该有戏了吧!
/* * BlackGold II 5.1 Cannon card - EGPIO is used to enable the external amp. */ static void amp_cannon(cs46xx_t *chip, int change) { int old = chip->amplifier; int val1 = snd_cs46xx_peekBA0(chip, BA0_EGPIOSR);
int mask = 0x0;
chip->amplifier += change; if (chip->amplifier && !old) { snd_printdd ("BlackGold II 5.1 Cannon amplifier ON\n");
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, 0x1ff); /* enable all EGPIO output */ snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR,0x0 ); /* open-drain on output */ snd_cs46xx_pokeBA0(chip, BA0_EGPIOSR, (val1 & mask) | 0x1fb ); /* status on output */