Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 217960
b: refs/heads/master
c: e5e408f
h: refs/heads/master
v: v3
  • Loading branch information
Daniel Vetter authored and Chris Wilson committed Sep 8, 2010
1 parent 7181855 commit 71a22af
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 40 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ffdd7510b0bd5ec663b6b11b39810574f2ce3111
refs/heads/master: e5e408fc94595aab897f613b6f4e2f5b36870a6f
50 changes: 11 additions & 39 deletions trunk/drivers/char/agp/intel-gtt.c
Original file line number Diff line number Diff line change
Expand Up @@ -699,71 +699,43 @@ static unsigned int intel_gtt_stolen_entries(void)
static unsigned int intel_gtt_total_entries(void)
{
int size;
u16 gmch_ctrl;

if (IS_I965) {
if (IS_G33 || IS_I965 || IS_G4X) {
u32 pgetbl_ctl;
pgetbl_ctl = readl(intel_private.registers+I810_PGETBL_CTL);

/* The 965 has a field telling us the size of the GTT,
* which may be larger than what is necessary to map the
* aperture.
*/
switch (pgetbl_ctl & I965_PGETBL_SIZE_MASK) {
case I965_PGETBL_SIZE_128KB:
size = 128;
size = KB(128);
break;
case I965_PGETBL_SIZE_256KB:
size = 256;
size = KB(256);
break;
case I965_PGETBL_SIZE_512KB:
size = 512;
size = KB(512);
break;
case I965_PGETBL_SIZE_1MB:
size = 1024;
size = KB(1024);
break;
case I965_PGETBL_SIZE_2MB:
size = 2048;
size = KB(2048);
break;
case I965_PGETBL_SIZE_1_5MB:
size = 1024 + 512;
size = KB(1024 + 512);
break;
default:
dev_info(&intel_private.pcidev->dev,
"unknown page table size, assuming 512KB\n");
size = 512;
}
size += 4; /* add in BIOS popup space */
} else if (IS_G33 && !IS_PINEVIEW) {
/* G33's GTT size defined in gmch_ctrl */
switch (gmch_ctrl & G33_PGETBL_SIZE_MASK) {
case G33_PGETBL_SIZE_1M:
size = 1024;
break;
case G33_PGETBL_SIZE_2M:
size = 2048;
break;
default:
dev_info(&intel_private.bridge_dev->dev,
"unknown page table size 0x%x, assuming 512KB\n",
(gmch_ctrl & G33_PGETBL_SIZE_MASK));
size = 512;
size = KB(512);
}
size += 4;
} else if (IS_G4X || IS_PINEVIEW) {
/* On 4 series hardware, GTT stolen is separate from graphics
* stolen, ignore it in stolen gtt entries counting. However,
* 4KB of the stolen memory doesn't get mapped to the GTT.
*/
size = 4;

return size/4;
} else {
/* On previous hardware, the GTT size was just what was
* required to map the aperture.
*/
size = agp_bridge->driver->fetch_size() + 4;
return intel_private.base.gtt_mappable_entries;
}

return size/KB(4);
}
#endif

Expand Down

0 comments on commit 71a22af

Please sign in to comment.