[alsa-devel] Testers wanted: New SB X-Fi driver

Takashi Iwai tiwai at suse.de
Tue Jul 21 11:53:23 CEST 2009


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++) {


More information about the Alsa-devel mailing list