* Re: Emu10k1 SPDIF passthru doesn't work if CONFIG_NOHIGHMEM is not enabled [not found] <1014586494.1518.23.camel@skyblade> @ 2002-02-26 15:32 ` German Gomez Garcia 2002-02-27 14:58 ` [Emu10k1-devel] " Rui Sousa 0 siblings, 1 reply; 9+ messages in thread From: German Gomez Garcia @ 2002-02-26 15:32 UTC (permalink / raw) To: José Carlos Monteiro Cc: linux-kernel, emu10k1-devel, Steve Stavropoulos, Daniel Bertrand, dledford On 24 Feb 2002, José Carlos Monteiro wrote: > Hi! > After some more careful testing, I was able to identify the exact moment > when the changes in the Linux kernel broke SPDIF passthru of Emu10k1 > cards. I tested all the pre-patches between kernels 2.4.12 and 2.4.13 > and I found that kernel 2.4.13-pre2 was the one that broke it. Up until > 2.4.13-pre1, everything works fine. From 2.4.13-pre2 on, passthru sound > is broken (if kernel option CONFIG_HIGHMEM4G or CONFIG_HIGHMEM64G is > used). > > According to the kernel Changelog, it appears that one of these changes > was the responsible for it: > > 2.4.13-pre2: > - Alan Cox: more merging > - Ben Fennema: UDF module license > - Jeff Mahoney: reiserfs endian safeness > - Chris Mason: reiserfs O_SYNC/fsync performance improvements > - Jean Tourrilhes: wireless extension update > - Joerg Reuter: AX.25 updates > - David Miller: 64-bit DMA interfaces Does the emu10k1 driver support the new DMA interface? I've downloaded the patch-2.4.13-pre1-pre2.bz2 from ftp://ftp.kernel.org/pub/linux/kernel/v2.4/testing/incr/ and checking it, it seems that the BIG change was the inclussion of David Miller 64-bit DMA. Does emu10k1 use DMA for SPDIF output? the main change affecting dma when HIGHMEM is enabled is in types.h, that define dma_addr_t as a u64 instead of u32, so does the hardware in the live or the driver (or whatever :-) support that? Best regards, - german ------------------------------------------------------------------------- German Gomez Garcia | Send email with "SEND GPG KEY" as subject <german@piraos.com> | to receive my GnuPG public key. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if CONFIG_NOHIGHMEM is not enabled 2002-02-26 15:32 ` Emu10k1 SPDIF passthru doesn't work if CONFIG_NOHIGHMEM is not enabled German Gomez Garcia @ 2002-02-27 14:58 ` Rui Sousa 2002-02-27 16:02 ` [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if Alan Cox 0 siblings, 1 reply; 9+ messages in thread From: Rui Sousa @ 2002-02-27 14:58 UTC (permalink / raw) To: German Gomez Garcia Cc: José Carlos Monteiro, linux-kernel, emu10k1-devel, Steve Stavropoulos, Daniel Bertrand, dledford On Tue, 26 Feb 2002, German Gomez Garcia wrote: > On 24 Feb 2002, José Carlos Monteiro wrote: > > > Hi! > > After some more careful testing, I was able to identify the exact moment > > when the changes in the Linux kernel broke SPDIF passthru of Emu10k1 > > cards. I tested all the pre-patches between kernels 2.4.12 and 2.4.13 > > and I found that kernel 2.4.13-pre2 was the one that broke it. Up until > > 2.4.13-pre1, everything works fine. From 2.4.13-pre2 on, passthru sound > > is broken (if kernel option CONFIG_HIGHMEM4G or CONFIG_HIGHMEM64G is > > used). > > > > According to the kernel Changelog, it appears that one of these changes > > was the responsible for it: > > > > 2.4.13-pre2: > > - Alan Cox: more merging > > - Ben Fennema: UDF module license > > - Jeff Mahoney: reiserfs endian safeness > > - Chris Mason: reiserfs O_SYNC/fsync performance improvements > > - Jean Tourrilhes: wireless extension update > > - Joerg Reuter: AX.25 updates > > - David Miller: 64-bit DMA interfaces > > Does the emu10k1 driver support the new DMA interface? I've > downloaded the patch-2.4.13-pre1-pre2.bz2 from We allocate memory with pci_alloc_consistent() which according to DMA-mapping.txt assures 32-bits PCI addresses. On top of that we set a dma_mask (with pci_set_dma_mask) of 29 bits (512Mib). > ftp://ftp.kernel.org/pub/linux/kernel/v2.4/testing/incr/ > > and checking it, it seems that the BIG change was the inclussion of > David Miller 64-bit DMA. Does emu10k1 use DMA for SPDIF output? It uses DMA for all sound input/output. > the > main change affecting dma when HIGHMEM is enabled is in types.h, that > define dma_addr_t as a u64 instead of u32, so does the hardware in the > live or the driver (or whatever :-) support that? > > Best regards, > > - german The most bizzare is that in a machine with 192Mib of memory but with a kernel compiled with HIGHMEM support I see the same type of problems. Rui Sousa ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if 2002-02-27 14:58 ` [Emu10k1-devel] " Rui Sousa @ 2002-02-27 16:02 ` Alan Cox 2002-02-28 19:50 ` Rui Sousa 0 siblings, 1 reply; 9+ messages in thread From: Alan Cox @ 2002-02-27 16:02 UTC (permalink / raw) To: Rui Sousa Cc: German Gomez Garcia, José Carlos Monteiro, linux-kernel, emu10k1-devel, Steve Stavropoulos, Daniel Bertrand, dledford > The most bizzare is that in a machine with 192Mib of memory but with a=20 > kernel compiled with HIGHMEM support I see the same type of problems. Change of size in a structure or type ? ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if 2002-02-27 16:02 ` [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if Alan Cox @ 2002-02-28 19:50 ` Rui Sousa 2002-02-28 22:33 ` Jeff Garzik 2002-03-01 1:07 ` Alan Cox 0 siblings, 2 replies; 9+ messages in thread From: Rui Sousa @ 2002-02-28 19:50 UTC (permalink / raw) To: Alan Cox Cc: German Gomez Garcia, José Carlos Monteiro, linux-kernel, emu10k1-devel, Steve Stavropoulos, Daniel Bertrand, dledford On Wed, 27 Feb 2002, Alan Cox wrote: It's true dma_addr_t does change from u32 to u64 and we do thinks like: (32 bit pci register) = cpu_to_le32(dma_handle) What is the correct way of doing this? (32 bit pci register) = cpu_to_le32((u32)dma_handle) ? Rui Sousa > > The most bizzare is that in a machine with 192Mib of memory but with a=20 > > kernel compiled with HIGHMEM support I see the same type of problems. > > Change of size in a structure or type ? > > _______________________________________________ > Emu10k1-devel mailing list > Emu10k1-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emu10k1-devel > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if 2002-02-28 19:50 ` Rui Sousa @ 2002-02-28 22:33 ` Jeff Garzik 2002-03-01 1:07 ` Alan Cox 1 sibling, 0 replies; 9+ messages in thread From: Jeff Garzik @ 2002-02-28 22:33 UTC (permalink / raw) To: Rui Sousa Cc: Alan Cox, German Gomez Garcia, José Carlos Monteiro, linux-kernel, emu10k1-devel, Steve Stavropoulos, Daniel Bertrand, dledford Rui Sousa wrote: > > On Wed, 27 Feb 2002, Alan Cox wrote: > > It's true dma_addr_t does change from u32 to u64 and we do thinks like: > > (32 bit pci register) = cpu_to_le32(dma_handle) > > What is the correct way of doing this? > > (32 bit pci register) = cpu_to_le32((u32)dma_handle) If you only have 32 bits, then I presume 64-bit DMA isn't supported. So, (1) never pass more than 0xffffffff to pci_set_dma_mask, and (2) just truncate dma_addr_t (addr & 0xffffffff) so that you only read the low 32-bits, always. Jeff -- Jeff Garzik | "UNIX enhancements aren't." Building 1024 | -- says /usr/games/fortune MandrakeSoft | ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if 2002-02-28 19:50 ` Rui Sousa 2002-02-28 22:33 ` Jeff Garzik @ 2002-03-01 1:07 ` Alan Cox 2002-03-01 1:03 ` David S. Miller 1 sibling, 1 reply; 9+ messages in thread From: Alan Cox @ 2002-03-01 1:07 UTC (permalink / raw) To: Rui Sousa Cc: Alan Cox, German Gomez Garcia, José Carlos Monteiro, linux-kernel, emu10k1-devel, Steve Stavropoulos, Daniel Bertrand, dledford > It's true dma_addr_t does change from u32 to u64 and we do thinks like: > (32 bit pci register) = cpu_to_le32(dma_handle) > > What is the correct way of doing this? > (32 bit pci register) = cpu_to_le32((u32)dma_handle) The cast befor ethe cpu_to_ is safe if its 32bit I/O only. Maybe we should have cpu_to_le_dma_addr_t 8) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if 2002-03-01 1:07 ` Alan Cox @ 2002-03-01 1:03 ` David S. Miller 2002-03-01 1:20 ` Daniel Bertrand 2002-03-02 6:38 ` 64bit dma_addr_t (was: Emu10k1 SPDIF ...) Daniel Bertrand 0 siblings, 2 replies; 9+ messages in thread From: David S. Miller @ 2002-03-01 1:03 UTC (permalink / raw) To: alan Cc: rui.p.m.sousa, german, jcm, linux-kernel, emu10k1-devel, steve, d.bertrand, dledford From: Alan Cox <alan@lxorguk.ukuu.org.uk> Date: Fri, 1 Mar 2002 01:07:27 +0000 (GMT) The cast befor ethe cpu_to_ is safe if its 32bit I/O only. Maybe we should have cpu_to_le_dma_addr_t 8) Actually, the cast to 32-bit is safe if you've set your DMA mask properly :-) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if 2002-03-01 1:03 ` David S. Miller @ 2002-03-01 1:20 ` Daniel Bertrand 2002-03-02 6:38 ` 64bit dma_addr_t (was: Emu10k1 SPDIF ...) Daniel Bertrand 1 sibling, 0 replies; 9+ messages in thread From: Daniel Bertrand @ 2002-03-01 1:20 UTC (permalink / raw) To: David S. Miller Cc: alan, Rui Sousa, german, jcm, linux-kernel, emu10k1-devel, steve, d.bertrand, dledford Hi, Looks like the bug is from pushing the 64bit dma_handle on a 32bit va_arg list. Its fixed in CVS, and at least one person has reported success. On Thu, 28 Feb 2002, David S. Miller wrote: > From: Alan Cox <alan@lxorguk.ukuu.org.uk> > Date: Fri, 1 Mar 2002 01:07:27 +0000 (GMT) > > The cast befor ethe cpu_to_ is safe if its 32bit I/O only. Maybe we should > have cpu_to_le_dma_addr_t 8) > > Actually, the cast to 32-bit is safe if you've set your DMA mask > properly :-) > -- Daniel Bertrand ^ permalink raw reply [flat|nested] 9+ messages in thread
* 64bit dma_addr_t (was: Emu10k1 SPDIF ...) 2002-03-01 1:03 ` David S. Miller 2002-03-01 1:20 ` Daniel Bertrand @ 2002-03-02 6:38 ` Daniel Bertrand 1 sibling, 0 replies; 9+ messages in thread From: Daniel Bertrand @ 2002-03-02 6:38 UTC (permalink / raw) To: David S. Miller; +Cc: linux-kernel Hi, Sorry to beat a dead horse, but wouldn't it be better if sizes didn't change within the same CPU arch? I don't see how binary-only modules can ever work reliably if the size of types change depending on people's .config file. (not that I use any binary-only modules :-). Is this a common thing done in the kernel? For dma_addr_t, why not just have it always be 64bit? On Thu, 28 Feb 2002, David S. Miller wrote: > From: Alan Cox <alan@lxorguk.ukuu.org.uk> > Date: Fri, 1 Mar 2002 01:07:27 +0000 (GMT) > > The cast befor ethe cpu_to_ is safe if its 32bit I/O only. Maybe we should > have cpu_to_le_dma_addr_t 8) > > Actually, the cast to 32-bit is safe if you've set your DMA mask > properly :-) > -- Daniel Bertrand ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2002-03-02 7:05 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1014586494.1518.23.camel@skyblade>
2002-02-26 15:32 ` Emu10k1 SPDIF passthru doesn't work if CONFIG_NOHIGHMEM is not enabled German Gomez Garcia
2002-02-27 14:58 ` [Emu10k1-devel] " Rui Sousa
2002-02-27 16:02 ` [Emu10k1-devel] Re: Emu10k1 SPDIF passthru doesn't work if Alan Cox
2002-02-28 19:50 ` Rui Sousa
2002-02-28 22:33 ` Jeff Garzik
2002-03-01 1:07 ` Alan Cox
2002-03-01 1:03 ` David S. Miller
2002-03-01 1:20 ` Daniel Bertrand
2002-03-02 6:38 ` 64bit dma_addr_t (was: Emu10k1 SPDIF ...) Daniel Bertrand
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.