diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 8f9e2d31b255..0f89ce3d02b9 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
@@ -4754,6 +4754,12 @@ static int evergreen_startup(struct radeon_device *rdev) | |||
4754 | rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_size = 0; | 4754 | rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_size = 0; |
4755 | 4755 | ||
4756 | /* Enable IRQ */ | 4756 | /* Enable IRQ */ |
4757 | if (!rdev->irq.installed) { | ||
4758 | r = radeon_irq_kms_init(rdev); | ||
4759 | if (r) | ||
4760 | return r; | ||
4761 | } | ||
4762 | |||
4757 | r = r600_irq_init(rdev); | 4763 | r = r600_irq_init(rdev); |
4758 | if (r) { | 4764 | if (r) { |
4759 | DRM_ERROR("radeon: IH init failed (%d).\n", r); | 4765 | DRM_ERROR("radeon: IH init failed (%d).\n", r); |
@@ -4923,10 +4929,6 @@ int evergreen_init(struct radeon_device *rdev) | |||
4923 | if (r) | 4929 | if (r) |
4924 | return r; | 4930 | return r; |
4925 | 4931 | ||
4926 | r = radeon_irq_kms_init(rdev); | ||
4927 | if (r) | ||
4928 | return r; | ||
4929 | |||
4930 | rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; | 4932 | rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; |
4931 | r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); | 4933 | r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); |
4932 | 4934 | ||
@@ -4999,8 +5001,7 @@ void evergreen_fini(struct radeon_device *rdev) | |||
4999 | 5001 | ||
5000 | void evergreen_pcie_gen2_enable(struct radeon_device *rdev) | 5002 | void evergreen_pcie_gen2_enable(struct radeon_device *rdev) |
5001 | { | 5003 | { |
5002 | u32 link_width_cntl, speed_cntl, mask; | 5004 | u32 link_width_cntl, speed_cntl; |
5003 | int ret; | ||
5004 | 5005 | ||
5005 | if (radeon_pcie_gen2 == 0) | 5006 | if (radeon_pcie_gen2 == 0) |
5006 | return; | 5007 | return; |
@@ -5015,11 +5016,8 @@ void evergreen_pcie_gen2_enable(struct radeon_device *rdev) | |||
5015 | if (ASIC_IS_X2(rdev)) | 5016 | if (ASIC_IS_X2(rdev)) |
5016 | return; | 5017 | return; |
5017 | 5018 | ||
5018 | ret = drm_pcie_get_speed_cap_mask(rdev->ddev, &mask); | 5019 | if ((rdev->pdev->bus->max_bus_speed != PCIE_SPEED_5_0GT) && |
5019 | if (ret != 0) | 5020 | (rdev->pdev->bus->max_bus_speed != PCIE_SPEED_8_0GT)) |
5020 | return; | ||
5021 | |||
5022 | if (!(mask & DRM_PCIE_SPEED_50)) | ||
5023 | return; | 5021 | return; |
5024 | 5022 | ||
5025 | speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL); | 5023 | speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL); |