mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
agp/intel-gtt: export the scratch page dma address
To implement a PPGTT for drm/i915 that fully aliases the GTT, we also need to properly alias the scratch page. Reviewed-by: Ben Widawsky <[email protected]> Tested-by: Chris Wilson <[email protected]> Tested-by: Eugeni Dodonov <[email protected]> Reviewed-by: Eugeni Dodonov <[email protected]> Signed-Off-by: Daniel Vetter <[email protected]>
This commit is contained in:
parent
7e3b8737e7
commit
50a4c4a94d
2 changed files with 6 additions and 5 deletions
|
|
@ -76,7 +76,6 @@ static struct _intel_private {
|
|||
struct resource ifp_resource;
|
||||
int resource_valid;
|
||||
struct page *scratch_page;
|
||||
dma_addr_t scratch_page_dma;
|
||||
} intel_private;
|
||||
|
||||
#define INTEL_GTT_GEN intel_private.driver->gen
|
||||
|
|
@ -306,9 +305,9 @@ static int intel_gtt_setup_scratch_page(void)
|
|||
if (pci_dma_mapping_error(intel_private.pcidev, dma_addr))
|
||||
return -EINVAL;
|
||||
|
||||
intel_private.scratch_page_dma = dma_addr;
|
||||
intel_private.base.scratch_page_dma = dma_addr;
|
||||
} else
|
||||
intel_private.scratch_page_dma = page_to_phys(page);
|
||||
intel_private.base.scratch_page_dma = page_to_phys(page);
|
||||
|
||||
intel_private.scratch_page = page;
|
||||
|
||||
|
|
@ -631,7 +630,7 @@ static unsigned int intel_gtt_mappable_entries(void)
|
|||
static void intel_gtt_teardown_scratch_page(void)
|
||||
{
|
||||
set_pages_wb(intel_private.scratch_page, 1);
|
||||
pci_unmap_page(intel_private.pcidev, intel_private.scratch_page_dma,
|
||||
pci_unmap_page(intel_private.pcidev, intel_private.base.scratch_page_dma,
|
||||
PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
|
||||
put_page(intel_private.scratch_page);
|
||||
__free_page(intel_private.scratch_page);
|
||||
|
|
@ -975,7 +974,7 @@ void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries)
|
|||
unsigned int i;
|
||||
|
||||
for (i = first_entry; i < (first_entry + num_entries); i++) {
|
||||
intel_private.driver->write_entry(intel_private.scratch_page_dma,
|
||||
intel_private.driver->write_entry(intel_private.base.scratch_page_dma,
|
||||
i, 0);
|
||||
}
|
||||
readl(intel_private.gtt+i-1);
|
||||
|
|
|
|||
Loading…
Reference in a new issue