@ -398,8 +398,7 @@ static int fault_1d(struct drm_gem_object *obj,
pgoff_t pgoff ;
pgoff_t pgoff ;
/* We don't use vmf->pgoff since that has the fake offset: */
/* We don't use vmf->pgoff since that has the fake offset: */
pgoff = ( ( unsigned long ) vmf - > virtual_address -
pgoff = ( vmf - > address - vma - > vm_start ) > > PAGE_SHIFT ;
vma - > vm_start ) > > PAGE_SHIFT ;
if ( omap_obj - > pages ) {
if ( omap_obj - > pages ) {
omap_gem_cpu_sync ( obj , pgoff ) ;
omap_gem_cpu_sync ( obj , pgoff ) ;
@ -409,11 +408,10 @@ static int fault_1d(struct drm_gem_object *obj,
pfn = ( omap_obj - > paddr > > PAGE_SHIFT ) + pgoff ;
pfn = ( omap_obj - > paddr > > PAGE_SHIFT ) + pgoff ;
}
}
VERB ( " Inserting %p pfn %lx, pa %lx " , vmf - > virtual_ address,
VERB ( " Inserting %p pfn %lx, pa %lx " , ( void * ) vmf - > address ,
pfn , pfn < < PAGE_SHIFT ) ;
pfn , pfn < < PAGE_SHIFT ) ;
return vm_insert_mixed ( vma , ( unsigned long ) vmf - > virtual_address ,
return vm_insert_mixed ( vma , vmf - > address , __pfn_to_pfn_t ( pfn , PFN_DEV ) ) ;
__pfn_to_pfn_t ( pfn , PFN_DEV ) ) ;
}
}
/* Special handling for the case of faulting in 2d tiled buffers */
/* Special handling for the case of faulting in 2d tiled buffers */
@ -427,7 +425,7 @@ static int fault_2d(struct drm_gem_object *obj,
struct page * pages [ 64 ] ; /* XXX is this too much to have on stack? */
struct page * pages [ 64 ] ; /* XXX is this too much to have on stack? */
unsigned long pfn ;
unsigned long pfn ;
pgoff_t pgoff , base_pgoff ;
pgoff_t pgoff , base_pgoff ;
void __user * vaddr ;
unsigned long vaddr ;
int i , ret , slots ;
int i , ret , slots ;
/*
/*
@ -447,8 +445,7 @@ static int fault_2d(struct drm_gem_object *obj,
const int m = 1 + ( ( omap_obj - > width < < fmt ) / PAGE_SIZE ) ;
const int m = 1 + ( ( omap_obj - > width < < fmt ) / PAGE_SIZE ) ;
/* We don't use vmf->pgoff since that has the fake offset: */
/* We don't use vmf->pgoff since that has the fake offset: */
pgoff = ( ( unsigned long ) vmf - > virtual_address -
pgoff = ( vmf - > address - vma - > vm_start ) > > PAGE_SHIFT ;
vma - > vm_start ) > > PAGE_SHIFT ;
/*
/*
* Actual address we start mapping at is rounded down to previous slot
* Actual address we start mapping at is rounded down to previous slot
@ -459,7 +456,7 @@ static int fault_2d(struct drm_gem_object *obj,
/* figure out buffer width in slots */
/* figure out buffer width in slots */
slots = omap_obj - > width > > priv - > usergart [ fmt ] . slot_shift ;
slots = omap_obj - > width > > priv - > usergart [ fmt ] . slot_shift ;
vaddr = vmf - > virtual_ address - ( ( pgoff - base_pgoff ) < < PAGE_SHIFT ) ;
vaddr = vmf - > address - ( ( pgoff - base_pgoff ) < < PAGE_SHIFT ) ;
entry = & priv - > usergart [ fmt ] . entry [ priv - > usergart [ fmt ] . last ] ;
entry = & priv - > usergart [ fmt ] . entry [ priv - > usergart [ fmt ] . last ] ;
@ -503,12 +500,11 @@ static int fault_2d(struct drm_gem_object *obj,
pfn = entry - > paddr > > PAGE_SHIFT ;
pfn = entry - > paddr > > PAGE_SHIFT ;
VERB ( " Inserting %p pfn %lx, pa %lx " , vmf - > virtual_ address,
VERB ( " Inserting %p pfn %lx, pa %lx " , ( void * ) vmf - > address ,
pfn , pfn < < PAGE_SHIFT ) ;
pfn , pfn < < PAGE_SHIFT ) ;
for ( i = n ; i > 0 ; i - - ) {
for ( i = n ; i > 0 ; i - - ) {
vm_insert_mixed ( vma , ( unsigned long ) vaddr ,
vm_insert_mixed ( vma , vaddr , __pfn_to_pfn_t ( pfn , PFN_DEV ) ) ;
__pfn_to_pfn_t ( pfn , PFN_DEV ) ) ;
pfn + = priv - > usergart [ fmt ] . stride_pfn ;
pfn + = priv - > usergart [ fmt ] . stride_pfn ;
vaddr + = PAGE_SIZE * m ;
vaddr + = PAGE_SIZE * m ;
}
}