aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/agp/intel-agp.c
diff options
context:
space:
mode:
authorJerome Glisse <jglisse@redhat.com>2010-04-20 11:43:34 -0400
committerDave Airlie <airlied@redhat.com>2010-04-22 23:59:18 -0400
commit61cf059325a30995a78c5001db2ed2a8ab1d4c36 (patch)
tree0c674f3252032a780e9496c466c7fce2c1b084e0 /drivers/char/agp/intel-agp.c
parent2d2ef822758e3f5da59c40a392d0c6d89394d4b4 (diff)
agp: use scratch page on memory remove and at GATT creation V4
Convert most AGP chipset to use scratch page as default entries. This help avoiding GPU querying 0 address and trigger computer fault. With KMS and memory manager we bind/unbind AGP memory constantly and it seems that some GPU are still doing AGP traffic even after GPU report being idle with the memory segment. Tested (radeon GPU KMS + Xorg + compiz + glxgears + quake3) on : - SIS 1039:0001 & 1039:0003 - Intel 865 8086:2571 Compile tested for other bridges V2 enable scratch page on uninorth V3 fix unbound check in uninorth insert memory (Michel Dänzer) V4 rebase on top of drm-next branch with the lastest intel AGP changeset (stable should use version V3 of the patch) Signed-off-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Michel Dänzer <michel@daenzer.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/char/agp/intel-agp.c')
-rw-r--r--drivers/char/agp/intel-agp.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index 034644eeedf..d836a71bf06 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -464,6 +464,7 @@ static const struct agp_bridge_driver intel_generic_driver = {
464 .aperture_sizes = intel_generic_sizes, 464 .aperture_sizes = intel_generic_sizes,
465 .size_type = U16_APER_SIZE, 465 .size_type = U16_APER_SIZE,
466 .num_aperture_sizes = 7, 466 .num_aperture_sizes = 7,
467 .needs_scratch_page = true,
467 .configure = intel_configure, 468 .configure = intel_configure,
468 .fetch_size = intel_fetch_size, 469 .fetch_size = intel_fetch_size,
469 .cleanup = intel_cleanup, 470 .cleanup = intel_cleanup,
@@ -490,6 +491,7 @@ static const struct agp_bridge_driver intel_815_driver = {
490 .aperture_sizes = intel_815_sizes, 491 .aperture_sizes = intel_815_sizes,
491 .size_type = U8_APER_SIZE, 492 .size_type = U8_APER_SIZE,
492 .num_aperture_sizes = 2, 493 .num_aperture_sizes = 2,
494 .needs_scratch_page = true,
493 .configure = intel_815_configure, 495 .configure = intel_815_configure,
494 .fetch_size = intel_815_fetch_size, 496 .fetch_size = intel_815_fetch_size,
495 .cleanup = intel_8xx_cleanup, 497 .cleanup = intel_8xx_cleanup,
@@ -516,6 +518,7 @@ static const struct agp_bridge_driver intel_820_driver = {
516 .aperture_sizes = intel_8xx_sizes, 518 .aperture_sizes = intel_8xx_sizes,
517 .size_type = U8_APER_SIZE, 519 .size_type = U8_APER_SIZE,
518 .num_aperture_sizes = 7, 520 .num_aperture_sizes = 7,
521 .needs_scratch_page = true,
519 .configure = intel_820_configure, 522 .configure = intel_820_configure,
520 .fetch_size = intel_8xx_fetch_size, 523 .fetch_size = intel_8xx_fetch_size,
521 .cleanup = intel_820_cleanup, 524 .cleanup = intel_820_cleanup,
@@ -542,6 +545,7 @@ static const struct agp_bridge_driver intel_830mp_driver = {
542 .aperture_sizes = intel_830mp_sizes, 545 .aperture_sizes = intel_830mp_sizes,
543 .size_type = U8_APER_SIZE, 546 .size_type = U8_APER_SIZE,
544 .num_aperture_sizes = 4, 547 .num_aperture_sizes = 4,
548 .needs_scratch_page = true,
545 .configure = intel_830mp_configure, 549 .configure = intel_830mp_configure,
546 .fetch_size = intel_8xx_fetch_size, 550 .fetch_size = intel_8xx_fetch_size,
547 .cleanup = intel_8xx_cleanup, 551 .cleanup = intel_8xx_cleanup,
@@ -568,6 +572,7 @@ static const struct agp_bridge_driver intel_840_driver = {
568 .aperture_sizes = intel_8xx_sizes, 572 .aperture_sizes = intel_8xx_sizes,
569 .size_type = U8_APER_SIZE, 573 .size_type = U8_APER_SIZE,
570 .num_aperture_sizes = 7, 574 .num_aperture_sizes = 7,
575 .needs_scratch_page = true,
571 .configure = intel_840_configure, 576 .configure = intel_840_configure,
572 .fetch_size = intel_8xx_fetch_size, 577 .fetch_size = intel_8xx_fetch_size,
573 .cleanup = intel_8xx_cleanup, 578 .cleanup = intel_8xx_cleanup,
@@ -594,6 +599,7 @@ static const struct agp_bridge_driver intel_845_driver = {
594 .aperture_sizes = intel_8xx_sizes, 599 .aperture_sizes = intel_8xx_sizes,
595 .size_type = U8_APER_SIZE, 600 .size_type = U8_APER_SIZE,
596 .num_aperture_sizes = 7, 601 .num_aperture_sizes = 7,
602 .needs_scratch_page = true,
597 .configure = intel_845_configure, 603 .configure = intel_845_configure,
598 .fetch_size = intel_8xx_fetch_size, 604 .fetch_size = intel_8xx_fetch_size,
599 .cleanup = intel_8xx_cleanup, 605 .cleanup = intel_8xx_cleanup,
@@ -620,6 +626,7 @@ static const struct agp_bridge_driver intel_850_driver = {
620 .aperture_sizes = intel_8xx_sizes, 626 .aperture_sizes = intel_8xx_sizes,
621 .size_type = U8_APER_SIZE, 627 .size_type = U8_APER_SIZE,
622 .num_aperture_sizes = 7, 628 .num_aperture_sizes = 7,
629 .needs_scratch_page = true,
623 .configure = intel_850_configure, 630 .configure = intel_850_configure,
624 .fetch_size = intel_8xx_fetch_size, 631 .fetch_size = intel_8xx_fetch_size,
625 .cleanup = intel_8xx_cleanup, 632 .cleanup = intel_8xx_cleanup,
@@ -646,6 +653,7 @@ static const struct agp_bridge_driver intel_860_driver = {
646 .aperture_sizes = intel_8xx_sizes, 653 .aperture_sizes = intel_8xx_sizes,
647 .size_type = U8_APER_SIZE, 654 .size_type = U8_APER_SIZE,
648 .num_aperture_sizes = 7, 655 .num_aperture_sizes = 7,
656 .needs_scratch_page = true,
649 .configure = intel_860_configure, 657 .configure = intel_860_configure,
650 .fetch_size = intel_8xx_fetch_size, 658 .fetch_size = intel_8xx_fetch_size,
651 .cleanup = intel_8xx_cleanup, 659 .cleanup = intel_8xx_cleanup,
@@ -672,6 +680,7 @@ static const struct agp_bridge_driver intel_7505_driver = {
672 .aperture_sizes = intel_8xx_sizes, 680 .aperture_sizes = intel_8xx_sizes,
673 .size_type = U8_APER_SIZE, 681 .size_type = U8_APER_SIZE,
674 .num_aperture_sizes = 7, 682 .num_aperture_sizes = 7,
683 .needs_scratch_page = true,
675 .configure = intel_7505_configure, 684 .configure = intel_7505_configure,
676 .fetch_size = intel_8xx_fetch_size, 685 .fetch_size = intel_8xx_fetch_size,
677 .cleanup = intel_8xx_cleanup, 686 .cleanup = intel_8xx_cleanup,