summaryrefslogtreecommitdiffstats
path: root/drivers/char/agp
diff options
context:
space:
mode:
authorBen Widawsky <ben@bwidawsk.net>2013-01-24 17:45:00 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-01-31 05:50:07 -0500
commita54c0c279f3864171fe53c66e769d5a137c5c651 (patch)
tree08d17841b72e39afdc4ce601f46770824c12fe8a /drivers/char/agp
parentbaa09f5fd8a6d033ec075355dda99a65b7f6a0f3 (diff)
drm/i915: remove intel_gtt structure
With the probe call in our dispatch table, we can now cut away the last three remaining members in the intel_gtt shared struct and so remove it completely. v2: Rebased on top of Daniel's series Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> [danvet: bikeshed commit message a bit.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/char/agp')
-rw-r--r--drivers/char/agp/intel-gtt.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
index ff5f3483e8ea..d8e7e6c9114e 100644
--- a/drivers/char/agp/intel-gtt.c
+++ b/drivers/char/agp/intel-gtt.c
@@ -60,7 +60,6 @@ struct intel_gtt_driver {
60}; 60};
61 61
62static struct _intel_private { 62static struct _intel_private {
63 struct intel_gtt base;
64 const struct intel_gtt_driver *driver; 63 const struct intel_gtt_driver *driver;
65 struct pci_dev *pcidev; /* device one */ 64 struct pci_dev *pcidev; /* device one */
66 struct pci_dev *bridge_dev; 65 struct pci_dev *bridge_dev;
@@ -80,6 +79,13 @@ static struct _intel_private {
80 /* Whether i915 needs to use the dmar apis or not. */ 79 /* Whether i915 needs to use the dmar apis or not. */
81 unsigned int needs_dmar : 1; 80 unsigned int needs_dmar : 1;
82 phys_addr_t gma_bus_addr; 81 phys_addr_t gma_bus_addr;
82 /* Size of memory reserved for graphics by the BIOS */
83 unsigned int stolen_size;
84 /* Total number of gtt entries. */
85 unsigned int gtt_total_entries;
86 /* Part of the gtt that is mappable by the cpu, for those chips where
87 * this is not the full gtt. */
88 unsigned int gtt_mappable_entries;
83} intel_private; 89} intel_private;
84 90
85#define INTEL_GTT_GEN intel_private.driver->gen 91#define INTEL_GTT_GEN intel_private.driver->gen
@@ -510,7 +516,7 @@ static unsigned int intel_gtt_total_entries(void)
510 /* On previous hardware, the GTT size was just what was 516 /* On previous hardware, the GTT size was just what was
511 * required to map the aperture. 517 * required to map the aperture.
512 */ 518 */
513 return intel_private.base.gtt_mappable_entries; 519 return intel_private.gtt_mappable_entries;
514 } 520 }
515} 521}
516 522
@@ -576,8 +582,8 @@ static int intel_gtt_init(void)
576 if (ret != 0) 582 if (ret != 0)
577 return ret; 583 return ret;
578 584
579 intel_private.base.gtt_mappable_entries = intel_gtt_mappable_entries(); 585 intel_private.gtt_mappable_entries = intel_gtt_mappable_entries();
580 intel_private.base.gtt_total_entries = intel_gtt_total_entries(); 586 intel_private.gtt_total_entries = intel_gtt_total_entries();
581 587
582 /* save the PGETBL reg for resume */ 588 /* save the PGETBL reg for resume */
583 intel_private.PGETBL_save = 589 intel_private.PGETBL_save =
@@ -589,10 +595,10 @@ static int intel_gtt_init(void)
589 595
590 dev_info(&intel_private.bridge_dev->dev, 596 dev_info(&intel_private.bridge_dev->dev,
591 "detected gtt size: %dK total, %dK mappable\n", 597 "detected gtt size: %dK total, %dK mappable\n",
592 intel_private.base.gtt_total_entries * 4, 598 intel_private.gtt_total_entries * 4,
593 intel_private.base.gtt_mappable_entries * 4); 599 intel_private.gtt_mappable_entries * 4);
594 600
595 gtt_map_size = intel_private.base.gtt_total_entries * 4; 601 gtt_map_size = intel_private.gtt_total_entries * 4;
596 602
597 intel_private.gtt = NULL; 603 intel_private.gtt = NULL;
598 if (INTEL_GTT_GEN < 6 && INTEL_GTT_GEN > 2) 604 if (INTEL_GTT_GEN < 6 && INTEL_GTT_GEN > 2)
@@ -609,7 +615,7 @@ static int intel_gtt_init(void)
609 615
610 global_cache_flush(); /* FIXME: ? */ 616 global_cache_flush(); /* FIXME: ? */
611 617
612 intel_private.base.stolen_size = intel_gtt_stolen_size(); 618 intel_private.stolen_size = intel_gtt_stolen_size();
613 619
614 intel_private.needs_dmar = USE_PCI_DMA_API && INTEL_GTT_GEN > 2; 620 intel_private.needs_dmar = USE_PCI_DMA_API && INTEL_GTT_GEN > 2;
615 621
@@ -637,8 +643,7 @@ static int intel_fake_agp_fetch_size(void)
637 unsigned int aper_size; 643 unsigned int aper_size;
638 int i; 644 int i;
639 645
640 aper_size = (intel_private.base.gtt_mappable_entries << PAGE_SHIFT) 646 aper_size = (intel_private.gtt_mappable_entries << PAGE_SHIFT) / MB(1);
641 / MB(1);
642 647
643 for (i = 0; i < num_sizes; i++) { 648 for (i = 0; i < num_sizes; i++) {
644 if (aper_size == intel_fake_agp_sizes[i].size) { 649 if (aper_size == intel_fake_agp_sizes[i].size) {
@@ -845,8 +850,8 @@ static int intel_fake_agp_insert_entries(struct agp_memory *mem,
845 int ret = -EINVAL; 850 int ret = -EINVAL;
846 851
847 if (intel_private.clear_fake_agp) { 852 if (intel_private.clear_fake_agp) {
848 int start = intel_private.base.stolen_size / PAGE_SIZE; 853 int start = intel_private.stolen_size / PAGE_SIZE;
849 int end = intel_private.base.gtt_mappable_entries; 854 int end = intel_private.gtt_mappable_entries;
850 intel_gtt_clear_range(start, end - start); 855 intel_gtt_clear_range(start, end - start);
851 intel_private.clear_fake_agp = false; 856 intel_private.clear_fake_agp = false;
852 } 857 }
@@ -857,7 +862,7 @@ static int intel_fake_agp_insert_entries(struct agp_memory *mem,
857 if (mem->page_count == 0) 862 if (mem->page_count == 0)
858 goto out; 863 goto out;
859 864
860 if (pg_start + mem->page_count > intel_private.base.gtt_total_entries) 865 if (pg_start + mem->page_count > intel_private.gtt_total_entries)
861 goto out_err; 866 goto out_err;
862 867
863 if (type != mem->type) 868 if (type != mem->type)
@@ -1366,9 +1371,10 @@ int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
1366} 1371}
1367EXPORT_SYMBOL(intel_gmch_probe); 1372EXPORT_SYMBOL(intel_gmch_probe);
1368 1373
1369struct intel_gtt *intel_gtt_get(void) 1374void intel_gtt_get(size_t *gtt_total, size_t *stolen_size)
1370{ 1375{
1371 return &intel_private.base; 1376 *gtt_total = intel_private.gtt_total_entries << PAGE_SHIFT;
1377 *stolen_size = intel_private.stolen_size;
1372} 1378}
1373EXPORT_SYMBOL(intel_gtt_get); 1379EXPORT_SYMBOL(intel_gtt_get);
1374 1380