At Tue, 7 Aug 2007 18:54:02 +0100, Ralf Baechle wrote: > > On Tue, Aug 07, 2007 at 11:01:57PM +0900, Atsushi Nemoto wrote: > > > On Tue, 7 Aug 2007 10:18:04 +0400, "Dajie Tan" <jiankemeng@xxxxxxxxx> wrote: > > > static inline unsigned long virt_to_phys(volatile const void *address) > > > { > > > - return (unsigned long)address - PAGE_OFFSET + PHYS_OFFSET; > > > + return ((unsigned long)address & 0x1fffffff) + PHYS_OFFSET; > > > } > > > > This makes virt_to_phys() a bit slower, and more importantly, breaks > > 64-bit kernel. > > It's ALSA that is doing funny things here so there is no point in fixing > the arch code to work for ALSA. Yep, but OTOH, the arch code doesn't provide a proper standard way to mmap the pages allocated via dma_alloc_coherent(). That's the missing piece, especially on mips and sparc. ARM has already one. My wish is implementing dma_mmap_coherent() on all architectures, so that the driver can use it safely without messy ifdefs. Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel