On Wed, Jun 20, 2012 at 2:38 PM, Lucas Stach <dev@xxxxxxxxxx> wrote: > 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. I know, my previous code change is provide an arch-specific dma_map_ops::set_dma_mask() and dma_set_coherent_mask() to force the dma_mask/coherent_dma_mask <=bit, but always return success. In fact the right way is return an error code when driver try to set the dma_mask >32bit. Thank you very much! >> >> > >> >> 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] > >