diff options
| author | Andy Lutomirski <luto@amacapital.net> | 2013-05-13 19:58:41 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2013-05-30 23:02:54 -0400 |
| commit | 247d36d75128ba1f63702e0e6185d9a7a23ee5cb (patch) | |
| tree | 947293f7e2ce7a9d65f5c7325a9cc4fab05dba32 /drivers/gpu/drm/savage | |
| parent | d0d98eedee2178c803dd824bb09f52b0e2ac1811 (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.c | 43 | ||||
| -rw-r--r-- | drivers/gpu/drm/savage/savage_drv.h | 5 |
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 | ||
| 670 | int savage_driver_unload(struct drm_device *dev) | 657 | int 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; |
