Project

General

Profile

Bug #7634

Updated by Gordon Ross over 5 years ago

Some i915 hardware cannot handle DMA below 0xff000, so the driver would normally use DMA attributes like this: 
 (Note the dma_attr_lo field) 
 <pre> 
 static ddi_dma_attr_t ppgt_dma_attr = { 
	 DMA_ATTR_V0, 
	 0xff000U,  			 /* dma_attr_addr_lo */ 
	 0xffffffffU, 			 /* dma_attr_addr_hi */ 
	 0xffffffffU, 			 /* dma_attr_count_max */ 
	 4096, 				 /* dma_attr_align */ 
	 0x1fffU, 			 /* dma_attr_burstsizes */ 
	 1, 				 /* dma_attr_minxfer */ 
	 0xffffffffU, 			 /* dma_attr_maxxfer */ 
	 0xffffffffU, 			 /* dma_attr_seg */ 
	 1, 				 /* dma_attr_sgllen, variable */ 
	 4, 				 /* dma_attr_granular */ 
	 DDI_DMA_FLAGERR, 		 /* dma_attr_flags */ 
 }; 
 </pre> 

 Unfortunately, ddi_dma_mem_alloc ddi_dma_alloc fails when dma_attr_addr_lo > 0. 
 Better DRM support on i915 needs that fixed. 

 When this is fixed, we'll undo the (temporary) fix shown in: 
 #7626 PPGTT setup problem 

Back