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 8f9e2d31b25..0f89ce3d02b 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)  		rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_size = 0;  	/* Enable IRQ */ +	if (!rdev->irq.installed) { +		r = radeon_irq_kms_init(rdev); +		if (r) +			return r; +	} +  	r = r600_irq_init(rdev);  	if (r) {  		DRM_ERROR("radeon: IH init failed (%d).\n", r); @@ -4923,10 +4929,6 @@ int evergreen_init(struct radeon_device *rdev)  	if (r)  		return r; -	r = radeon_irq_kms_init(rdev); -	if (r) -		return r; -  	rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL;  	r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); @@ -4999,8 +5001,7 @@ void evergreen_fini(struct radeon_device *rdev)  void evergreen_pcie_gen2_enable(struct radeon_device *rdev)  { -	u32 link_width_cntl, speed_cntl, mask; -	int ret; +	u32 link_width_cntl, speed_cntl;  	if (radeon_pcie_gen2 == 0)  		return; @@ -5015,11 +5016,8 @@ void evergreen_pcie_gen2_enable(struct radeon_device *rdev)  	if (ASIC_IS_X2(rdev))  		return; -	ret = drm_pcie_get_speed_cap_mask(rdev->ddev, &mask); -	if (ret != 0) -		return; - -	if (!(mask & DRM_PCIE_SPEED_50)) +	if ((rdev->pdev->bus->max_bus_speed != PCIE_SPEED_5_0GT) && +		(rdev->pdev->bus->max_bus_speed != PCIE_SPEED_8_0GT))  		return;  	speed_cntl = RREG32_PCIE_PORT(PCIE_LC_SPEED_CNTL);  |