At Sat, 4 Jul 2009 23:27:04 +0200, Christian Esken wrote:
Am Dienstag 30 Juni 2009 19:55:44 schrieb Matthias Diehl:
At Tue, 30 Jun 2009 16:10:45 +0200,
Matthias Diehl wrote:
hi,
i guess you dont speak german, do you? well, i'll try it in
english ;-)
i tried to install your newest x-fi "hack" in ubuntu 9.04 64bit.
Interesting enough, I don't manage to get it working under 64 ("SuSE 11.1, 64 Bit, Xen") bit either. Could you check if you also see something in your syslog (e.g. /var/log/messages) when running speaker-test ?
When I tested the same on the same hardware on "Kubuntu Karmic alpha 2, 32 bit", I get sound.
It might be an indication of a either:
- a 32/64 bit issue
- the kernel version (Kubuntu karmic ships with 2.6.30)
- Xen vs non-Xen
- something else
The 64bit issue might depend on the card model. Which model do you have? You can see in /proc/asound/cards. What about the patch below?
Takashi
--- diff --git a/sound/pci/ctxfi/cthw20k1.c b/sound/pci/ctxfi/cthw20k1.c index ad3e1d1..bab0203 100644 --- a/sound/pci/ctxfi/cthw20k1.c +++ b/sound/pci/ctxfi/cthw20k1.c @@ -1275,7 +1275,7 @@ static int hw_trn_init(struct hw *hw, const struct trn_conf *info) trnctl = 0x13; /* 32-bit, 4k-size page */ ptp_phys_low = (u32)info->vm_pgt_phys; ptp_phys_high = upper_32_bits(info->vm_pgt_phys); - if (sizeof(void *) == 8) /* 64bit address */ + if (ptp_phys_high) /* 64bit address */ trnctl |= (1 << 2); #if 0 /* Only 4k h/w pages for simplicitiy */ #if PAGE_SIZE == 8192 diff --git a/sound/pci/ctxfi/cthw20k2.c b/sound/pci/ctxfi/cthw20k2.c index 0c4db2d..269c7f1 100644 --- a/sound/pci/ctxfi/cthw20k2.c +++ b/sound/pci/ctxfi/cthw20k2.c @@ -1237,7 +1237,7 @@ static int hw_trn_init(struct hw *hw, const struct trn_conf *info) vmctl = 0x80000C0F; /* 32-bit, 4k-size page */ ptp_phys_low = (u32)info->vm_pgt_phys; ptp_phys_high = upper_32_bits(info->vm_pgt_phys); - if (sizeof(void *) == 8) /* 64bit address */ + if (ptp_phys_high) /* 64bit address */ vmctl |= (3 << 8); /* Write page table physical address to all PTPAL registers */ for (i = 0; i < 64; i++) {