Skip to content

Commit

Permalink
intel-gtt: save PGETBL_CTL later in the setup process
Browse files Browse the repository at this point in the history
... and switch to a more classical store-reg-on-suspend, restore-on-resume
way of doing things. Obviously this is just preparation for the future,
the code is not there at all, yet.

This is needed because the next patch adjusts this register and everything
in it (not just the pagetable address) needs to be restored on resume.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
  • Loading branch information
Daniel Vetter authored and Chris Wilson committed Oct 27, 2010
1 parent 5398463 commit b3eafc5
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions drivers/char/agp/intel-gtt.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ static struct _intel_private {
u8 __iomem *registers;
phys_addr_t gtt_bus_addr;
phys_addr_t gma_bus_addr;
phys_addr_t pte_bus_addr;
u32 PGETBL_save;
u32 __iomem *gtt; /* I915G */
int num_dcache_entries;
union {
Expand Down Expand Up @@ -755,6 +755,11 @@ static int intel_gtt_init(void)
intel_private.base.gtt_mappable_entries = intel_gtt_mappable_entries();
intel_private.base.gtt_total_entries = intel_gtt_total_entries();

/* save the PGETBL reg for resume */
intel_private.PGETBL_save =
readl(intel_private.registers+I810_PGETBL_CTL)
& ~I810_PGETBL_ENABLED;

dev_info(&intel_private.bridge_dev->dev,
"detected gtt size: %dK total, %dK mappable\n",
intel_private.base.gtt_total_entries * 4,
Expand Down Expand Up @@ -891,7 +896,7 @@ static void intel_enable_gtt(void)
gmch_ctrl |= I830_GMCH_ENABLED;
pci_write_config_word(intel_private.bridge_dev, I830_GMCH_CTRL, gmch_ctrl);

writel(intel_private.pte_bus_addr|I810_PGETBL_ENABLED,
writel(intel_private.PGETBL_save|I810_PGETBL_ENABLED,
intel_private.registers+I810_PGETBL_CTL);
readl(intel_private.registers+I810_PGETBL_CTL); /* PCI Posting. */
}
Expand All @@ -908,8 +913,6 @@ static int i830_setup(void)
return -ENOMEM;

intel_private.gtt_bus_addr = reg_addr + I810_PTE_BASE;
intel_private.pte_bus_addr =
readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000;

intel_i830_setup_flush();

Expand Down Expand Up @@ -1265,9 +1268,6 @@ static int i9xx_setup(void)
intel_private.gtt_bus_addr = reg_addr + gtt_offset;
}

intel_private.pte_bus_addr =
readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000;

intel_i9xx_setup_flush();

return 0;
Expand Down

0 comments on commit b3eafc5

Please sign in to comment.