diff options
author | Jerome Glisse <jglisse@redhat.com> | 2010-04-20 11:43:34 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-04-22 23:59:18 -0400 |
commit | 61cf059325a30995a78c5001db2ed2a8ab1d4c36 (patch) | |
tree | 0c674f3252032a780e9496c466c7fce2c1b084e0 /drivers/char/agp/intel-agp.c | |
parent | 2d2ef822758e3f5da59c40a392d0c6d89394d4b4 (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.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index 034644eeedf2..d836a71bf06d 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, |