Am Mittwoch, den 20.06.2012, 14:12 +0800 schrieb Huacai Chen: > On Tue, Jun 19, 2012 at 3:19 PM, Lucas Stach <dev@xxxxxxxxxx> wrote: > > Hello Huacai, > > > > Am Dienstag, den 19.06.2012, 14:50 +0800 schrieb Huacai Chen: > >> 1, Use 32-bit DMA as a workaround (Loongson has a hardware bug that it > >> doesn't support DMA address above 4GB). > > > > This is a bug of your platform/CPU and should be fixed at a lower level, > > not in every driver. While radeon might be the only device using 40bit > > DMA right know, it is very well possible that other devices pop up in > > the future. So please fix your platform code to disallow >32bit DMA. > > Hi, Lucas > I have fixed my platform code to disallow >32bit DMA. This method fix > the DMA problems in SATA and sound card, but fails on radeon (display > is OK, but accerlaration is unusable), because need_dma32 not only > affect dma_mask/coherent_dma_mask, but also affect th gfp_flags of > ttm_get_pages(). Platform code fixes cannot solve the problem of > ttm_get_pages(), could you please give me some suggestions? Thank you. If your platform does disallow >32bit DMA masks, radeon should already do the right thing and set need_dma32 to true. Have a look at radeon_device.c:783 Make sure you really disallow >32bit DMA masks, not just prefer <=32bit masks. > > > > >> 2, Read vga bios offered by system firmware. > >> 3, Handle io prot correctly for MIPS. > > > > This seems good to me, but you should really split this out in a > > separate TTM patch. > > > >> 4, Don't use swiotlb on Loongson machines (when use swiotlb, GPU reset > >> occurs at resume from suspend). > >> > > While SWIOTLB might not be a common setup, simply ignoring it because it > > doesn't work on your platform is the wrong thing to do. Could you please > > try to root-cause the issue? > > [snip]