aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/savage
diff options
context:
space:
mode:
authorAndy Lutomirski <luto@amacapital.net>2013-05-13 19:58:41 -0400
committerDave Airlie <airlied@redhat.com>2013-05-30 23:02:54 -0400
commit247d36d75128ba1f63702e0e6185d9a7a23ee5cb (patch)
tree947293f7e2ce7a9d65f5c7325a9cc4fab05dba32 /drivers/gpu/drm/savage
parentd0d98eedee2178c803dd824bb09f52b0e2ac1811 (diff)
drm (ast, cirrus, mgag200, nouveau, savage, vmwgfx): Remove drm_mtrr_{add, del}
This replaces drm_mtrr_{add,del} with arch_phys_wc_{add,del}. The interface is simplified (because the base and size parameters to drm_mtrr_del never did anything), and it no longer adds MTRRs on systems that don't need them. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Andy Lutomirski <luto@amacapital.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/savage')
-rw-r--r--drivers/gpu/drm/savage/savage_bci.c43
-rw-r--r--drivers/gpu/drm/savage/savage_drv.h5
2 files changed, 16 insertions, 32 deletions
diff --git a/drivers/gpu/drm/savage/savage_bci.c b/drivers/gpu/drm/savage/savage_bci.c
index b55c1d661147..bd6b2cf508d5 100644
--- a/drivers/gpu/drm/savage/savage_bci.c
+++ b/drivers/gpu/drm/savage/savage_bci.c
@@ -570,9 +570,6 @@ int savage_driver_firstopen(struct drm_device *dev)
570 unsigned int fb_rsrc, aper_rsrc; 570 unsigned int fb_rsrc, aper_rsrc;
571 int ret = 0; 571 int ret = 0;
572 572
573 dev_priv->mtrr[0].handle = -1;
574 dev_priv->mtrr[1].handle = -1;
575 dev_priv->mtrr[2].handle = -1;
576 if (S3_SAVAGE3D_SERIES(dev_priv->chipset)) { 573 if (S3_SAVAGE3D_SERIES(dev_priv->chipset)) {
577 fb_rsrc = 0; 574 fb_rsrc = 0;
578 fb_base = pci_resource_start(dev->pdev, 0); 575 fb_base = pci_resource_start(dev->pdev, 0);
@@ -584,21 +581,14 @@ int savage_driver_firstopen(struct drm_device *dev)
584 if (pci_resource_len(dev->pdev, 0) == 0x08000000) { 581 if (pci_resource_len(dev->pdev, 0) == 0x08000000) {
585 /* Don't make MMIO write-cobining! We need 3 582 /* Don't make MMIO write-cobining! We need 3
586 * MTRRs. */ 583 * MTRRs. */
587 dev_priv->mtrr[0].base = fb_base; 584 dev_priv->mtrr_handles[0] =
588 dev_priv->mtrr[0].size = 0x01000000; 585 arch_phys_wc_add(fb_base, 0x01000000);
589 dev_priv->mtrr[0].handle = 586 dev_priv->mtrr_handles[1] =
590 drm_mtrr_add(dev_priv->mtrr[0].base, 587 arch_phys_wc_add(fb_base + 0x02000000,
591 dev_priv->mtrr[0].size, DRM_MTRR_WC); 588 0x02000000);
592 dev_priv->mtrr[1].base = fb_base + 0x02000000; 589 dev_priv->mtrr_handles[2] =
593 dev_priv->mtrr[1].size = 0x02000000; 590 arch_phys_wc_add(fb_base + 0x04000000,
594 dev_priv->mtrr[1].handle = 591 0x04000000);
595 drm_mtrr_add(dev_priv->mtrr[1].base,
596 dev_priv->mtrr[1].size, DRM_MTRR_WC);
597 dev_priv->mtrr[2].base = fb_base + 0x04000000;
598 dev_priv->mtrr[2].size = 0x04000000;
599 dev_priv->mtrr[2].handle =
600 drm_mtrr_add(dev_priv->mtrr[2].base,
601 dev_priv->mtrr[2].size, DRM_MTRR_WC);
602 } else { 592 } else {
603 DRM_ERROR("strange pci_resource_len %08llx\n", 593 DRM_ERROR("strange pci_resource_len %08llx\n",
604 (unsigned long long) 594 (unsigned long long)
@@ -616,11 +606,9 @@ int savage_driver_firstopen(struct drm_device *dev)
616 if (pci_resource_len(dev->pdev, 1) == 0x08000000) { 606 if (pci_resource_len(dev->pdev, 1) == 0x08000000) {
617 /* Can use one MTRR to cover both fb and 607 /* Can use one MTRR to cover both fb and
618 * aperture. */ 608 * aperture. */
619 dev_priv->mtrr[0].base = fb_base; 609 dev_priv->mtrr_handles[0] =
620 dev_priv->mtrr[0].size = 0x08000000; 610 arch_phys_wc_add(fb_base,
621 dev_priv->mtrr[0].handle = 611 0x08000000);
622 drm_mtrr_add(dev_priv->mtrr[0].base,
623 dev_priv->mtrr[0].size, DRM_MTRR_WC);
624 } else { 612 } else {
625 DRM_ERROR("strange pci_resource_len %08llx\n", 613 DRM_ERROR("strange pci_resource_len %08llx\n",
626 (unsigned long long) 614 (unsigned long long)
@@ -660,11 +648,10 @@ void savage_driver_lastclose(struct drm_device *dev)
660 drm_savage_private_t *dev_priv = dev->dev_private; 648 drm_savage_private_t *dev_priv = dev->dev_private;
661 int i; 649 int i;
662 650
663 for (i = 0; i < 3; ++i) 651 for (i = 0; i < 3; ++i) {
664 if (dev_priv->mtrr[i].handle >= 0) 652 arch_phys_wc_del(dev_priv->mtrr_handles[i]);
665 drm_mtrr_del(dev_priv->mtrr[i].handle, 653 dev_priv->mtrr_handles[i] = 0;
666 dev_priv->mtrr[i].base, 654 }
667 dev_priv->mtrr[i].size, DRM_MTRR_WC);
668} 655}
669 656
670int savage_driver_unload(struct drm_device *dev) 657int savage_driver_unload(struct drm_device *dev)
diff --git a/drivers/gpu/drm/savage/savage_drv.h b/drivers/gpu/drm/savage/savage_drv.h
index df2aac6636f7..c05082a59f6f 100644
--- a/drivers/gpu/drm/savage/savage_drv.h
+++ b/drivers/gpu/drm/savage/savage_drv.h
@@ -160,10 +160,7 @@ typedef struct drm_savage_private {
160 drm_local_map_t *cmd_dma; 160 drm_local_map_t *cmd_dma;
161 drm_local_map_t fake_dma; 161 drm_local_map_t fake_dma;
162 162
163 struct { 163 int mtrr_handles[3];
164 int handle;
165 unsigned long base, size;
166 } mtrr[3];
167 164
168 /* BCI and status-related stuff */ 165 /* BCI and status-related stuff */
169 volatile uint32_t *status_ptr, *bci_ptr; 166 volatile uint32_t *status_ptr, *bci_ptr;