[Intel-gfx] [PATCH 09/13] agp/intel: decouple more of the agp-i915 sharing
Rodrigo Vivi
rodrigo.vivi at gmail.com
Wed Jan 16 23:59:17 CET 2013
Reviewed-by: Rodrigo Vivi <rodrigo.vivi at gmail.com>
On Tue, Jan 15, 2013 at 7:26 PM, Ben Widawsky <ben at bwidawsk.net> wrote:
> Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
> ---
> drivers/char/agp/intel-gtt.c | 35 +++++++++++++++++++++--------------
> include/drm/intel-gtt.h | 11 +----------
> 2 files changed, 22 insertions(+), 24 deletions(-)
>
> diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
> index c8d9dcb..eb05eb5 100644
> --- a/drivers/char/agp/intel-gtt.c
> +++ b/drivers/char/agp/intel-gtt.c
> @@ -76,6 +76,14 @@ static struct _intel_private {
> int resource_valid;
> struct page *scratch_page;
> int refcount;
> + /* Size of memory reserved for graphics by the BIOS */
> + unsigned int stolen_size;
> + /* Total number of gtt entries. */
> + unsigned int gtt_total_entries;
> + /* Part of the gtt that is mappable by the cpu, for those chips where
> + * this is not the full gtt. */
> + unsigned int gtt_mappable_entries;
> + phys_addr_t gma_bus_addr;
> } intel_private;
>
> #define INTEL_GTT_GEN intel_private.driver->gen
> @@ -506,7 +514,7 @@ static unsigned int intel_gtt_total_entries(void)
> /* On previous hardware, the GTT size was just what was
> * required to map the aperture.
> */
> - return intel_private.base.gtt_mappable_entries;
> + return intel_private.gtt_mappable_entries;
> }
> }
>
> @@ -572,8 +580,8 @@ static int intel_gtt_init(void)
> if (ret != 0)
> return ret;
>
> - intel_private.base.gtt_mappable_entries = intel_gtt_mappable_entries();
> - intel_private.base.gtt_total_entries = intel_gtt_total_entries();
> + intel_private.gtt_mappable_entries = intel_gtt_mappable_entries();
> + intel_private.gtt_total_entries = intel_gtt_total_entries();
>
> /* save the PGETBL reg for resume */
> intel_private.PGETBL_save =
> @@ -585,10 +593,10 @@ static int intel_gtt_init(void)
>
> dev_info(&intel_private.bridge_dev->dev,
> "detected gtt size: %dK total, %dK mappable\n",
> - intel_private.base.gtt_total_entries * 4,
> - intel_private.base.gtt_mappable_entries * 4);
> + intel_private.gtt_total_entries * 4,
> + intel_private.gtt_mappable_entries * 4);
>
> - gtt_map_size = intel_private.base.gtt_total_entries * 4;
> + gtt_map_size = intel_private.gtt_total_entries * 4;
>
> intel_private.gtt = NULL;
> if (INTEL_GTT_GEN < 6 && INTEL_GTT_GEN > 2)
> @@ -605,7 +613,7 @@ static int intel_gtt_init(void)
>
> global_cache_flush(); /* FIXME: ? */
>
> - intel_private.base.stolen_size = intel_gtt_stolen_size();
> + intel_private.stolen_size = intel_gtt_stolen_size();
>
> intel_private.base.needs_dmar = USE_PCI_DMA_API && INTEL_GTT_GEN > 2;
>
> @@ -622,7 +630,7 @@ static int intel_gtt_init(void)
> pci_read_config_dword(intel_private.pcidev, I915_GMADDR,
> &gma_addr);
>
> - intel_private.base.gma_bus_addr = (gma_addr & PCI_BASE_ADDRESS_MEM_MASK);
> + intel_private.gma_bus_addr = (gma_addr & PCI_BASE_ADDRESS_MEM_MASK);
>
> return 0;
> }
> @@ -633,8 +641,7 @@ static int intel_fake_agp_fetch_size(void)
> unsigned int aper_size;
> int i;
>
> - aper_size = (intel_private.base.gtt_mappable_entries << PAGE_SHIFT)
> - / MB(1);
> + aper_size = (intel_private.gtt_mappable_entries << PAGE_SHIFT) / MB(1);
>
> for (i = 0; i < num_sizes; i++) {
> if (aper_size == intel_fake_agp_sizes[i].size) {
> @@ -778,7 +785,7 @@ static int intel_fake_agp_configure(void)
> return -EIO;
>
> intel_private.clear_fake_agp = true;
> - agp_bridge->gart_bus_addr = intel_private.base.gma_bus_addr;
> + agp_bridge->gart_bus_addr = intel_private.gma_bus_addr;
>
> return 0;
> }
> @@ -844,8 +851,8 @@ static int intel_fake_agp_insert_entries(struct agp_memory *mem,
> return -ENODEV;
>
> if (intel_private.clear_fake_agp) {
> - int start = intel_private.base.stolen_size / PAGE_SIZE;
> - int end = intel_private.base.gtt_mappable_entries;
> + int start = intel_private.stolen_size / PAGE_SIZE;
> + int end = intel_private.gtt_mappable_entries;
> intel_gtt_clear_range(start, end - start);
> intel_private.clear_fake_agp = false;
> }
> @@ -856,7 +863,7 @@ static int intel_fake_agp_insert_entries(struct agp_memory *mem,
> if (mem->page_count == 0)
> goto out;
>
> - if (pg_start + mem->page_count > intel_private.base.gtt_total_entries)
> + if (pg_start + mem->page_count > intel_private.gtt_total_entries)
> goto out_err;
>
> if (type != mem->type)
> diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
> index 3e3a166..6f53ecd 100644
> --- a/include/drm/intel-gtt.h
> +++ b/include/drm/intel-gtt.h
> @@ -4,22 +4,13 @@
> #define _DRM_INTEL_GTT_H
>
> struct intel_gtt {
> - /* Size of memory reserved for graphics by the BIOS */
> - unsigned int stolen_size;
> - /* Total number of gtt entries. */
> - unsigned int gtt_total_entries;
> - /* Part of the gtt that is mappable by the cpu, for those chips where
> - * this is not the full gtt. */
> - unsigned int gtt_mappable_entries;
> - /* Whether i915 needs to use the dmar apis or not. */
> + /* Whether i915 needs to use the dmar apis or not. */
> unsigned int needs_dmar : 1;
> /* Whether we idle the gpu before mapping/unmapping */
> unsigned int do_idle_maps : 1;
> /* Share the scratch page dma with ppgtts. */
> dma_addr_t scratch_page_dma;
> struct page *scratch_page;
> - /* needed for ioremap in drm/i915 */
> - phys_addr_t gma_bus_addr;
> } *intel_gtt_get(void);
>
> int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
> --
> 1.8.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Rodrigo Vivi
Blog: http://blog.vivi.eng.br
More information about the Intel-gfx
mailing list