|
@@ -1144,7 +1144,7 @@ static void gen8_ppgtt_insert_huge_entries(struct i915_vma *vma,
|
|
vma->page_sizes.sg & I915_GTT_PAGE_SIZE_64K &&
|
|
vma->page_sizes.sg & I915_GTT_PAGE_SIZE_64K &&
|
|
IS_ALIGNED(iter->dma, I915_GTT_PAGE_SIZE_64K) &&
|
|
IS_ALIGNED(iter->dma, I915_GTT_PAGE_SIZE_64K) &&
|
|
(IS_ALIGNED(rem, I915_GTT_PAGE_SIZE_64K) ||
|
|
(IS_ALIGNED(rem, I915_GTT_PAGE_SIZE_64K) ||
|
|
- rem >= (max - index) << PAGE_SHIFT))
|
|
|
|
|
|
+ rem >= (max - index) * I915_GTT_PAGE_SIZE))
|
|
maybe_64K = true;
|
|
maybe_64K = true;
|
|
|
|
|
|
vaddr = kmap_atomic_px(pt);
|
|
vaddr = kmap_atomic_px(pt);
|
|
@@ -1169,7 +1169,7 @@ static void gen8_ppgtt_insert_huge_entries(struct i915_vma *vma,
|
|
if (maybe_64K && index < max &&
|
|
if (maybe_64K && index < max &&
|
|
!(IS_ALIGNED(iter->dma, I915_GTT_PAGE_SIZE_64K) &&
|
|
!(IS_ALIGNED(iter->dma, I915_GTT_PAGE_SIZE_64K) &&
|
|
(IS_ALIGNED(rem, I915_GTT_PAGE_SIZE_64K) ||
|
|
(IS_ALIGNED(rem, I915_GTT_PAGE_SIZE_64K) ||
|
|
- rem >= (max - index) << PAGE_SHIFT)))
|
|
|
|
|
|
+ rem >= (max - index) * I915_GTT_PAGE_SIZE)))
|
|
maybe_64K = false;
|
|
maybe_64K = false;
|
|
|
|
|
|
if (unlikely(!IS_ALIGNED(iter->dma, page_size)))
|
|
if (unlikely(!IS_ALIGNED(iter->dma, page_size)))
|
|
@@ -1842,10 +1842,10 @@ static void gen6_ppgtt_clear_range(struct i915_address_space *vm,
|
|
u64 start, u64 length)
|
|
u64 start, u64 length)
|
|
{
|
|
{
|
|
struct gen6_hw_ppgtt *ppgtt = to_gen6_ppgtt(i915_vm_to_ppgtt(vm));
|
|
struct gen6_hw_ppgtt *ppgtt = to_gen6_ppgtt(i915_vm_to_ppgtt(vm));
|
|
- unsigned int first_entry = start >> PAGE_SHIFT;
|
|
|
|
|
|
+ unsigned int first_entry = start / I915_GTT_PAGE_SIZE;
|
|
unsigned int pde = first_entry / GEN6_PTES;
|
|
unsigned int pde = first_entry / GEN6_PTES;
|
|
unsigned int pte = first_entry % GEN6_PTES;
|
|
unsigned int pte = first_entry % GEN6_PTES;
|
|
- unsigned int num_entries = length >> PAGE_SHIFT;
|
|
|
|
|
|
+ unsigned int num_entries = length / I915_GTT_PAGE_SIZE;
|
|
const gen6_pte_t scratch_pte = ppgtt->scratch_pte;
|
|
const gen6_pte_t scratch_pte = ppgtt->scratch_pte;
|
|
|
|
|
|
while (num_entries) {
|
|
while (num_entries) {
|
|
@@ -1886,7 +1886,7 @@ static void gen6_ppgtt_insert_entries(struct i915_address_space *vm,
|
|
u32 flags)
|
|
u32 flags)
|
|
{
|
|
{
|
|
struct i915_hw_ppgtt *ppgtt = i915_vm_to_ppgtt(vm);
|
|
struct i915_hw_ppgtt *ppgtt = i915_vm_to_ppgtt(vm);
|
|
- unsigned first_entry = vma->node.start >> PAGE_SHIFT;
|
|
|
|
|
|
+ unsigned first_entry = vma->node.start / I915_GTT_PAGE_SIZE;
|
|
unsigned act_pt = first_entry / GEN6_PTES;
|
|
unsigned act_pt = first_entry / GEN6_PTES;
|
|
unsigned act_pte = first_entry % GEN6_PTES;
|
|
unsigned act_pte = first_entry % GEN6_PTES;
|
|
const u32 pte_encode = vm->pte_encode(0, cache_level, flags);
|
|
const u32 pte_encode = vm->pte_encode(0, cache_level, flags);
|
|
@@ -2456,7 +2456,7 @@ static void gen8_ggtt_insert_page(struct i915_address_space *vm,
|
|
{
|
|
{
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
gen8_pte_t __iomem *pte =
|
|
gen8_pte_t __iomem *pte =
|
|
- (gen8_pte_t __iomem *)ggtt->gsm + (offset >> PAGE_SHIFT);
|
|
|
|
|
|
+ (gen8_pte_t __iomem *)ggtt->gsm + offset / I915_GTT_PAGE_SIZE;
|
|
|
|
|
|
gen8_set_pte(pte, gen8_pte_encode(addr, level, 0));
|
|
gen8_set_pte(pte, gen8_pte_encode(addr, level, 0));
|
|
|
|
|
|
@@ -2480,7 +2480,7 @@ static void gen8_ggtt_insert_entries(struct i915_address_space *vm,
|
|
*/
|
|
*/
|
|
|
|
|
|
gtt_entries = (gen8_pte_t __iomem *)ggtt->gsm;
|
|
gtt_entries = (gen8_pte_t __iomem *)ggtt->gsm;
|
|
- gtt_entries += vma->node.start >> PAGE_SHIFT;
|
|
|
|
|
|
+ gtt_entries += vma->node.start / I915_GTT_PAGE_SIZE;
|
|
for_each_sgt_dma(addr, sgt_iter, vma->pages)
|
|
for_each_sgt_dma(addr, sgt_iter, vma->pages)
|
|
gen8_set_pte(gtt_entries++, pte_encode | addr);
|
|
gen8_set_pte(gtt_entries++, pte_encode | addr);
|
|
|
|
|
|
@@ -2499,7 +2499,7 @@ static void gen6_ggtt_insert_page(struct i915_address_space *vm,
|
|
{
|
|
{
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
gen6_pte_t __iomem *pte =
|
|
gen6_pte_t __iomem *pte =
|
|
- (gen6_pte_t __iomem *)ggtt->gsm + (offset >> PAGE_SHIFT);
|
|
|
|
|
|
+ (gen6_pte_t __iomem *)ggtt->gsm + offset / I915_GTT_PAGE_SIZE;
|
|
|
|
|
|
iowrite32(vm->pte_encode(addr, level, flags), pte);
|
|
iowrite32(vm->pte_encode(addr, level, flags), pte);
|
|
|
|
|
|
@@ -2519,7 +2519,7 @@ static void gen6_ggtt_insert_entries(struct i915_address_space *vm,
|
|
{
|
|
{
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
gen6_pte_t __iomem *entries = (gen6_pte_t __iomem *)ggtt->gsm;
|
|
gen6_pte_t __iomem *entries = (gen6_pte_t __iomem *)ggtt->gsm;
|
|
- unsigned int i = vma->node.start >> PAGE_SHIFT;
|
|
|
|
|
|
+ unsigned int i = vma->node.start / I915_GTT_PAGE_SIZE;
|
|
struct sgt_iter iter;
|
|
struct sgt_iter iter;
|
|
dma_addr_t addr;
|
|
dma_addr_t addr;
|
|
for_each_sgt_dma(addr, iter, vma->pages)
|
|
for_each_sgt_dma(addr, iter, vma->pages)
|
|
@@ -2541,8 +2541,8 @@ static void gen8_ggtt_clear_range(struct i915_address_space *vm,
|
|
u64 start, u64 length)
|
|
u64 start, u64 length)
|
|
{
|
|
{
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
- unsigned first_entry = start >> PAGE_SHIFT;
|
|
|
|
- unsigned num_entries = length >> PAGE_SHIFT;
|
|
|
|
|
|
+ unsigned first_entry = start / I915_GTT_PAGE_SIZE;
|
|
|
|
+ unsigned num_entries = length / I915_GTT_PAGE_SIZE;
|
|
const gen8_pte_t scratch_pte =
|
|
const gen8_pte_t scratch_pte =
|
|
gen8_pte_encode(vm->scratch_page.daddr, I915_CACHE_LLC, 0);
|
|
gen8_pte_encode(vm->scratch_page.daddr, I915_CACHE_LLC, 0);
|
|
gen8_pte_t __iomem *gtt_base =
|
|
gen8_pte_t __iomem *gtt_base =
|
|
@@ -2657,8 +2657,8 @@ static void gen6_ggtt_clear_range(struct i915_address_space *vm,
|
|
u64 start, u64 length)
|
|
u64 start, u64 length)
|
|
{
|
|
{
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
struct i915_ggtt *ggtt = i915_vm_to_ggtt(vm);
|
|
- unsigned first_entry = start >> PAGE_SHIFT;
|
|
|
|
- unsigned num_entries = length >> PAGE_SHIFT;
|
|
|
|
|
|
+ unsigned first_entry = start / I915_GTT_PAGE_SIZE;
|
|
|
|
+ unsigned num_entries = length / I915_GTT_PAGE_SIZE;
|
|
gen6_pte_t scratch_pte, __iomem *gtt_base =
|
|
gen6_pte_t scratch_pte, __iomem *gtt_base =
|
|
(gen6_pte_t __iomem *)ggtt->gsm + first_entry;
|
|
(gen6_pte_t __iomem *)ggtt->gsm + first_entry;
|
|
const int max_entries = ggtt_total_entries(ggtt) - first_entry;
|
|
const int max_entries = ggtt_total_entries(ggtt) - first_entry;
|
|
@@ -3398,7 +3398,7 @@ static int gen8_gmch_probe(struct i915_ggtt *ggtt)
|
|
else
|
|
else
|
|
size = gen8_get_total_gtt_size(snb_gmch_ctl);
|
|
size = gen8_get_total_gtt_size(snb_gmch_ctl);
|
|
|
|
|
|
- ggtt->vm.total = (size / sizeof(gen8_pte_t)) << PAGE_SHIFT;
|
|
|
|
|
|
+ ggtt->vm.total = (size / sizeof(gen8_pte_t)) * I915_GTT_PAGE_SIZE;
|
|
ggtt->vm.cleanup = gen6_gmch_remove;
|
|
ggtt->vm.cleanup = gen6_gmch_remove;
|
|
ggtt->vm.insert_page = gen8_ggtt_insert_page;
|
|
ggtt->vm.insert_page = gen8_ggtt_insert_page;
|
|
ggtt->vm.clear_range = nop_clear_range;
|
|
ggtt->vm.clear_range = nop_clear_range;
|
|
@@ -3456,7 +3456,7 @@ static int gen6_gmch_probe(struct i915_ggtt *ggtt)
|
|
pci_read_config_word(pdev, SNB_GMCH_CTRL, &snb_gmch_ctl);
|
|
pci_read_config_word(pdev, SNB_GMCH_CTRL, &snb_gmch_ctl);
|
|
|
|
|
|
size = gen6_get_total_gtt_size(snb_gmch_ctl);
|
|
size = gen6_get_total_gtt_size(snb_gmch_ctl);
|
|
- ggtt->vm.total = (size / sizeof(gen6_pte_t)) << PAGE_SHIFT;
|
|
|
|
|
|
+ ggtt->vm.total = (size / sizeof(gen6_pte_t)) * I915_GTT_PAGE_SIZE;
|
|
|
|
|
|
ggtt->vm.clear_range = gen6_ggtt_clear_range;
|
|
ggtt->vm.clear_range = gen6_ggtt_clear_range;
|
|
ggtt->vm.insert_page = gen6_ggtt_insert_page;
|
|
ggtt->vm.insert_page = gen6_ggtt_insert_page;
|