mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-26 04:25:27 +08:00
drm/i915: Add a few missed bits to the mm
This should really have been added in BDW integration, as well as:
commit 93bd8649db
Author: Ben Widawsky <ben@bwidawsk.net>
Date: Tue Jul 16 16:50:06 2013 -0700
drm/i915: Put the mm in the parent address space
It didn't really matter before, but it will in the future.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
d595bd4bbd
commit
686e1f6f87
@ -322,6 +322,8 @@ static void gen8_ppgtt_cleanup(struct i915_address_space *vm)
|
|||||||
container_of(vm, struct i915_hw_ppgtt, base);
|
container_of(vm, struct i915_hw_ppgtt, base);
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
|
drm_mm_takedown(&vm->mm);
|
||||||
|
|
||||||
for (i = 0; i < ppgtt->num_pd_pages ; i++) {
|
for (i = 0; i < ppgtt->num_pd_pages ; i++) {
|
||||||
if (ppgtt->pd_dma_addr[i]) {
|
if (ppgtt->pd_dma_addr[i]) {
|
||||||
pci_unmap_page(ppgtt->base.dev->pdev,
|
pci_unmap_page(ppgtt->base.dev->pdev,
|
||||||
@ -385,6 +387,8 @@ static int gen8_ppgtt_init(struct i915_hw_ppgtt *ppgtt, uint64_t size)
|
|||||||
ppgtt->base.clear_range = gen8_ppgtt_clear_range;
|
ppgtt->base.clear_range = gen8_ppgtt_clear_range;
|
||||||
ppgtt->base.insert_entries = gen8_ppgtt_insert_entries;
|
ppgtt->base.insert_entries = gen8_ppgtt_insert_entries;
|
||||||
ppgtt->base.cleanup = gen8_ppgtt_cleanup;
|
ppgtt->base.cleanup = gen8_ppgtt_cleanup;
|
||||||
|
ppgtt->base.start = 0;
|
||||||
|
ppgtt->base.total = ppgtt->num_pt_pages * GEN8_PTES_PER_PAGE * PAGE_SIZE;
|
||||||
|
|
||||||
BUG_ON(ppgtt->num_pd_pages > GEN8_LEGACY_PDPS);
|
BUG_ON(ppgtt->num_pd_pages > GEN8_LEGACY_PDPS);
|
||||||
|
|
||||||
@ -636,6 +640,8 @@ static int gen6_ppgtt_init(struct i915_hw_ppgtt *ppgtt)
|
|||||||
ppgtt->base.insert_entries = gen6_ppgtt_insert_entries;
|
ppgtt->base.insert_entries = gen6_ppgtt_insert_entries;
|
||||||
ppgtt->base.cleanup = gen6_ppgtt_cleanup;
|
ppgtt->base.cleanup = gen6_ppgtt_cleanup;
|
||||||
ppgtt->base.scratch = dev_priv->gtt.base.scratch;
|
ppgtt->base.scratch = dev_priv->gtt.base.scratch;
|
||||||
|
ppgtt->base.start = 0;
|
||||||
|
ppgtt->base.total = GEN6_PPGTT_PD_ENTRIES * I915_PPGTT_PT_ENTRIES * PAGE_SIZE;
|
||||||
ppgtt->pt_pages = kcalloc(ppgtt->num_pd_entries, sizeof(struct page *),
|
ppgtt->pt_pages = kcalloc(ppgtt->num_pd_entries, sizeof(struct page *),
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
if (!ppgtt->pt_pages)
|
if (!ppgtt->pt_pages)
|
||||||
|
Loading…
Reference in New Issue
Block a user