diff options
author | Dave Airlie <airlied@redhat.com> | 2014-09-15 21:28:52 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-09-15 21:38:04 -0400 |
commit | b2efb3f0a1db62aff5e824125785ec6731143b6d (patch) | |
tree | 67510cec69e18e55d82bed803428b2a5027d92bb /drivers/gpu/drm/radeon/cik.c | |
parent | 4ac073640a528662a7c072a30e92e70ce00ded33 (diff) | |
parent | 9e82bf014195d6f0054982c463575cdce24292be (diff) |
drm: backmerge tag 'v3.17-rc5' into drm-next
This is requested to get the fixes for intel and radeon into the
same tree for future development work.
i915_display.c: fix missing dev_priv conflict.
Diffstat (limited to 'drivers/gpu/drm/radeon/cik.c')
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index 0b5a230d8b96..0d761f73a7fa 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c | |||
@@ -5750,20 +5750,17 @@ static int cik_pcie_gart_enable(struct radeon_device *rdev) | |||
5750 | WREG32(0x15D8, 0); | 5750 | WREG32(0x15D8, 0); |
5751 | WREG32(0x15DC, 0); | 5751 | WREG32(0x15DC, 0); |
5752 | 5752 | ||
5753 | /* empty context1-15 */ | 5753 | /* restore context1-15 */ |
5754 | /* FIXME start with 4G, once using 2 level pt switch to full | ||
5755 | * vm size space | ||
5756 | */ | ||
5757 | /* set vm size, must be a multiple of 4 */ | 5754 | /* set vm size, must be a multiple of 4 */ |
5758 | WREG32(VM_CONTEXT1_PAGE_TABLE_START_ADDR, 0); | 5755 | WREG32(VM_CONTEXT1_PAGE_TABLE_START_ADDR, 0); |
5759 | WREG32(VM_CONTEXT1_PAGE_TABLE_END_ADDR, rdev->vm_manager.max_pfn); | 5756 | WREG32(VM_CONTEXT1_PAGE_TABLE_END_ADDR, rdev->vm_manager.max_pfn); |
5760 | for (i = 1; i < 16; i++) { | 5757 | for (i = 1; i < 16; i++) { |
5761 | if (i < 8) | 5758 | if (i < 8) |
5762 | WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (i << 2), | 5759 | WREG32(VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (i << 2), |
5763 | rdev->gart.table_addr >> 12); | 5760 | rdev->vm_manager.saved_table_addr[i]); |
5764 | else | 5761 | else |
5765 | WREG32(VM_CONTEXT8_PAGE_TABLE_BASE_ADDR + ((i - 8) << 2), | 5762 | WREG32(VM_CONTEXT8_PAGE_TABLE_BASE_ADDR + ((i - 8) << 2), |
5766 | rdev->gart.table_addr >> 12); | 5763 | rdev->vm_manager.saved_table_addr[i]); |
5767 | } | 5764 | } |
5768 | 5765 | ||
5769 | /* enable context1-15 */ | 5766 | /* enable context1-15 */ |
@@ -5828,6 +5825,17 @@ static int cik_pcie_gart_enable(struct radeon_device *rdev) | |||
5828 | */ | 5825 | */ |
5829 | static void cik_pcie_gart_disable(struct radeon_device *rdev) | 5826 | static void cik_pcie_gart_disable(struct radeon_device *rdev) |
5830 | { | 5827 | { |
5828 | unsigned i; | ||
5829 | |||
5830 | for (i = 1; i < 16; ++i) { | ||
5831 | uint32_t reg; | ||
5832 | if (i < 8) | ||
5833 | reg = VM_CONTEXT0_PAGE_TABLE_BASE_ADDR + (i << 2); | ||
5834 | else | ||
5835 | reg = VM_CONTEXT8_PAGE_TABLE_BASE_ADDR + ((i - 8) << 2); | ||
5836 | rdev->vm_manager.saved_table_addr[i] = RREG32(reg); | ||
5837 | } | ||
5838 | |||
5831 | /* Disable all tables */ | 5839 | /* Disable all tables */ |
5832 | WREG32(VM_CONTEXT0_CNTL, 0); | 5840 | WREG32(VM_CONTEXT0_CNTL, 0); |
5833 | WREG32(VM_CONTEXT1_CNTL, 0); | 5841 | WREG32(VM_CONTEXT1_CNTL, 0); |
@@ -9558,6 +9566,9 @@ static void cik_pcie_gen3_enable(struct radeon_device *rdev) | |||
9558 | int ret, i; | 9566 | int ret, i; |
9559 | u16 tmp16; | 9567 | u16 tmp16; |
9560 | 9568 | ||
9569 | if (pci_is_root_bus(rdev->pdev->bus)) | ||
9570 | return; | ||
9571 | |||
9561 | if (radeon_pcie_gen2 == 0) | 9572 | if (radeon_pcie_gen2 == 0) |
9562 | return; | 9573 | return; |
9563 | 9574 | ||
@@ -9784,7 +9795,8 @@ static void cik_program_aspm(struct radeon_device *rdev) | |||
9784 | if (orig != data) | 9795 | if (orig != data) |
9785 | WREG32_PCIE_PORT(PCIE_LC_LINK_WIDTH_CNTL, data); | 9796 | WREG32_PCIE_PORT(PCIE_LC_LINK_WIDTH_CNTL, data); |
9786 | 9797 | ||
9787 | if (!disable_clkreq) { | 9798 | if (!disable_clkreq && |
9799 | !pci_is_root_bus(rdev->pdev->bus)) { | ||
9788 | struct pci_dev *root = rdev->pdev->bus->self; | 9800 | struct pci_dev *root = rdev->pdev->bus->self; |
9789 | u32 lnkcap; | 9801 | u32 lnkcap; |
9790 | 9802 | ||