Loading drivers/gpu/drm/radeon/r600.c +33 −24 Original line number Diff line number Diff line Loading @@ -3009,6 +3009,7 @@ static int r600_startup(struct radeon_device *rdev) return r; } if (rdev->has_uvd) { r = uvd_v1_0_resume(rdev); if (!r) { r = radeon_fence_driver_start_ring(rdev, R600_RING_TYPE_UVD_INDEX); Loading @@ -3016,7 +3017,7 @@ static int r600_startup(struct radeon_device *rdev) dev_err(rdev->dev, "failed initializing UVD fences (%d).\n", r); } } if (r) { if (r) rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_size = 0; } Loading Loading @@ -3048,6 +3049,7 @@ static int r600_startup(struct radeon_device *rdev) if (r) return r; if (rdev->has_uvd) { ring = &rdev->ring[R600_RING_TYPE_UVD_INDEX]; if (ring->ring_size) { r = radeon_ring_init(rdev, ring, ring->ring_size, 0, Loading @@ -3057,6 +3059,7 @@ static int r600_startup(struct radeon_device *rdev) if (r) DRM_ERROR("radeon: failed initializing UVD (%d).\n", r); } } r = radeon_ib_pool_init(rdev); if (r) { Loading Loading @@ -3117,8 +3120,10 @@ int r600_suspend(struct radeon_device *rdev) radeon_pm_suspend(rdev); r600_audio_fini(rdev); r600_cp_stop(rdev); if (rdev->has_uvd) { uvd_v1_0_fini(rdev); radeon_uvd_suspend(rdev); } r600_irq_suspend(rdev); radeon_wb_disable(rdev); r600_pcie_gart_disable(rdev); Loading Loading @@ -3198,11 +3203,13 @@ int r600_init(struct radeon_device *rdev) rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); if (rdev->has_uvd) { r = radeon_uvd_init(rdev); if (!r) { rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[R600_RING_TYPE_UVD_INDEX], 4096); } } rdev->ih.ring_obj = NULL; r600_ih_ring_init(rdev, 64 * 1024); Loading Loading @@ -3233,8 +3240,10 @@ void r600_fini(struct radeon_device *rdev) r600_audio_fini(rdev); r600_cp_fini(rdev); r600_irq_fini(rdev); if (rdev->has_uvd) { uvd_v1_0_fini(rdev); radeon_uvd_fini(rdev); } radeon_wb_fini(rdev); radeon_ib_pool_fini(rdev); radeon_irq_kms_fini(rdev); Loading drivers/gpu/drm/radeon/radeon_asic.c +9 −1 Original line number Diff line number Diff line Loading @@ -2313,6 +2313,14 @@ int radeon_asic_init(struct radeon_device *rdev) case CHIP_RS780: case CHIP_RS880: rdev->asic = &rs780_asic; /* 760G/780V/880V don't have UVD */ if ((rdev->pdev->device == 0x9616)|| (rdev->pdev->device == 0x9611)|| (rdev->pdev->device == 0x9613)|| (rdev->pdev->device == 0x9711)|| (rdev->pdev->device == 0x9713)) rdev->has_uvd = false; else rdev->has_uvd = true; break; case CHIP_RV770: Loading Loading
drivers/gpu/drm/radeon/r600.c +33 −24 Original line number Diff line number Diff line Loading @@ -3009,6 +3009,7 @@ static int r600_startup(struct radeon_device *rdev) return r; } if (rdev->has_uvd) { r = uvd_v1_0_resume(rdev); if (!r) { r = radeon_fence_driver_start_ring(rdev, R600_RING_TYPE_UVD_INDEX); Loading @@ -3016,7 +3017,7 @@ static int r600_startup(struct radeon_device *rdev) dev_err(rdev->dev, "failed initializing UVD fences (%d).\n", r); } } if (r) { if (r) rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_size = 0; } Loading Loading @@ -3048,6 +3049,7 @@ static int r600_startup(struct radeon_device *rdev) if (r) return r; if (rdev->has_uvd) { ring = &rdev->ring[R600_RING_TYPE_UVD_INDEX]; if (ring->ring_size) { r = radeon_ring_init(rdev, ring, ring->ring_size, 0, Loading @@ -3057,6 +3059,7 @@ static int r600_startup(struct radeon_device *rdev) if (r) DRM_ERROR("radeon: failed initializing UVD (%d).\n", r); } } r = radeon_ib_pool_init(rdev); if (r) { Loading Loading @@ -3117,8 +3120,10 @@ int r600_suspend(struct radeon_device *rdev) radeon_pm_suspend(rdev); r600_audio_fini(rdev); r600_cp_stop(rdev); if (rdev->has_uvd) { uvd_v1_0_fini(rdev); radeon_uvd_suspend(rdev); } r600_irq_suspend(rdev); radeon_wb_disable(rdev); r600_pcie_gart_disable(rdev); Loading Loading @@ -3198,11 +3203,13 @@ int r600_init(struct radeon_device *rdev) rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); if (rdev->has_uvd) { r = radeon_uvd_init(rdev); if (!r) { rdev->ring[R600_RING_TYPE_UVD_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[R600_RING_TYPE_UVD_INDEX], 4096); } } rdev->ih.ring_obj = NULL; r600_ih_ring_init(rdev, 64 * 1024); Loading Loading @@ -3233,8 +3240,10 @@ void r600_fini(struct radeon_device *rdev) r600_audio_fini(rdev); r600_cp_fini(rdev); r600_irq_fini(rdev); if (rdev->has_uvd) { uvd_v1_0_fini(rdev); radeon_uvd_fini(rdev); } radeon_wb_fini(rdev); radeon_ib_pool_fini(rdev); radeon_irq_kms_fini(rdev); Loading
drivers/gpu/drm/radeon/radeon_asic.c +9 −1 Original line number Diff line number Diff line Loading @@ -2313,6 +2313,14 @@ int radeon_asic_init(struct radeon_device *rdev) case CHIP_RS780: case CHIP_RS880: rdev->asic = &rs780_asic; /* 760G/780V/880V don't have UVD */ if ((rdev->pdev->device == 0x9616)|| (rdev->pdev->device == 0x9611)|| (rdev->pdev->device == 0x9613)|| (rdev->pdev->device == 0x9711)|| (rdev->pdev->device == 0x9713)) rdev->has_uvd = false; else rdev->has_uvd = true; break; case CHIP_RV770: Loading